|
| void | declare_relation (const stk::mesh::FastMeshIndex &linker_index, const stk::mesh::EntityRank &linked_entity_rank, const stk::mesh::FastMeshIndex &linked_entity_index, unsigned link_ordinal) const |
| | Declare a relation between a linker and a linked entity.
|
| void | declare_relation (const stk::mesh::Entity &linker, const stk::mesh::Entity &linked_entity, unsigned link_ordinal) const |
| void | destroy_relation (const stk::mesh::FastMeshIndex &linker_index, unsigned link_ordinal) const |
| | Delete a relation between a linker and a linked entity.
|
| void | destroy_relation (const stk::mesh::Entity &linker, unsigned link_ordinal) const |
| stk::mesh::Entity | get_linked_entity (const stk::mesh::FastMeshIndex &linker_index, unsigned link_ordinal) const |
| | Get the linked entity for a given linker and link ordinal.
|
| stk::mesh::Entity | get_linked_entity (const stk::mesh::Entity &linker, unsigned link_ordinal) const |
| stk::mesh::FastMeshIndex | get_linked_entity_index (const stk::mesh::FastMeshIndex &linker_index, unsigned link_ordinal) const |
| | Get the linked entity index for a given linker and link ordinal.
|
| stk::mesh::FastMeshIndex | get_linked_entity_index (const stk::mesh::Entity &linker, unsigned link_ordinal) const |
| stk::mesh::EntityId | get_linked_entity_id (const stk::mesh::FastMeshIndex &linker_index, unsigned link_ordinal) const |
| | Get the linked entity id for a given linker and link ordinal.
|
| stk::mesh::EntityId | get_linked_entity_id (const stk::mesh::Entity &linker, unsigned link_ordinal) const |
| stk::mesh::EntityRank | get_linked_entity_rank (const stk::mesh::FastMeshIndex &linker_index, unsigned link_ordinal) const |
| | Get the linked entity rank for a given linker and link ordinal.
|
| stk::mesh::EntityRank | get_linked_entity_rank (const stk::mesh::Entity &linker, unsigned link_ordinal) const |
| const stk::mesh::NgpMesh & | ngp_mesh () const noexcept |
| | Fetch the ngp mesh.
|
| stk::mesh::NgpMesh & | ngp_mesh () noexcept |
| stk::mesh::Entity | get_linked_entity_crs (const stk::mesh::FastMeshIndex &linker_index, unsigned link_ordinal) const |
| | Get the linked entity for a given linker and link ordinal (as last seen by the CSR connectivity).
|
| stk::mesh::Entity | get_linked_entity_crs (const stk::mesh::Entity &linker, unsigned link_ordinal) const |
| bool | get_link_crs_needs_updated (const stk::mesh::FastMeshIndex &linker_index) const |
| | Get if the CSR connectivity for a link needs to be updated.
|
| bool | get_link_crs_needs_updated (const stk::mesh::Entity &linker) const |
template<typename NgpMemSpace>
| void mundy::mesh::NgpLinkCOODataT< NgpMemSpace >::declare_relation |
( |
const stk::mesh::FastMeshIndex & | linker_index, |
|
|
const stk::mesh::EntityRank & | linked_entity_rank, |
|
|
const stk::mesh::FastMeshIndex & | linked_entity_index, |
|
|
unsigned | link_ordinal ) const |
|
inline |
To explain ordinals:
If a linker has dimensionality 3 then it can have up to 3 linked entities. The first linked entity has ordinal 0, the second has ordinal 1, and so on.
Importantly, the relationship between links and its linked entities is static with fixed size. If you fetch the linked entities and have only declared the first two, then the third will be invalid. This is a slight deviation from STK, which would return a set of two valid entities and provide access to their ordinals.
How does a link attain a certain dimensionality?
A link's dimensionality is determined by the set of parts that it belongs to. When link parts are declared, they are assigned a dimensionality. If a link belongs to multiple link parts, then the maximum dimensionality of those parts is the link's dimensionality.
TODO(palmerb4): Bounds check the link ordinal.
- Parameters
-
| linker | [in] The linker (must be valid and of the correct rank). |
| linked_entity | [in] The linked entity (may be invalid). |
| link_ordinal | [in] The ordinal of the linked entity. |