18class SurfaceElements :
public Elements {
21 typedef default_lo LO;
22 typedef default_go GO;
23 typedef default_no NO;
24 typedef Elements Elements_Type;
26 typedef Teuchos::RCP<EdgeElements_Type> EdgeElementsPtr_Type;
28 typedef typename Map_Type::MapPtr_Type MapPtr_Type;
29 typedef typename Map_Type::MapConstPtr_Type MapConstPtr_Type;
33 SurfaceElements( SurfaceElements& SurfaceElements );
37 void addSurface(
FiniteElement& fe, vec_GO_Type& elementsOfFace );
39 void setElementsSurface( vec2D_GO_Type& elementsOfSurface );
41 void partitionSurfaces( MapConstPtr_Type elementMap, MapConstPtr_Type nodeMapRepeated );
43 void sortUniqueAndSetGlobalIDs(vec2D_GO_Type &combinedElements);
45 void makeUniqueWithCombines( FE_vec_ptr_Type& elements, vec2D_GO_Type& combinedElements, vec2D_GO_Type& globaIDs );
47 FE_vec_ptr_Type sort_from_ref( FE_vec_ptr_Type& elements, std::vector<int>
const& reference );
49 vec2D_GO_Type sort_from_ref( vec2D_GO_Type
const& in, std::vector<int>
const& reference );
51 const vec_LO_Type& getElementsOfSurfaceLocal(
int i );
53 const vec_GO_Type& getElementsOfSurfaceGlobal(
int i );
55 vec2D_GO_Type getElementsOfSurfaceGlobal(){
return elementsOfSurfaceGlobal_;};
57 vec2D_LO_Type getElementsOfSurfaceLocal(){
return elementsOfSurfaceLocal_;};
59 const vec_int_Type getSurfacesOfElement(
int i );
61 void matchSurfacesToElements(MapConstPtr_Type elementMap);
63 void sortUniqueAndSetGlobalIDsParallel(MapConstPtr_Type elementMap, vec2D_GO_Type& combinedElements );
65 void setElementsOfSurfaceLocalEntry(
int index,
int entry);
67 void setElementsOfSurfaceGlobalEntry(
int index,
int entry);
69 void setUpElementsOfSurface( MapConstPtr_Type elementMap, MapConstPtr_Type edgeMap, EdgeElementsPtr_Type edgeElements);
74 vec2D_GO_Type elementsOfSurfaceGlobal_;
75 vec2D_LO_Type elementsOfSurfaceLocal_;
76 vec2D_LO_Type surfacesOfElements_;