PPL Logo

libs/ck-libs/fem/fem.C File Reference

Go to the source code of this file.

Data Structures

class  FEM_Mesh_Partition_List

Enumerations

enum  { FEM_globalID = 33 }

Functions

void FEM_Abort (const char *msg)
void FEM_Abort (const char *caller, const char *sprintf_msg, int int0, int int1, int int2)
CLINKAGE void pupFEM_Chunk (pup_er cp)
CLINKAGE void FEM_Init (FEM_Comm_t defaultComm)
 Initialize the FEM framework (must have called MPI_Init).
 FORTRAN_AS_C (FEM_INIT, FEM_Init, fem_init,(int *comm),(*comm)) void _registerfem(void)
CLINKAGE int FEM_Mesh_allocate (void)
 mesh creation functions
 FORTRAN_AS_C_RETURN (int, FEM_MESH_ALLOCATE, FEM_Mesh_allocate, fem_mesh_allocate,(void),())
 Return a new'd copy of this class, by calling pup.
CLINKAGE int FEM_Mesh_copy (int fem_mesh)
 build new mesh
 FORTRAN_AS_C_RETURN (int, FEM_MESH_COPY, FEM_Mesh_copy, fem_mesh_copy,(int *m),(*m)) CLINKAGE void FEM_Mesh_deallocate(int fem_mesh)
 FORTRAN_AS_C (FEM_MESH_DEALLOCATE, FEM_Mesh_deallocate, fem_mesh_deallocate,(int *m),(*m)) CLINKAGE int FEM_Mesh_read(const char *prefix
FEM_PartitionFEM_curPartition (void)
static void clearPartition (void)
static void FEM_Mesh_partition (FEM_Mesh *src, int _nchunks, FEM_Mesh_Output *out)
CLINKAGE void FEM_Mesh_partition (int fem_mesh, int nParts, int *destMeshes)
 FORTRAN_AS_C (FEM_MESH_PARTITION, FEM_Mesh_partition, fem_mesh_partition,(int *mesh, int *nParts, int *dest),(*mesh,*nParts, dest)) CLINKAGE int FEM_Mesh_recv(int fromRank
CLINKAGE int FEM_Mesh_broadcast (int fem_mesh, int masterRank, FEM_Comm_t comm_context)
 FORTRAN_AS_C_RETURN (int, FEM_MESH_BROADCAST, FEM_Mesh_broadcast, fem_mesh_broadcast,(int *mesh, int *rank, int *comm),(*mesh,*rank,*comm)) CLINKAGE void FEM_Mesh_copy_globalno(int src_mesh
 n (n_)
 addNodes (addNodes_)
 ends (new int[n])
 adj (new int[2 *userEnds[n-1]])
CLINKAGE void FEM_Add_ghost_stencil_type (int elType, int nElts, int addNodes, const int *ends, const int *adj2)
FLINKAGE void FTN_NAME (FEM_ADD_GHOST_STENCIL_TYPE, fem_add_ghost_stencil_type)
int globalElem2elType (const FEM_Mesh *m, int globalElem)
CLINKAGE void FEM_Add_ghost_stencil (int nElts, int addNodes, const int *ends, const int *adj)
FLINKAGE void FTN_NAME (FEM_ADD_GHOST_STENCIL, fem_add_ghost_stencil)
CLINKAGE void FEM_Add_ghost_layer (int nodesPerTuple, int doAddNodes)
FLINKAGE void FTN_NAME (FEM_ADD_GHOST_LAYER, fem_add_ghost_layer)
static void add_ghost_elem (int elType, int tuplesPerElem, const int *elem2tuple, int idxBase)
CLINKAGE void FEM_Add_ghost_elem (int elType, int tuplesPerElem, const int *elem2tuple)
FLINKAGE void FTN_NAME (FEM_ADD_GHOST_ELEM, fem_add_ghost_elem)
CLINKAGE void FEM_Update_ghost_field (int fid, int elType, void *v_data)
FLINKAGE void FTN_NAME (FEM_UPDATE_GHOST_FIELD, fem_update_ghost_field)
CLINKAGE void FEM_Exchange_ghost_lists (int elemType, int nIdx, const int *localIdx)
FLINKAGE void FTN_NAME (FEM_EXCHANGE_GHOST_LISTS, fem_exchange_ghost_lists)
CLINKAGE int FEM_Get_ghost_list_length (void)
FLINKAGE int FTN_NAME (FEM_GET_GHOST_LIST_LENGTH, fem_get_ghost_list_length)
CLINKAGE void FEM_Get_ghost_list (int *dest)
FLINKAGE void FTN_NAME (FEM_GET_GHOST_LIST, fem_get_ghost_list)
static void getRoccomPconn (IDXL_Side_t is, int bias, CkVec< int > &pconn, const int *paneFmChunk)
 Extract an IDXL_Side_t into Roccom format.
static CkVec< intgetRoccomPconn (int fem_mesh, int *ghost_len, const int *paneFmChunk)
 Extract all FEM communication information into Roccom format.
CLINKAGE void FEM_Get_roccom_pconn_size (int fem_mesh, int *total_len, int *ghost_len)
 FORTRAN_AS_C (FEM_GET_ROCCOM_PCONN_SIZE, FEM_Get_roccom_pconn_size, fem_get_roccom_pconn_size,(int *mesh, int *tl, int *gl),(*mesh, tl, gl)) CLINKAGE void FEM_Get_roccom_pconn(int fem_mesh
int commState (int entityNo, const IDXL_Side &s)
CLINKAGE void FEM_Make_node_globalno (int fem_mesh, FEM_Comm_t comm_context)
 Based on shared node communication list, compute FEM_NODE FEM_GLOBALNO and FEM_NODE_PRIMARY.
 FORTRAN_AS_C (FEM_MAKE_NODE_GLOBALNO, FEM_Make_node_globalno, fem_make_node_globalno,(int *mesh, int *comm),(*mesh,*comm)) class localToGlobal
CLINKAGE void FEM_Add_elem2face_tuples (int fem_mesh, int elem_type, int nodesPerTuple, int tuplesPerElem, const int *elem2tuple)

Variables

int femVersion = 1
static CmiNodeLock femLock = 0
int partNo
int tag
const intpaneFmChunk


Enumeration Type Documentation

anonymous enum

Enumerator:
FEM_globalID 

Definition at line 34 of file fem.C.


Function Documentation

void FEM_Abort ( const char *  msg  ) 

void FEM_Abort ( const char *  caller,
const char *  sprintf_msg,
int  int0,
int  int1,
int  int2 
)

Definition at line 20 of file fem.C.

CLINKAGE void pupFEM_Chunk ( pup_er  cp  ) 

Definition at line 36 of file fem.C.

References c, FEM_globalID, PUP::er::isDeleting(), p, FEMchunk::pup(), TCHARM_Get_global(), and TCHARM_Set_global().

Referenced by FEM_Init(), and pupFEM_Chunk().

Here is the call graph for this function:

Here is the caller graph for this function:

void FEM_Init ( FEM_Comm_t  defaultComm  ) 

Initialize the FEM framework (must have called MPI_Init).

Definition at line 53 of file fem.C.

Referenced by FTN_NAME().

Here is the caller graph for this function:

FORTRAN_AS_C ( FEM_INIT  ,
FEM_Init  ,
fem_init  ,
(int *comm ,
comm 
)

Definition at line 62 of file fem.C.

int FEM_Mesh_allocate ( void   ) 

mesh creation functions

Definition at line 81 of file fem.C.

Referenced by FTN_NAME().

Here is the caller graph for this function:

FORTRAN_AS_C_RETURN ( int  ,
FEM_MESH_ALLOCATE  ,
FEM_Mesh_allocate  ,
fem_mesh_allocate  ,
(void)  ,
()   
)

Return a new'd copy of this class, by calling pup.

Definition at line 89 of file fem.C.

References buf, PUP::fromMemBuf(), len, PUP::size(), and PUP::toMemBuf().

Here is the call graph for this function:

int FEM_Mesh_copy ( int  fem_mesh  ) 

build new mesh

Definition at line 104 of file fem.C.

Referenced by FEM_master_parallel_part(), FEM_Mesh_partition(), and FEM_slave_parallel_part().

Here is the caller graph for this function:

FORTRAN_AS_C_RETURN ( int  ,
FEM_MESH_COPY  ,
FEM_Mesh_copy  ,
fem_mesh_copy  ,
(int *m)  ,
m 
)

Definition at line 109 of file fem.C.

References c, caller, FEM_T_List< T >::destroy(), FEMchunk::get(), and FEMchunk::meshes.

Here is the call graph for this function:

FORTRAN_AS_C ( FEM_MESH_DEALLOCATE  ,
FEM_Mesh_deallocate  ,
fem_mesh_deallocate  ,
(int *m)  ,
m 
) const

static void clearPartition ( void   )  [static]

Definition at line 173 of file fem.C.

Referenced by FEM_Mesh_Parallel_broadcast(), and FEM_Mesh_partition().

Here is the caller graph for this function:

static void FEM_Mesh_partition ( FEM_Mesh src,
int  _nchunks,
FEM_Mesh_Output out 
) [static]

Definition at line 202 of file fem.C.

References clearPartition(), FEM_curPartition(), FEM_Mesh_split(), and FEM_Mesh::setAscendingGlobalno().

Referenced by FEM_Mesh_broadcast(), FEM_Mesh_partition(), FEM_Serial_split(), and FEM_Partition::getPartition().

Here is the call graph for this function:

Here is the caller graph for this function:

void FEM_Mesh_partition ( int  fem_mesh,
int  nParts,
int destMeshes 
)

Definition at line 222 of file fem.C.

FORTRAN_AS_C ( FEM_MESH_PARTITION  ,
FEM_Mesh_partition  ,
fem_mesh_partition  ,
(int *mesh, int *nParts, int *dest ,
*,*,  dest 
)

int FEM_Mesh_broadcast ( int  fem_mesh,
int  masterRank,
FEM_Comm_t  comm_context 
)

Type Constraints

Definition at line 301 of file fem.C.

Referenced by FTN_NAME().

Here is the caller graph for this function:

FORTRAN_AS_C_RETURN ( int  ,
FEM_MESH_BROADCAST  ,
FEM_Mesh_broadcast  ,
fem_mesh_broadcast  ,
(int *mesh, int *rank, int *comm ,
*,*,*  comm 
)

n ( n_   ) 

addNodes ( addNodes_   ) 

Referenced by FEM_Ghost_Layer::pup(), and FEM_Ghost_Stencil::wantNodes().

Here is the caller graph for this function:

ends ( new  int[n]  ) 

Referenced by adj(), and FEM_Ghost_Stencil::getNeighbor().

Here is the caller graph for this function:

adj ( new int [2 *userEnds[n-1]  ) 

Definition at line 871 of file fem.C.

References ends().

Referenced by adj(), copyOut(), fillAdjArray(), FTN_NAME(), FEM_Ghost_Stencil::getNeighbor(), printOut(), sortAdjArrays(), and BulkAdapt::update_local_edge_adj().

Here is the call graph for this function:

Here is the caller graph for this function:

void FEM_Add_ghost_stencil_type ( int  elType,
int  nElts,
int  addNodes,
const int ends,
const int adj2 
)

Definition at line 892 of file fem.C.

Referenced by FEM_Add_ghost_stencil().

Here is the caller graph for this function:

FLINKAGE void FTN_NAME ( FEM_ADD_GHOST_STENCIL_TYPE  ,
fem_add_ghost_stencil_type   
)

Definition at line 900 of file fem.C.

References FEM_Partition::addGhostStencil(), FEM_curPartition(), and PUP::s.

Here is the call graph for this function:

int globalElem2elType ( const FEM_Mesh m,
int  globalElem 
) [inline]

Definition at line 911 of file fem.C.

References FEM_Mesh::elem, FEM_Entity_Types< T >::has(), FEM_Entity_Types< T >::size(), and PUP::t.

Referenced by FEM_Add_ghost_stencil().

Here is the call graph for this function:

Here is the caller graph for this function:

void FEM_Add_ghost_stencil ( int  nElts,
int  addNodes,
const int ends,
const int adj 
)

Definition at line 929 of file fem.C.

Referenced by FTN_NAME().

Here is the caller graph for this function:

FLINKAGE void FTN_NAME ( FEM_ADD_GHOST_STENCIL  ,
fem_add_ghost_stencil   
)

Definition at line 966 of file fem.C.

References adj(), and FEM_Add_ghost_stencil().

Here is the call graph for this function:

void FEM_Add_ghost_layer ( int  nodesPerTuple,
int  doAddNodes 
)

Definition at line 978 of file fem.C.

Referenced by FTN_NAME(), and init().

Here is the caller graph for this function:

FLINKAGE void FTN_NAME ( FEM_ADD_GHOST_LAYER  ,
fem_add_ghost_layer   
)

Definition at line 985 of file fem.C.

References FEM_Add_ghost_layer().

Here is the call graph for this function:

static void add_ghost_elem ( int  elType,
int  tuplesPerElem,
const int elem2tuple,
int  idxBase 
) [static]

Definition at line 989 of file fem.C.

References CkCopyArray(), FEM_Partition::curLayer(), FEM_Ghost_Layer::elem, FEM_curPartition(), and FEM_Ghost_Layer::nodesPerTuple.

Referenced by FEM_Add_ghost_elem(), and FTN_NAME().

Here is the call graph for this function:

Here is the caller graph for this function:

void FEM_Add_ghost_elem ( int  elType,
int  tuplesPerElem,
const int elem2tuple 
)

Definition at line 1001 of file fem.C.

Referenced by init().

Here is the caller graph for this function:

FLINKAGE void FTN_NAME ( FEM_ADD_GHOST_ELEM  ,
fem_add_ghost_elem   
)

Definition at line 1003 of file fem.C.

References add_ghost_elem().

Here is the call graph for this function:

void FEM_Update_ghost_field ( int  fid,
int  elType,
void *  v_data 
)

Definition at line 1007 of file fem.C.

Referenced by FEM_Adapt_Algs::FEM_mesh_smooth(), FEM_REFINE2D_Newmesh(), and FTN_NAME().

Here is the caller graph for this function:

FLINKAGE void FTN_NAME ( FEM_UPDATE_GHOST_FIELD  ,
fem_update_ghost_field   
)

Definition at line 1022 of file fem.C.

References data, and FEM_Update_ghost_field().

Here is the call graph for this function:

void FEM_Exchange_ghost_lists ( int  elemType,
int  nIdx,
const int localIdx 
)

Definition at line 1101 of file fem.C.

FLINKAGE void FTN_NAME ( FEM_EXCHANGE_GHOST_LISTS  ,
fem_exchange_ghost_lists   
)

Definition at line 1106 of file fem.C.

References FEMchunk::exchangeGhostLists(), and FEMchunk::get().

Here is the call graph for this function:

int FEM_Get_ghost_list_length ( void   ) 

Definition at line 1112 of file fem.C.

Referenced by FEM_Get_ghost_list(), and FTN_NAME().

Here is the caller graph for this function:

FLINKAGE int FTN_NAME ( FEM_GET_GHOST_LIST_LENGTH  ,
fem_get_ghost_list_length   
)

Definition at line 1117 of file fem.C.

References FEM_Get_ghost_list_length().

Here is the call graph for this function:

void FEM_Get_ghost_list ( int dest  ) 

Definition at line 1120 of file fem.C.

FLINKAGE void FTN_NAME ( FEM_GET_GHOST_LIST  ,
fem_get_ghost_list   
)

Definition at line 1128 of file fem.C.

References FEMchunk::emptyList(), FEM_Get_ghost_list_length(), FEMchunk::get(), FEMchunk::getList(), and CkVec< T >::getVec().

Here is the call graph for this function:

static void getRoccomPconn ( IDXL_Side_t  is,
int  bias,
CkVec< int > &  pconn,
const int paneFmChunk 
) [static]

Extract an IDXL_Side_t into Roccom format.

Definition at line 1142 of file fem.C.

References nn, and CkVec< T >::push_back().

Referenced by FEM_Get_roccom_pconn_size(), and getRoccomPconn().

Here is the call graph for this function:

Here is the caller graph for this function:

static CkVec<int> getRoccomPconn ( int  fem_mesh,
int ghost_len,
const int paneFmChunk 
) [static]

Extract all FEM communication information into Roccom format.

Definition at line 1159 of file fem.C.

References FEM_Comm_ghost(), FEM_Comm_shared(), FEM_Mesh_get_entities(), FEM_Mesh_get_length(), getRoccomPconn(), IDXL_Create(), and CkVec< T >::size().

Here is the call graph for this function:

void FEM_Get_roccom_pconn_size ( int  fem_mesh,
int total_len,
int ghost_len 
)

Definition at line 1199 of file fem.C.

FORTRAN_AS_C ( FEM_GET_ROCCOM_PCONN_SIZE  ,
FEM_Get_roccom_pconn_size  ,
fem_get_roccom_pconn_size  ,
(int *mesh, int *tl, int *gl)  ,
*,,  gl 
)

int commState ( int  entityNo,
const IDXL_Side s 
)

Type Constraints

Definition at line 1252 of file fem.C.

References FEM_My_partition(), IDXL_Side::getRec(), and r.

Referenced by FEM_Make_node_globalno().

Here is the call graph for this function:

Here is the caller graph for this function:

void FEM_Make_node_globalno ( int  fem_mesh,
FEM_Comm_t  comm_context 
)

Based on shared node communication list, compute FEM_NODE FEM_GLOBALNO and FEM_NODE_PRIMARY.

Based on shared node communication list, compute FEM_NODE FEM_GLOBALNO and FEM_NODE_PRIMARY.

Definition at line 1271 of file fem.C.

FORTRAN_AS_C ( FEM_MAKE_NODE_GLOBALNO  ,
FEM_Make_node_globalno  ,
fem_make_node_globalno  ,
(int *mesh, int *comm ,
*,*  comm 
)

Definition at line 1324 of file fem.C.

References FEM_Entity::getGlobalno(), and PUP::l.

Here is the call graph for this function:

void FEM_Add_elem2face_tuples ( int  fem_mesh,
int  elem_type,
int  nodesPerTuple,
int  tuplesPerElem,
const int elem2tuple 
)

Definition at line 1422 of file fem.C.

Referenced by FEM_ADAPT_Init().

Here is the caller graph for this function:


Variable Documentation

CmiNodeLock femLock = 0 [static]

Definition at line 15 of file fem.C.

Referenced by FEM_Init().

Definition at line 126 of file fem.C.

Definition at line 240 of file fem.C.

const int* paneFmChunk

Definition at line 1208 of file fem.C.


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