Go to the source code of this file.
ParFUM-Iterators provides iterators for ParFUM meshes that work on a variety of platforms.
Definition in file ParFUM_Iterators.h.
void allocateModelForCUDADevice | ( | MeshModel * | model | ) |
void deallocateModelForCUDADevice | ( | MeshModel * | model | ) |
void mesh_set_device | ( | MeshModel * | m, | |
MeshDevice | d | |||
) |
Select the device kernels should be run on.
MeshDevice mesh_target_device | ( | MeshModel * | m | ) |
Return the device kernels should be run on.
MeshModel* meshModel_Create_Init | ( | ) |
Create and access a mesh model.
Only call from Init Currently only one model can be created. To extend, each model must just reference a different FEM_Mesh object
void meshModel_Create_Driver | ( | MeshDevice | target_device, | |
int | elem_attr_sz, | |||
int | node_attr_sz, | |||
int | model_attr_sz, | |||
void * | mAtt, | |||
MeshModel & | model | |||
) |
Create and access a mesh model.
Only call from Driver
void meshModel_Destroy | ( | MeshModel * | m | ) |
Cleanup a model.
Currently does nothing
void meshModel_SuggestInitialSize | ( | MeshModel * | m, | |
unsigned | numNodes, | |||
unsigned | numElements | |||
) |
MeshElement meshModel_InsertElem | ( | MeshModel * | , | |
MeshElementType | , | |||
MeshNode * | ||||
) |
Insert an element.
void meshElement_SetId | ( | MeshModel * | , | |
MeshElement | , | |||
EntityID | id | |||
) |
int meshElement_GetId | ( | MeshModel * | m, | |
MeshElement | e | |||
) |
Get id of an element.
void meshElement_SetAttrib | ( | MeshModel * | , | |
MeshElement | , | |||
void * | ||||
) |
void* meshElement_GetAttrib | ( | MeshModel * | , | |
MeshElement | ||||
) |
Get element attribute.
MeshNode meshElement_GetNode | ( | MeshModel * | , | |
MeshElement | , | |||
int | idx | |||
) |
Get node via id.
MeshElement meshModel_GetElemAtId | ( | MeshModel * | m, | |
EntityID | id | |||
) | [inline] |
Get element via id.
Definition at line 236 of file ParFUM_Iterators.h.
References elem, MeshModel::elemIDHash, CkHashtableT< KEY, OBJ >::get(), ElemID::id, MeshModel::mesh, MESH_ELEMENT_TET4, BasicTable2d< T >::size(), and ElemID::type.
int meshElement_GetNNodes | ( | MeshModel * | model, | |
MeshElement | elem | |||
) |
bool meshElement_IsCohesive | ( | MeshModel * | m, | |
MeshElement | e | |||
) |
void mesh_retrieve_elem_data | ( | MeshModel * | m | ) |
void mesh_retrieve_node_data | ( | MeshModel * | m | ) |
void mesh_put_elem_data | ( | MeshModel * | m | ) |
void mesh_put_node_data | ( | MeshModel * | m | ) |
void mesh_retrieve_data | ( | MeshModel * | m | ) |
void mesh_put_data | ( | MeshModel * | m | ) |
MeshElement meshFacet_GetElem | ( | MeshModel * | m, | |
MeshFacet | f, | |||
int | i | |||
) |
bool meshElement_IsValid | ( | MeshModel * | m, | |
MeshElement | e | |||
) |
bool meshVertex_IsBoundary | ( | MeshModel * | m, | |
MeshVertex | v | |||
) |
MeshVertex meshNode_GetVertex | ( | MeshModel * | m, | |
MeshNode | n | |||
) |
MeshElement meshModel_InsertCohesiveAtFacet | ( | MeshModel * | m, | |
int | ElemType, | |||
MeshFacet | f | |||
) |
bool haveConfigurableCPUGPUMap | ( | ) |
int configurableCPUGPUMapNumNodes | ( | ) |
MeshNodeItr * meshModel_CreateNodeItr | ( | MeshModel * | model | ) | [inline] |
Create Iterator for nodes.
Definition at line 382 of file ParFUM_Iterators.h.
References MeshNodeItr::model.
void meshNodeItr_Destroy | ( | MeshNodeItr * | itr | ) | [inline] |
void meshNodeItr_Begin | ( | MeshNodeItr * | itr | ) | [inline] |
Initialize Iterator.
Definition at line 392 of file ParFUM_Iterators.h.
References FEM_Entity::ghost, FEM_Entity::is_valid_any_idx(), MeshModel::mesh, MeshNodeItr::model, FEM_Mesh::node, MeshNodeItr::parfum_index, and FEM_Entity::size().
bool meshNodeItr_IsValid | ( | MeshNodeItr * | itr | ) | [inline] |
Determine if Iterator is valid or if it has iterated past last Node.
Definition at line 414 of file ParFUM_Iterators.h.
References FEM_Entity::is_valid_any_idx(), MeshModel::mesh, MeshNodeItr::model, FEM_Mesh::node, and MeshNodeItr::parfum_index.
Referenced by meshNodeItr_GetCurr(), and meshNodeItr_Next().
void meshNodeItr_Next | ( | MeshNodeItr * | itr | ) | [inline] |
Increment iterator.
Definition at line 418 of file ParFUM_Iterators.h.
References FEM_Entity::is_valid_any_idx(), MeshModel::mesh, meshNodeItr_IsValid(), MeshNodeItr::model, FEM_Mesh::node, MeshNodeItr::parfum_index, and FEM_Entity::size().
MeshNode meshNodeItr_GetCurr | ( | MeshNodeItr * | itr | ) | [inline] |
Get MeshNode associated with the iterator.
Definition at line 438 of file ParFUM_Iterators.h.
References meshNodeItr_IsValid(), and MeshNodeItr::parfum_index.
MeshElemItr * meshModel_CreateElemItr | ( | MeshModel * | model | ) | [inline] |
Create Iterator for elements.
Definition at line 451 of file ParFUM_Iterators.h.
References MESH_ELEMENT_TET4, MeshElemItr::model, and MeshElemItr::type.
Referenced by meshFacetItr_Begin().
void meshElemItr_Destroy | ( | MeshElemItr * | itr | ) | [inline] |
void meshElemItr_Begin | ( | MeshElemItr * | itr | ) | [inline] |
Initialize Iterator.
Definition at line 462 of file ParFUM_Iterators.h.
References MeshElemItr::done, FEM_Mesh::elem, MeshModel::mesh, MeshElemItr::model, MeshElemItr::parfum_index, FEM_Entity_Types< T >::size(), and MeshElemItr::type.
Referenced by meshFacetItr_Begin().
bool meshElemItr_IsValid | ( | MeshElemItr * | itr | ) | [inline] |
Determine if Iterator is valid or if it has iterated past last Element.
Definition at line 487 of file ParFUM_Iterators.h.
References MeshElemItr::done.
Referenced by meshElemItr_GetCurr(), meshElemItr_Next(), meshFacetItr_IsValid(), and meshFacetItr_Next().
void meshElemItr_Next | ( | MeshElemItr * | itr | ) | [inline] |
Increment iterator.
Definition at line 491 of file ParFUM_Iterators.h.
References MeshElemItr::done, FEM_Mesh::elem, MeshModel::mesh, MESH_ELEMENT_TET4, meshElemItr_IsValid(), MeshElemItr::model, MeshElemItr::parfum_index, and FEM_Entity_Types< T >::size().
Referenced by meshFacetItr_Next().
MeshElement meshElemItr_GetCurr | ( | MeshElemItr * | itr | ) | [inline] |
Get MeshElement associated with the iterator.
Definition at line 513 of file ParFUM_Iterators.h.
References ElemID::id, meshElemItr_IsValid(), MeshElemItr::parfum_index, MeshElemItr::type, and ElemID::type.
Referenced by meshFacetItr_Begin(), meshFacetItr_GetCurr(), and meshFacetItr_Next().
void meshModel_TestIterators | ( | MeshModel * | m | ) |
Perform sanity check on iterators.
This checks to make sure that the count of the itereated elements and nodes matches that returned by ParFUM's countValid()
MeshNodeElemItr * meshModel_CreateNodeElemItr | ( | MeshModel * | m, | |
MeshNode | n | |||
) | [inline] |
Definition at line 530 of file ParFUM_Iterators.h.
References MeshNodeElemItr::current_index, FEM_Entity::is_valid_any_idx(), MeshModel::mesh, MeshNodeElemItr::model, FEM_Mesh::n2e_getLength(), FEM_Mesh::node, MeshNodeElemItr::node, and MeshNodeElemItr::numAdjElem.
bool meshNodeElemItr_IsValid | ( | MeshNodeElemItr * | neitr | ) | [inline] |
Definition at line 547 of file ParFUM_Iterators.h.
References MeshNodeElemItr::current_index, and MeshNodeElemItr::numAdjElem.
Referenced by meshNodeElemItr_GetCurr().
void meshNodeElemItr_Next | ( | MeshNodeElemItr * | neitr | ) | [inline] |
MeshElement meshNodeElemItr_GetCurr | ( | MeshNodeElemItr * | neitr | ) | [inline] |
Definition at line 556 of file ParFUM_Iterators.h.
References MeshNodeElemItr::current_index, elem, ElemID::getSignedId(), ElemID::getUnsignedType(), ElemID::id, MeshModel::mesh, meshNodeElemItr_IsValid(), MeshNodeElemItr::model, FEM_Mesh::n2e_getElem(), MeshNodeElemItr::node, and ElemID::type.
void meshNodeElemItr_Destroy | ( | MeshNodeElemItr * | neitr | ) | [inline] |
Definition at line 567 of file ParFUM_Iterators.h.
MeshFacetItr * meshModel_CreateFacetItr | ( | MeshModel * | m | ) | [inline] |
void meshFacetItr_Begin | ( | MeshFacetItr * | itr | ) | [inline] |
Definition at line 618 of file ParFUM_Iterators.h.
References FEM_Mesh::e2e_getElem(), MeshFacetItr::elemItr, ElemID::id, MeshModel::mesh, meshElemItr_Begin(), meshElemItr_GetCurr(), meshFacetItr_Next(), meshModel_CreateElemItr(), MeshFacetItr::model, ElemID::type, and MeshFacetItr::whichFacet.
bool meshFacetItr_IsValid | ( | MeshFacetItr * | itr | ) | [inline] |
Definition at line 637 of file ParFUM_Iterators.h.
References MeshFacetItr::elemItr, and meshElemItr_IsValid().
void meshFacetItr_Next | ( | MeshFacetItr * | itr | ) | [inline] |
Iterate to the next facet.
Definition at line 589 of file ParFUM_Iterators.h.
References FEM_Mesh::e2e_getElem(), MeshFacetItr::elemItr, ElemID::id, MeshModel::mesh, meshElemItr_GetCurr(), meshElemItr_IsValid(), meshElemItr_Next(), MeshFacetItr::model, ElemID::type, and MeshFacetItr::whichFacet.
Referenced by meshFacetItr_Begin().
MeshFacet meshFacetItr_GetCurr | ( | MeshFacetItr * | itr | ) | [inline] |
Definition at line 641 of file ParFUM_Iterators.h.
References FEM_Mesh::e2e_getElem(), FEM_Mesh::elem, MeshFacet::elem, MeshFacetItr::elemItr, ElemID::id, MeshModel::mesh, meshElemItr_GetCurr(), MeshFacetItr::model, MeshFacet::node, ElemID::type, and MeshFacetItr::whichFacet.
void meshFacetItr_Destroy | ( | MeshFacetItr * | itr | ) | [inline] |
Definition at line 686 of file ParFUM_Iterators.h.