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)
CDECL 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)
CDECL int FEM_Mesh_allocate (void)
 mesh creation functions
CDECL 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)
CDECL 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)
CDECL 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)
CDECL void FEM_Add_ghost_layer (int nodesPerTuple, int doAddNodes)
CDECL void FEM_Add_ghost_elem (int elType, int tuplesPerElem, const int *elem2tuple)
CDECL void FEM_Add_ghost_stencil (int nElts, int addNodes, const int *ends, const int *adj)
CDECL void FEM_Add_ghost_stencil_type (int elType, int nElts, int addNodes, const int *ends, const int *adj2)
CDECL 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)
CDECL 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)
CDECL 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)
CDECL void FEM_Print_n2n (int mesh, int nodeid)
CDECL void FEM_Print_n2e (int mesh, int eid)
CDECL void FEM_Print_e2e (int mesh, int eid)
CDECL 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)
CDECL void FEM_Exchange_ghost_lists (int elemType, int nIdx, const int *localIdx)
CDECL int FEM_Get_ghost_list_length (void)
CDECL void FEM_Get_ghost_list (int *dest)
void FEM_Update_field (int fid, void *nodes)
CDECL 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)
CDECL int FEM_add_node (int mesh, int *adjacent_nodes, int num_adjacent_nodes, int *chunks, int numChunks, int forceShared)
CDECL int FEM_add_element (int mesh, int *conn, int conn_size, int elem_type, int chunkNo)
CDECL void FEM_remove_node (int mesh, int node)
CDECL int FEM_remove_element (int mesh, int element, int elem_type, int permanent)
CDECL int FEM_Modify_Lock (int mesh, int *affectedNodes, int numAffectedNodes, int *affectedElts, int numAffectedElts, int elemtype)
CDECL int FEM_Modify_Unlock (int mesh)
CDECL int FEM_Modify_LockN (int mesh, int nodeId, int readLock)
CDECL int FEM_Modify_UnlockN (int mesh, int nodeId, int readLock)
void FEM_REF_INIT (int mesh)
CDECL 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.
FDECL 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)
FDECL 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)
FDECL 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)
FDECL void FTN_NAME (FEM_ADAPT_ADAPTMESH, fem_adapt_adaptmesh)(int *meshID
void FEM_ADAPT_SetElementSizeField (int meshID, int elem, double size)
FDECL void FTN_NAME (FEM_ADAPT_SETELEMENTSIZEFIELD, fem_adapt_setelementsizefield)(int *meshID
void FEM_ADAPT_SetElementsSizeField (int meshID, double *sizes)
FDECL void FTN_NAME (FEM_ADAPT_SETELEMENTSSIZEFIELD, fem_adapt_setelementssizefield)(int *meshID
void FEM_ADAPT_SetReferenceMesh (int meshID)
FDECL void FTN_NAME (FEM_ADAPT_SETREFERENCEMESH, fem_adapt_setreferencemesh)(int *meshID)
void FEM_ADAPT_GradateMesh (int meshID, double smoothness)
FDECL void FTN_NAME (FEM_ADAPT_GRADATEMESH, fem_adapt_gradatemesh)(int *meshID
void FEM_ADAPT_TestMesh (int meshID)
FDECL 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)
FDECL 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)
FDECL void FTN_NAME (FEM_ADAPT_SIMPLECOARSENMESH, fem_adapt_simplecoarsenmesh)(int *meshID
void ParFUM_SA_Init (int meshId)
 User functions for parfum initialization.
FDECL void FTN_NAME (PARFUM_SA_INIT, parfum_sa_init)(int *meshId)

Variables

FDECL void intqm
FDECL void int intmethod
FDECL void int int doublefactor
FDECL void int int double doublesizes
FDECL void intelem
FDECL void int doublesize
FDECL void doublesmoothness
FDECL void doubletargetA
FDECL void double doublexmin
FDECL void double double doubleymin
FDECL void double double
double double
xmax
FDECL void double double
double double double
ymax


Generated on Mon May 21 08:11:11 2012 for Charm++ by  doxygen 1.5.5