PPL Logo

libs/ck-libs/fem/fem_mesh.h File Reference

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_EntityFEM_Entity_lookup (int fem_mesh, int entity, const char *caller)
FEM_AttributeFEM_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_MeshFEM_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_MeshFEM_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


Typedef Documentation

Definition at line 27 of file fem_mesh.h.

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.


Function Documentation

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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

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.

Here is the call graph for this function:

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.

Here is the call graph for this function:

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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

void FEM_Index_Check ( const char *  caller,
const char *  entityType,
int  type,
int  maxType 
)

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.

int zeroToMinusOne ( int  i  )  [inline]

Definition at line 1133 of file fem_mesh.h.

Referenced by FTN_NAME().

Here is the caller graph for this function:

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().

Here is the caller graph for this function:

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 
)

FILE* FEM_openMeshFile ( const char *  prefix,
int  chunkNo,
int  nchunks,
bool  forRead 
)

Definition at line 1907 of file fem_mesh.C.

FEM_Mesh* FEM_readMesh ( const char *  prefix,
int  chunkNo,
int  nChunks 
)

Definition at line 1940 of file fem_mesh.C.

void FEM_writeMesh ( FEM_Mesh m,
const char *  prefix,
int  chunkNo,
int  nChunks 
)

Definition at line 1971 of file fem_mesh.C.


Variable Documentation

const char* caller


Generated on Mon Sep 21 08:07:15 2020 for Charm++ by  doxygen 1.5.5