Go to the source code of this file.
Data Structures | |
class | FEM_Comm_Holder |
We want the FEM_Comm/IDXL_Side's to be accessible to *both* FEM routines (via these data structures) and IDXL routines (via an idxl->addStatic registration). More... | |
class | FEM_Sym_Desc |
Describes one kind of symmetry condition. More... | |
class | FEM_Sym_Linear |
Describes a linear-periodic (space shift) symmetry:. More... | |
class | FEM_Sym_List |
Describes all the different kinds of symmetries that apply to this mesh. More... | |
class | BasicTable2d< T > |
This is a simple 2D table. More... | |
class | AllocTable2d< T > |
A heap-allocatable, resizable BasicTable2d. More... | |
class | FEM_Attribute |
Describes an FEM entity's "attribute"--a user-visible, user-settable 2D table. More... | |
class | FEM_Entity |
Describes an entire class of "entities"--nodes, elements, or sparse data records. More... | |
class | FEM_Node |
FEM_Node is a type of FEM_Entity, which refers to nodes. More... | |
class | FEM_Userdata_item |
Describes one piece of generic unassociated mesh data. More... | |
class | FEM_Userdata_list |
Describes all the unassociated data in a mesh. More... | |
class | FEM_Entity_Types< T > |
This class describes several different types of a certain kind of entity. More... | |
class | FEM_Mesh |
A FEM_Mesh is a collection of entities. More... | |
Typedefs | |
typedef IDXL_Side | FEM_Comm |
typedef IDXL_List | FEM_Comm_List |
typedef IDXL_Rec | FEM_Comm_Rec |
typedef unsigned char | FEM_Symmetries_t |
This datatype is how the framework stores symmetries internally. | |
Functions | |
CLINKAGE const char * | FEM_Get_entity_name (int entity, char *storage) |
Return the human-readable version of this entity code, like "FEM_NODE". | |
CLINKAGE const char * | FEM_Get_attr_name (int attr, char *storage) |
Return the human-readable version of this attribute code, like "FEM_CONN". | |
PUPmarshall (FEM_Attribute) class FEM_DataAttribute | |
Describes a single table of user data associated with an entity. | |
PUPmarshall (FEM_DataAttribute) class FEM_IndexAttribute | |
This table maps an entity to a set of integer indices. | |
PUPmarshall (FEM_IndexAttribute) class FEM_VarIndexAttribute | |
PUPmarshall (FEM_Entity) inline int FEM_Attribute | |
PUPmarshall (FEM_Node) class FEM_Elem | |
Describes one kind of FEM elements--the FEM_ELEM entity type. | |
PUPmarshall (FEM_Elem) class FEM_Sparse | |
FEM_Sparse describes a set of records of sparse data that are all the same size and all associated with the same number of nodes. | |
PUPmarshall (FEM_Sparse) class FEM_Userdata_pupfn | |
Describes a user function to pup a piece of mesh data. | |
void | FEM_Index_Check (const char *caller, const char *entityType, int type, int maxType) |
void | FEM_Is_NULL (const char *caller, const char *entityType, int type) |
int | zeroToMinusOne (int i) |
PUPmarshall (FEM_Mesh) FEM_Mesh *FEM_Mesh_lookup(int fem_mesh | |
FEM_Entity * | FEM_Entity_lookup (int fem_mesh, int entity, const char *caller) |
FEM_Attribute * | FEM_Attribute_lookup (int fem_mesh, int entity, int attr, const char *caller) |
void | FEM_Mesh_data_layout (int fem_mesh, int entity, int attr, void *data, int firstItem, int length, const IDXL_Layout &layout) |
void | FEM_Register_array_layout (int fem_mesh, int entity, int attr, void *data, int firstItem, const IDXL_Layout &layout) |
void | FEM_Register_entity_impl (int fem_mesh, int entity, void *args, int len, int max, FEM_Mesh_alloc_fn fn) |
FEM_Mesh * | FEM_Mesh_assemble (int nchunks, FEM_Mesh **chunks) |
Reassemble split chunks into a single mesh. | |
FILE * | FEM_openMeshFile (const char *prefix, int chunkNo, int nchunks, bool forRead) |
FEM_Mesh * | FEM_readMesh (const char *prefix, int chunkNo, int nChunks) |
void | FEM_writeMesh (FEM_Mesh *m, const char *prefix, int chunkNo, int nChunks) |
Variables | |
const char * | caller |
Definition at line 27 of file fem_mesh.h.
typedef IDXL_List FEM_Comm_List |
Definition at line 28 of file fem_mesh.h.
typedef IDXL_Rec FEM_Comm_Rec |
Definition at line 29 of file fem_mesh.h.
typedef unsigned char FEM_Symmetries_t |
This datatype is how the framework stores symmetries internally.
Each bit of this type describes a different symmetry. There must be enough bits to accomidate several simulatanious symmetries.
Definition at line 61 of file fem_mesh.h.
CLINKAGE const char* FEM_Get_entity_name | ( | int | entity, | |
char * | storage | |||
) |
Return the human-readable version of this entity code, like "FEM_NODE".
storage, which must be at least 80 bytes long, is used for non-static names, like the user tag "FEM_ELEM+2".
Definition at line 1039 of file fem_mesh.C.
CLINKAGE const char* FEM_Get_attr_name | ( | int | attr, | |
char * | storage | |||
) |
Return the human-readable version of this attribute code, like "FEM_CONN".
storage, which must be at least 80 bytes long, is used for non-static names, like the user tag "FEM_DATA+7".
PUPmarshall | ( | FEM_Attribute | ) |
Describes a single table of user data associated with an entity.
Since the data can be of any type, it is stored as chars.
Copy src[srcEntity] into our dstEntity.
Definition at line 432 of file fem_mesh.h.
References caller, datatype, dest, firstItem, length, max(), p, PUP::pup(), src, and width().
PUPmarshall | ( | FEM_DataAttribute | ) |
This table maps an entity to a set of integer indices.
The canonical example of this is the element-node connectivity array.
Checks incoming indices for validity.
Check this (newly set) row of our table for validity. You're expected to abort or throw or exit if something is wrong.
Copy src[srcEntity] into our dstEntity.
Definition at line 479 of file fem_mesh.h.
References caller, check(), datatype, dest, firstItem, idx, length, max(), p, PUP::pup(), src, and width().
PUPmarshall | ( | FEM_IndexAttribute | ) |
Definition at line 526 of file fem_mesh.h.
References caller, data, dest, firstItem, idx, CkVec< T >::insert(), length, operator==(), p, print(), PUP::pup(), CkVec< T >::reserve(), CkVec< T >::size(), src, and type.
PUPmarshall | ( | FEM_Entity | ) |
Definition at line 846 of file fem_mesh.h.
PUPmarshall | ( | FEM_Node | ) |
Describes one kind of FEM elements--the FEM_ELEM entity type.
Elements are typically the central user-visible object in a FEM computation.
Directly access our connectivity table:
Definition at line 905 of file fem_mesh.h.
References FEM_Attribute::attr, caller, conn, elem, idx, p, print(), FEM_Attribute::pup(), src, and type.
PUPmarshall | ( | FEM_Elem | ) |
FEM_Sparse describes a set of records of sparse data that are all the same size and all associated with the same number of nodes.
Sparse data is associated with some subset of the nodes in the mesh, and gets copied to every chunk that has all those nodes. The canonical use of sparse data is to describe boundary conditions.
elem, from FEM_SPARSE_ELEM, is an optional (that is, possibly NULL) array which changes the partitioning of sparse entities: if non-NULL, sparse entity t lives on the same chunk as FEM_ELEM+elem[2*t] local number elem[2*t+1].
This attribute's width is always 2.
Return true if we have an element partitioning table
Directly access our element partitioning table (e.g., for re-numbering)
Definition at line 952 of file fem_mesh.h.
References FEM_Attribute::attr, caller, elem, mesh, p, and FEM_Attribute::pup().
PUPmarshall | ( | FEM_Sparse | ) |
Describes a user function to pup a piece of mesh data.
Call user's pup routine using this PUP::er
Definition at line 994 of file fem_mesh.h.
References data, p, and FEM_Attribute::pup().
Definition at line 1869 of file fem_mesh.C.
void FEM_Is_NULL | ( | const char * | caller, | |
const char * | entityType, | |||
int | type | |||
) |
Definition at line 1877 of file fem_mesh.C.
Definition at line 1133 of file fem_mesh.h.
Referenced by FTN_NAME().
PUPmarshall | ( | FEM_Mesh | ) |
FEM_Entity* FEM_Entity_lookup | ( | int | fem_mesh, | |
int | entity, | |||
const char * | caller | |||
) |
Referenced by FEM_REFINE2D_Coarsen(), and FEM_REFINE2D_Split().
FEM_Attribute* FEM_Attribute_lookup | ( | int | fem_mesh, | |
int | entity, | |||
int | attr, | |||
const char * | caller | |||
) |
void FEM_Mesh_data_layout | ( | int | fem_mesh, | |
int | entity, | |||
int | attr, | |||
void * | data, | |||
int | firstItem, | |||
int | length, | |||
const IDXL_Layout & | layout | |||
) |
void FEM_Register_array_layout | ( | int | fem_mesh, | |
int | entity, | |||
int | attr, | |||
void * | data, | |||
int | firstItem, | |||
const IDXL_Layout & | layout | |||
) |
void FEM_Register_entity_impl | ( | int | fem_mesh, | |
int | entity, | |||
void * | args, | |||
int | len, | |||
int | max, | |||
FEM_Mesh_alloc_fn | fn | |||
) |
Definition at line 1907 of file fem_mesh.C.
Definition at line 1940 of file fem_mesh.C.
Definition at line 1971 of file fem_mesh.C.
const char* caller |
Definition at line 1325 of file fem_mesh.h.
Referenced by alignas(), FEM_master_parallel_part(), FEM_Mesh_allocate(), FEM_Mesh_copy(), FEM_Mesh_data_layoutP(), FEM_Mesh_detect_features(), FEM_Mesh_get2ElementsOnEdge(), FEM_Set_sym_nodes(), FEM_Sym_coordinates(), forAllCharesDo(), FORTRAN_AS_C(), FORTRAN_AS_C_RETURN(), FTN_NAME(), FEM_Entity_Types< FEM_Elem >::get(), IDXL_Create(), PUPmarshall(), CkCacheManager< CkCacheKey >::recvData(), FEM_Entity_Types< FEM_Elem >::set(), and FEM_Comm_Holder::~FEM_Comm_Holder().