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 int * | qm |
FLINKAGE void int int * | method |
FLINKAGE void int int double * | factor |
FLINKAGE void int int double double * | sizes |
FLINKAGE void int * | elem |
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 |