#include <fem_mesh.h>
Public Member Functions | |
FEM_Entity_Types (const FEM_Mesh &mesh_, const char *name_) | |
void | pup (PUP::er &p) |
~FEM_Entity_Types () | |
int | size (void) const |
Return the number of different entity types. | |
const T & | get (int type, const char *caller="") const |
Return a read-only copy of this type, or else abort if type isn't set. | |
bool | has (int type) const |
Return true if we have a type t, and false otherwise. | |
T & | set (int type, const char *caller="") |
Return a writable copy of this type, calling new T(mesh) if it's not there. | |
T & | operator[] (int type) |
Read-only and write-only operator[]'s:. | |
const T & | operator[] (int type) const |
FEM_Entity_Types (const FEM_Mesh &mesh_, const char *name_) | |
void | pup (PUP::er &p) |
~FEM_Entity_Types () | |
int | size (void) const |
Return the number of different entity types. | |
const T & | get (int type, const char *caller="") const |
Return a read-only copy of this type, or else abort if type isn't set. | |
bool | has (int type) const |
Return true if we have a type t, and false otherwise, can return true for empty entity. | |
bool | hasNonEmpty (int type) const |
Return true if we have a type t, and the type contains more than zero entities. | |
T & | set (int type, const char *caller="") |
Return a writable copy of this type, calling new T(mesh) if it's not there. | |
T & | operator[] (int type) |
Read-only and write-only operator[]'s:. | |
const T & | operator[] (int type) const |
Private Attributes | |
CkVec< T * > | types |
const FEM_Mesh & | mesh |
const char * | name |
CkVec< T * > | types |
const FEM_Mesh & | mesh |
const char * | name |
This class describes several different types of a certain kind of entity.
For example, there might be a FEM_Entity_Types<FEM_Elem> that lists the different kinds of element.
This class exists to provide a nice "demand-creation" semantics, where the user assigns array indices (the e in FEM_ELEM+e), so we don't know that we're setting the first copy when we set it.
It's not clear this class has any right to exist--it should either be folded into FEM_Mesh or generalized into a "userNumberedVec" or some such.
Definition at line 1074 of file fem_mesh.h.
FEM_Entity_Types< T >::FEM_Entity_Types | ( | const FEM_Mesh & | mesh_, | |
const char * | name_ | |||
) | [inline] |
Definition at line 1080 of file fem_mesh.h.
FEM_Entity_Types< T >::~FEM_Entity_Types | ( | ) | [inline] |
Definition at line 1093 of file fem_mesh.h.
FEM_Entity_Types< T >::FEM_Entity_Types | ( | const FEM_Mesh & | mesh_, | |
const char * | name_ | |||
) | [inline] |
Definition at line 1214 of file ParFUM_internals.h.
FEM_Entity_Types< T >::~FEM_Entity_Types | ( | ) | [inline] |
Definition at line 1227 of file ParFUM_internals.h.
void FEM_Entity_Types< T >::pup | ( | PUP::er & | p | ) | [inline] |
Definition at line 1082 of file fem_mesh.h.
Referenced by FEM_Mesh::pup().
int FEM_Entity_Types< T >::size | ( | void | ) | const [inline] |
Return the number of different entity types.
Definition at line 1099 of file fem_mesh.h.
Referenced by splitter::aboutToCreate(), addIDXLists(), splitter::addLayer(), splitter::addStencil(), FEM_MUtil::AreaTest(), splitter::buildCommLists(), FEM_Ghost_Stencil::check(), check(), FEM_Sparse_Elem_Checker::check(), FEM_Mesh::chkET(), FEM_Mesh::clearGhostElems(), FEM_Adapt_Algs::Coarsen(), splitter::consistencyCheck(), FEM_Mesh::copyOldGlobalno(), FEM_Mesh::copyShape(), FEM_Mesh::createElemElemAdj(), splitter::createMesh(), FEM_Mesh::createNodeElemAdj(), FEM_Mesh::createNodeNodeAdj(), FEM_ADAPT_SetElementsSizeField(), FEM_Add_ghost_stencil(), FEM_break_mesh(), FEM_master_parallel_part(), FEM_Mesh_assemble(), FEM_Mesh_broadcast(), FEM_Print_Mesh_Summary(), FEM_write_part2mesh(), FEM_Mesh::getEntities(), globalElem2elType(), FEM_MUtil::IdxlListTest(), makeGhost(), makeGhosts(), mesh2graph(), mesh2graph_face(), meshElemItr_Begin(), meshElemItr_Next(), FEM_Mesh::nElems(), Bulk_Adapt::ParFUM_SetReferenceMesh(), FEM_Mesh::print(), FEM_Adapt_Algs::Refine(), Bulk_Adapt::Refine_h(), splitter::separateSparse(), FEM_Mesh::setAbsoluteGlobalno(), FEM_Mesh::setAscendingGlobalno(), Bulk_Adapt::SetMeshSize(), FEM_Adapt_Algs::SetMeshSize(), FEM_Adapt_Algs::SetReferenceMesh(), FEM_Adapt_Algs::simple_coarsen(), FEM_Adapt_Algs::simple_refine(), splitter::splitter(), FEM_MUtil::StructureTest(), topElemItr_Begin(), topElemItr_Next(), and splitter::~splitter().
const T& FEM_Entity_Types< T >::get | ( | int | type, | |
const char * | caller = "" | |||
) | const [inline] |
Return a read-only copy of this type, or else abort if type isn't set.
Definition at line 1102 of file fem_mesh.h.
Referenced by FEM_Mesh::copyShape(), FEM_Mesh::e2e_getAll(), FEM_Mesh::e2e_getIndex(), FEM_Mesh::e2e_getNbr(), FEM_Mesh::e2e_removeAll(), FEM_Mesh::e2e_replace(), FEM_Mesh::e2e_setAll(), FEM_Mesh::e2e_setIndex(), makeGhost(), makeGhosts(), FEM_Mesh::nElems(), splitter::separateSparse(), and update_new_element_e2e().
bool FEM_Entity_Types< T >::has | ( | int | type | ) | const [inline] |
Return true if we have a type t, and false otherwise.
Definition at line 1110 of file fem_mesh.h.
Referenced by addIDXLists(), splitter::addLayer(), splitter::buildCommLists(), check(), FEM_Mesh::clearGhostElems(), splitter::consistencyCheck(), FEM_Mesh::copyOldGlobalno(), FEM_Mesh::copyShape(), FEM_Mesh::createElemElemAdj(), splitter::createMesh(), FEM_Add_ghost_stencil(), FEM_break_mesh(), FEM_master_parallel_part(), FEM_Mesh_assemble(), FEM_Print_Mesh_Summary(), FEM_write_part2mesh(), FEM_Mesh::getEntities(), globalElem2elType(), makeGhost(), makeGhosts(), mesh2graph(), mesh2graph_face(), FEM_Mesh::nElems(), FEM_Mesh::print(), splitter::separateSparse(), FEM_Mesh::setAbsoluteGlobalno(), FEM_Mesh::setAscendingGlobalno(), and splitter::splitter().
T& FEM_Entity_Types< T >::set | ( | int | type, | |
const char * | caller = "" | |||
) | [inline] |
Return a writable copy of this type, calling new T(mesh) if it's not there.
Definition at line 1116 of file fem_mesh.h.
Referenced by FEM_Mesh::copyShape(), FEM_master_parallel_part(), FEM_Mesh_assemble(), FEM_Mesh::lookup(), and splitter::separateSparse().
T& FEM_Entity_Types< T >::operator[] | ( | int | type | ) | [inline] |
const T& FEM_Entity_Types< T >::operator[] | ( | int | type | ) | const [inline] |
Definition at line 1128 of file fem_mesh.h.
void FEM_Entity_Types< T >::pup | ( | PUP::er & | p | ) | [inline] |
Definition at line 1216 of file ParFUM_internals.h.
int FEM_Entity_Types< T >::size | ( | void | ) | const [inline] |
const T& FEM_Entity_Types< T >::get | ( | int | type, | |
const char * | caller = "" | |||
) | const [inline] |
Return a read-only copy of this type, or else abort if type isn't set.
Definition at line 1236 of file ParFUM_internals.h.
bool FEM_Entity_Types< T >::has | ( | int | type | ) | const [inline] |
Return true if we have a type t, and false otherwise, can return true for empty entity.
Definition at line 1244 of file ParFUM_internals.h.
bool FEM_Entity_Types< T >::hasNonEmpty | ( | int | type | ) | const [inline] |
Return true if we have a type t, and the type contains more than zero entities.
Definition at line 1249 of file ParFUM_internals.h.
T& FEM_Entity_Types< T >::set | ( | int | type, | |
const char * | caller = "" | |||
) | [inline] |
Return a writable copy of this type, calling new T(mesh) if it's not there.
Definition at line 1254 of file ParFUM_internals.h.
T& FEM_Entity_Types< T >::operator[] | ( | int | type | ) | [inline] |
const T& FEM_Entity_Types< T >::operator[] | ( | int | type | ) | const [inline] |
Definition at line 1266 of file ParFUM_internals.h.
CkVec<T *> FEM_Entity_Types< T >::types [private] |
Definition at line 1075 of file fem_mesh.h.
const FEM_Mesh& FEM_Entity_Types< T >::mesh [private] |
Definition at line 1076 of file fem_mesh.h.
const char* FEM_Entity_Types< T >::name [private] |
Definition at line 1077 of file fem_mesh.h.
CkVec<T *> FEM_Entity_Types< T >::types [private] |
Definition at line 1209 of file ParFUM_internals.h.
const FEM_Mesh& FEM_Entity_Types< T >::mesh [private] |
Definition at line 1210 of file ParFUM_internals.h.
const char* FEM_Entity_Types< T >::name [private] |
Definition at line 1211 of file ParFUM_internals.h.