PPL Logo

libs/ck-libs/ParFUM/ParFUM.h File Reference

Go to the source code of this file.

Data Structures

struct  ParFUM_collider
 ParFUM Collision Interface File. More...

Typedefs

typedef void(* FEM_Update_mesh_fn )(int userTag)
typedef void(* FEM_Update_mesh_fortran_fn )(int *userTag)
typedef void(* FEM_PupFn )(pup_er, void *)
typedef void(* FEM_Mesh_alloc_fn )(void *param, int *size, int *maxSize)
typedef int FEM_Comm_t
 This should be MPI_Comm, but I want it for Fortran too.
typedef void(* FEM_Userdata_fn )(pup_er p, void *data)

Functions

void _registerParFUM (void)
CLINKAGE void FEM_Init (FEM_Comm_t defaultCommunicator)
 Initialize the FEM framework (must have called MPI_Init).
void FEM_Done (void)
int FEM_My_partition (void)
 Utility functions.
int FEM_Num_partitions (void)
double FEM_Timer (void)
void FEM_Print (const char *str)
void FEM_Print_partition (void)
CLINKAGE int FEM_Mesh_allocate (void)
 mesh creation functions
CLINKAGE int FEM_Mesh_copy (int fem_mesh)
 build new mesh
void FEM_Mesh_deallocate (int fem_mesh)
 copy existing mesh
int FEM_Mesh_read (const char *prefix, int partNo, int nParts)
 delete this mesh
void FEM_Mesh_write (int fem_mesh, const char *prefix, int partNo, int nParts)
int FEM_Mesh_assemble (int nParts, const int *srcMeshes)
CLINKAGE void FEM_Mesh_partition (int fem_mesh, int nParts, int *destMeshes)
int FEM_Mesh_recv (int fromRank, int tag, FEM_Comm_t comm_context)
void FEM_Mesh_send (int fem_mesh, int toRank, int tag, FEM_Comm_t comm_context)
int FEM_Mesh_reduce (int fem_mesh, int toRank, FEM_Comm_t comm_context)
CLINKAGE int FEM_Mesh_broadcast (int fem_mesh, int masterRank, FEM_Comm_t comm_context)
void FEM_Mesh_copy_globalno (int src_mesh, int dest_mesh)
void FEM_Mesh_print (int fem_mesh)
void FEM_Mesh_set_conn (int fem_mesh, int entity, const int *conn, int firstItem, int length, int width)
void FEM_Mesh_get_conn (int fem_mesh, int entity, int *conn, int firstItem, int length, int width)
void FEM_Mesh_set_data (int fem_mesh, int entity, int attr, const void *data, int firstItem, int length, int datatype, int width)
void FEM_Mesh_get_data (int fem_mesh, int entity, int attr, void *data, int firstItem, int length, int datatype, int width)
void FEM_Mesh_conn (int fem_mesh, int entity, int *conn, int firstItem, int length, int width)
int FEM_Mesh_get_length (int fem_mesh, int entity)
void FEM_Mesh_data (int fem_mesh, int entity, int attr, void *data, int firstItem, int length, int datatype, int width)
void FEM_Mesh_data_layout (int fem_mesh, int entity, int attr, void *data, int firstItem, int length, IDXL_Layout_t layout)
void FEM_Mesh_data_offset (int fem_mesh, int entity, int attr, void *data, int firstItem, int length, int type, int width, int offsetBytes, int distanceBytes, int skewBytes)
void FEM_Register_array (int fem_mesh, int entity, int attr, void *data, int datatype, int width)
void FEM_Register_array_layout (int fem_mesh, int entity, int attr, void *data, IDXL_Layout_t layout)
void FEM_Register_entity (int fem_mesh, int entity, void *data, int len, int max, FEM_Mesh_alloc_fn fn)
void FEM_Mesh_set_length (int fem_mesh, int entity, int newLength)
int FEM_Mesh_get_width (int fem_mesh, int entity, int attr)
void FEM_Mesh_set_width (int fem_mesh, int entity, int attr, int newWidth)
int FEM_Mesh_get_datatype (int fem_mesh, int entity, int attr)
int FEM_Mesh_get_entities (int fem_mesh, int *entities)
int FEM_Mesh_get_attributes (int fem_mesh, int entity, int *attributes)
const char * FEM_Get_entity_name (int entity, char *storage)
 Return the human-readable version of this entity code, like "FEM_NODE".
const char * FEM_Get_attr_name (int attr, char *storage)
 Return the human-readable version of this attribute code, like "FEM_CONN".
const char * FEM_Get_datatype_name (int datatype, char *storage)
int FEM_Mesh_is_get (int fem_mesh)
int FEM_Mesh_is_set (int fem_mesh)
void FEM_Mesh_become_get (int fem_mesh)
void FEM_Mesh_become_set (int fem_mesh)
void FEM_Mesh_pup (int fem_mesh, int dataTag, FEM_Userdata_fn fn, void *data)
CLINKAGE void FEM_Add_ghost_layer (int nodesPerTuple, int doAddNodes)
CLINKAGE void FEM_Add_ghost_elem (int elType, int tuplesPerElem, const int *elem2tuple)
CLINKAGE void FEM_Add_ghost_stencil (int nElts, int addNodes, const int *ends, const int *adj)
CLINKAGE void FEM_Add_ghost_stencil_type (int elType, int nElts, int addNodes, const int *ends, const int *adj2)
CLINKAGE void FEM_Add_elem2face_tuples (int fem_mesh, int elem_type, int nodesPerTuple, int tuplesPerElem, const int *elem2tuple)
 Register a set of tuples for a single element type Must be called once for each element type.
void FEM_Add_linear_periodicity (int nFaces, int nPer, const int *facesA, const int *facesB, int nNodes, const double *nodeLocs)
void FEM_Sym_coordinates (int who, double *d_locs)
void FEM_Set_sym_nodes (const int *canon, const int *sym)
void FEM_Get_sym (int who, int *destSym)
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.
IDXL_Layout_t FEM_Create_simple_field (int base_type, int vec_len)
IDXL_Layout_t FEM_Create_field (int base_type, int vec_len, int init_offset, int distance)
IDXL_t FEM_Comm_shared (int fem_mesh, int entity)
IDXL_t FEM_Comm_ghost (int fem_mesh, int entity)
CLINKAGE void FEM_Get_roccom_pconn_size (int fem_mesh, int *total_len, int *ghost_len)
void FEM_Get_roccom_pconn (int fem_mesh, const int *paneFmChunk, int *pconn)
void FEM_Set_roccom_pconn (int fem_mesh, const int *paneFmChunk, const int *src, int total_len, int ghost_len)
int FEM_Register (void *userData, FEM_PupFn _pup_ud)
void FEM_Migrate (void)
void * FEM_Get_userdata (int n)
void FEM_Barrier (void)
void init (void)
void driver (void)
void FEM_Mesh_create_node_elem_adjacency (int fem_mesh)
void FEM_Mesh_create_node_node_adjacency (int fem_mesh)
void FEM_Mesh_create_elem_elem_adjacency (int fem_mesh)
CLINKAGE void FEM_Print_n2n (int mesh, int nodeid)
CLINKAGE void FEM_Print_n2e (int mesh, int eid)
CLINKAGE void FEM_Print_e2e (int mesh, int eid)
CLINKAGE void FEM_Print_e2n (int mesh, int eid)
void FEM_Mesh_allocate_valid_attr (int fem_mesh, int entity_type)
void FEM_set_entity_valid (int mesh, int entityType, int entityIdx)
void FEM_set_entity_invalid (int mesh, int entityType, int entityIdx)
int FEM_is_valid (int mesh, int entityType, int entityIdx)
int FEM_count_valid (int mesh, int entityType)
int FEM_is_node_shared (int mesh, int idx)
int FEM_find_node_owner (int mesh, int idx)
void FEM_Mesh_detect_features (int fem_mesh)
void FEM_set_entity_coord2 (int mesh, int entityType, int entityIdx, double x, double y)
void FEM_set_entity_coord3 (int mesh, int entityType, int entityIdx, double x, double y, double z)
void FEM_Mesh_Become_Setting (int mesh)
void FEM_Mesh_Become_Getting (int mesh)
int FEM_Mesh_default_read (void)
int FEM_Mesh_default_write (void)
void FEM_Mesh_set_default_read (int fem_mesh)
void FEM_Mesh_set_default_write (int fem_mesh)
CLINKAGE void FEM_Exchange_ghost_lists (int elemType, int nIdx, const int *localIdx)
CLINKAGE int FEM_Get_ghost_list_length (void)
CLINKAGE void FEM_Get_ghost_list (int *dest)
void FEM_Update_field (int fid, void *nodes)
CLINKAGE void FEM_Update_ghost_field (int fid, int elType, void *v_data)
void FEM_Reduce_field (int fid, const void *nodes, void *outbuf, int op)
void FEM_Reduce (int fid, const void *inbuf, void *outbuf, int op)
void FEM_Read_field (int fid, void *nodes, const char *fname)
void FEM_Set_node (int nNodes, int doublePerNode)
void FEM_Set_node_data (const double *data)
void FEM_Set_elem (int elType, int nElem, int doublePerElem, int nodePerElem)
void FEM_Set_elem_data (int elType, const double *data)
void FEM_Set_elem_conn (int elType, const int *conn)
void FEM_Set_sparse (int uniqueIdentifier, int nRecords, const int *nodes, int nodesPerRec, const void *data, int dataPerRec, int dataType)
void FEM_Set_sparse_elem (int uniqueIdentifier, const int *rec2elem)
void FEM_Get_node (int *nNodes, int *doublePerNode)
void FEM_Get_node_data (double *data)
void FEM_Get_elem (int elType, int *nElem, int *doublePerElem, int *nodePerElem)
void FEM_Get_elem_data (int elType, double *data)
void FEM_Get_elem_conn (int elType, int *conn)
int FEM_Get_sparse_length (int uniqueIdentifier)
void FEM_Get_sparse (int uniqueIdentifier, int *nodes, void *data)
void FEM_Set_mesh (int nelem, int nnodes, int nodePerElem, int *conn)
int FEM_Get_node_ghost (void)
int FEM_Get_elem_ghost (int elemType)
void FEM_Update_mesh (FEM_Update_mesh_fn callFn, int userValue, int doWhat)
void FEM_Set_partition (int *elem2chunk)
CLINKAGE int FEM_add_node (int mesh, int *adjacent_nodes, int num_adjacent_nodes, int *chunks, int numChunks, int forceShared)
CLINKAGE int FEM_add_element (int mesh, int *conn, int conn_size, int elem_type, int chunkNo)
CLINKAGE void FEM_remove_node (int mesh, int node)
CLINKAGE int FEM_remove_element (int mesh, int element, int elem_type, int permanent)
CLINKAGE int FEM_Modify_Lock (int mesh, int *affectedNodes, int numAffectedNodes, int *affectedElts, int numAffectedElts, int elemtype)
CLINKAGE int FEM_Modify_Unlock (int mesh)
CLINKAGE int FEM_Modify_LockN (int mesh, int nodeId, int readLock)
CLINKAGE int FEM_Modify_UnlockN (int mesh, int nodeId, int readLock)
void FEM_REF_INIT (int mesh)
CLINKAGE void FEM_Print_Mesh_Summary (int mesh)
 Prints the mesh summary, i.e.
void FEM_Serial_split (int nchunks)
void FEM_Serial_begin (int chunkNo)
void FEM_Serial_read (int chunkNo, int nChunks)
void FEM_Serial_assemble (void)
int FEM_Get_comm_partners (void)
int FEM_Get_comm_partner (int partnerNo)
int FEM_Get_comm_count (int partnerNo)
void FEM_Get_comm_nodes (int partnerNo, int *nodeNos)
ParFUM_collider ParFUM_Collide_Init (int dimension)
 ParFUM_Collide_init() will initialize the collision library.
int ParFUM_Collide (ParFUM_collider *c, double box_padding=0.0)
 ParFUM_Collide() will create bounding boxes for each element in the local mesh chunk.
void ParFUM_Collide_GetCollisions (ParFUM_collider *c, void *results)
 ParFUM_Collide_GetCollisions() is used to get the data for any remote elements which It should be called after Collide even if ParFUM_Collide returned 0.
void ParFUM_Collide_Destroy (ParFUM_collider *c)
void FEM_ADAPT_Init (int meshID)
 User functions for adaptivity.
FLINKAGE void FTN_NAME (FEM_ADAPT_INIT, fem_adapt_init)(int *meshID)
void FEM_ADAPT_Refine (int meshID, int qm, int method, double factor, double *sizes)
FLINKAGE void FTN_NAME (FEM_ADAPT_REFINE, fem_adapt_refine)(int *meshID
void FEM_ADAPT_Coarsen (int meshID, int qm, int method, double factor, double *sizes)
FLINKAGE void FTN_NAME (FEM_ADAPT_COARSEN, fem_adapt_coarsen)(int *meshID
void FEM_ADAPT_AdaptMesh (int meshID, int qm, int method, double factor, double *sizes)
FLINKAGE void FTN_NAME (FEM_ADAPT_ADAPTMESH, fem_adapt_adaptmesh)(int *meshID
void FEM_ADAPT_SetElementSizeField (int meshID, int elem, double size)
FLINKAGE void FTN_NAME (FEM_ADAPT_SETELEMENTSIZEFIELD, fem_adapt_setelementsizefield)(int *meshID
void FEM_ADAPT_SetElementsSizeField (int meshID, double *sizes)
FLINKAGE void FTN_NAME (FEM_ADAPT_SETELEMENTSSIZEFIELD, fem_adapt_setelementssizefield)(int *meshID
void FEM_ADAPT_SetReferenceMesh (int meshID)
FLINKAGE void FTN_NAME (FEM_ADAPT_SETREFERENCEMESH, fem_adapt_setreferencemesh)(int *meshID)
void FEM_ADAPT_GradateMesh (int meshID, double smoothness)
FLINKAGE void FTN_NAME (FEM_ADAPT_GRADATEMESH, fem_adapt_gradatemesh)(int *meshID
void FEM_ADAPT_TestMesh (int meshID)
FLINKAGE void FTN_NAME (FEM_ADAPT_TESTMESH, fem_adapt_testmesh)(int *meshID)
int FEM_ADAPT_SimpleRefineMesh (int meshID, double targetA, double xmin=0.0, double ymin=0.0, double xmax=1.0, double ymax=1.0)
FLINKAGE void FTN_NAME (FEM_ADAPT_SIMPLEREFINEMESH, fem_adapt_simplerefinemesh)(int *meshID
int FEM_ADAPT_SimpleCoarsenMesh (int meshID, double targetA, double xmin=0.0, double ymin=0.0, double xmax=1.0, double ymax=1.0)
FLINKAGE void FTN_NAME (FEM_ADAPT_SIMPLECOARSENMESH, fem_adapt_simplecoarsenmesh)(int *meshID
void ParFUM_SA_Init (int meshId)
 User functions for parfum initialization.
FLINKAGE void FTN_NAME (PARFUM_SA_INIT, parfum_sa_init)(int *meshId)

Variables

FLINKAGE void intqm
FLINKAGE void int intmethod
FLINKAGE void int int double * factor
FLINKAGE void int int double
double * 
sizes
FLINKAGE void intelem
FLINKAGE void int double * size
FLINKAGE void double * smoothness
FLINKAGE void double * targetA
FLINKAGE void double double * xmin
FLINKAGE void double double
double * 
ymin
FLINKAGE void double double
double double * 
xmax
FLINKAGE void double double
double double double * 
ymax


Generated on Mon Sep 21 08:10:53 2020 for Charm++ by  doxygen 1.5.5