Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GEM.C File Reference
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <iomanip>
#include <vector>
#include <map>
#include <list>
#include <cassert>
#include "TRAIL_UnixUtils.H"
#include "mpi.h"
#include "GEM.H"
#include "TRAIL.H"
#include "roccom.h"
Include dependency graph for GEM.C:

Go to the source code of this file.

Functions

 COM_EXTERN_MODULE (Rocout)
 
void AddPconnSection (std::vector< unsigned int > rpids, std::vector< std::vector< unsigned int > > &indices, unsigned int &section_size, std::vector< int > &pconn)
 
bool flip_elements (std::vector< unsigned int > &conn, unsigned int es)
 

Function Documentation

void AddPconnSection ( std::vector< unsigned int >  rpids,
std::vector< std::vector< unsigned int > > &  indices,
unsigned int &  section_size,
std::vector< int > &  pconn 
)

Definition at line 441 of file GEM.C.

Referenced by GEM_Partition::Create_com_pconn().

445 {
446  section_size = 0;
447  unsigned int nrp = rpids.size();
448  pconn.push_back(nrp);
449  section_size++;
450  std::vector<unsigned int>::iterator rpi = rpids.begin();
451  unsigned int rpindex = 0;
452  while(rpi != rpids.end()){
453  pconn.push_back(*rpi++);
454  section_size++;
455  unsigned int ne = indices[rpindex].size();
456  pconn.push_back(ne);
457  section_size += (ne+1);
458  std::vector<unsigned int>::iterator ei = indices[rpindex].begin();
459  while(ei != indices[rpindex].end())
460  pconn.push_back(*ei++);
461  rpindex++;
462  }
463 }

Here is the caller graph for this function:

COM_EXTERN_MODULE ( Rocout  )
bool flip_elements ( std::vector< unsigned int > &  conn,
unsigned int  es 
)

Definition at line 844 of file GEM.C.

845 {
846  unsigned int nel = conn.size()/es;
847  unsigned int temp;
848  unsigned int el = 0;
849  switch(es){
850  case 2:
851  case 3:
852  case 4:
853  while(el < nel){
854  temp = conn[el];
855  conn[el] = conn[el+1];
856  el = el+1;
857  conn[el] = temp;
858  el = el+1;
859  if(es > 2)
860  el++;
861  if(es > 3)
862  el++;
863  }
864  return(true);
865  break;
866  default:
867  return(false);
868  break;
869  }
870  return(false);
871 }