Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::mesh::LinkMetaData Class Reference

#include <LinkMetaData.hpp>

Public Types

Type aliases
using entity_rank_value_t = int
using entity_id_value_t = stk::mesh::EntityId
using entity_value_t = stk::mesh::Entity::entity_value_type
using linked_entity_ids_field_t = stk::mesh::Field<entity_id_value_t>
using linked_entity_ranks_field_t = stk::mesh::Field<entity_rank_value_t>
using linked_entities_field_t = stk::mesh::Field<entity_value_t>

Public Member Functions

Constructors and destructor
 LinkMetaData ()=delete
 No default constructor.
 LinkMetaData (stk::mesh::MetaData &meta_data, const std::string &our_name, stk::mesh::EntityRank link_rank)
 Construct and declare.
 LinkMetaData (const LinkMetaData &)=default
 Default copy/move constructors/operators.
 LinkMetaData (LinkMetaData &&)=default
LinkMetaDataoperator= (const LinkMetaData &)=default
LinkMetaDataoperator= (LinkMetaData &&)=default
virtual ~LinkMetaData ()=default
 Destructor.
Getters
const std::string & name () const
 Get the name of this link data.
stk::mesh::EntityRank link_rank () const
 Fetch the link rank.
const linked_entity_ids_field_tlinked_entity_ids_field () const
 Fetch the linked entity ids field.
const linked_entity_ranks_field_tlinked_entity_ranks_field () const
 Fetch the linked entity ranks field.
const Classuniversal_link_class () const
 Fetch the universal link class.
Classuniversal_link_class ()
 Fetch the universal link class.
const stk::mesh::MetaDatamesh_meta_data () const
 Fetch the mesh meta data manager for this bulk data manager.
stk::mesh::MetaDatamesh_meta_data ()
 Fetch the mesh meta data manager for this bulk data manager.
Actions
stk::mesh::Part & declare_link_part (const std::string &part_name, unsigned link_dimensionality_for_this_part)
 Declare a link-part (compatible with the current link data).
Classdeclare_link_class (const std::string &class_name, unsigned link_dimensionality_for_this_class)
 Declare a link class (compatible with the current link data).
Classdeclare_link_class (const std::string &class_name, stk::topology::topology_t class_topology, unsigned link_dimensionality_for_this_class)
 Declare a topological link class (compatible with the current link data).
stk::mesh::Part & declare_link_assembly_part (const std::string &part_name)
 Declare a link assembly part (compatible with the current link data).
void add_link_support_to_part (stk::mesh::Part &part, unsigned link_dimensionality_for_this_part)
 Make an existing part into a link-compatible part (compatible with the current link data).
void add_link_support_to_class (Class &link_class, unsigned link_dimensionality_for_this_class)
 Make an existing class into a link-compatible class (compatible with the current link data).
void add_link_support_to_assembly_part (stk::mesh::Part &part)
 Make an existing assembly part into a link-compatible part (compatible with the current link data).

Protected Types

Internal aliases
using link_crs_needs_updated_field_t = stk::mesh::Field<int>

Protected Member Functions

Internal getters
linked_entity_ids_field_tlinked_entity_ids_field () noexcept
 Fetch the linked entity ids field.
linked_entity_ranks_field_tlinked_entity_ranks_field () noexcept
 Fetch the linked entity ranks field.
const linked_entities_field_tlinked_entities_field () const noexcept
 Fetch the linked entities field.
linked_entities_field_tlinked_entities_field () noexcept
const linked_entities_field_tlinked_entities_crs_field () const noexcept
 Fetch the linked entities field (as last seen by the CSR).
linked_entities_field_tlinked_entities_crs_field () noexcept
const link_crs_needs_updated_field_tlink_crs_needs_updated_field () const noexcept
 Fetch the link crs needs updated field.
link_crs_needs_updated_field_tlink_crs_needs_updated_field () noexcept

Friends

Friends <3
void add_link_restart_fields (stk::io::StkMeshIoBroker &io_broker, size_t output_index, LinkMetaData &link_meta_data)

Helper functions

void put_link_fields_on_part (stk::mesh::Part &part, unsigned link_dimensionality)
 Add the linked entities and keys field to the part with the given dimensionality.
void put_link_fields_on_class (Class &link_class, unsigned link_dimensionality)
 Add the linked entities and keys field to the class with the given dimensionality.
static std::string rank_to_string (stk::mesh::EntityRank rank)
 Map the given rank to string.

Member Typedef Documentation

◆ entity_rank_value_t

◆ entity_id_value_t

using mundy::mesh::LinkMetaData::entity_id_value_t = stk::mesh::EntityId

◆ entity_value_t

using mundy::mesh::LinkMetaData::entity_value_t = stk::mesh::Entity::entity_value_type

◆ linked_entity_ids_field_t

◆ linked_entity_ranks_field_t

◆ linked_entities_field_t

◆ link_crs_needs_updated_field_t

Constructor & Destructor Documentation

◆ LinkMetaData() [1/4]

mundy::mesh::LinkMetaData::LinkMetaData ( )
delete

◆ LinkMetaData() [2/4]

mundy::mesh::LinkMetaData::LinkMetaData ( stk::mesh::MetaData & meta_data,
const std::string & our_name,
stk::mesh::EntityRank link_rank )
inline

◆ LinkMetaData() [3/4]

mundy::mesh::LinkMetaData::LinkMetaData ( const LinkMetaData & )
default

◆ LinkMetaData() [4/4]

mundy::mesh::LinkMetaData::LinkMetaData ( LinkMetaData && )
default

◆ ~LinkMetaData()

virtual mundy::mesh::LinkMetaData::~LinkMetaData ( )
virtualdefault

Member Function Documentation

◆ operator=() [1/2]

LinkMetaData & mundy::mesh::LinkMetaData::operator= ( const LinkMetaData & )
default

◆ operator=() [2/2]

LinkMetaData & mundy::mesh::LinkMetaData::operator= ( LinkMetaData && )
default

◆ name()

const std::string & mundy::mesh::LinkMetaData::name ( ) const
inline

◆ link_rank()

stk::mesh::EntityRank mundy::mesh::LinkMetaData::link_rank ( ) const
inline

◆ linked_entity_ids_field() [1/2]

const linked_entity_ids_field_t & mundy::mesh::LinkMetaData::linked_entity_ids_field ( ) const
inline
Note
Users should not edit this field yourself. We expose it to you because it's how you'll interact with the linked entities when doing things like post-processing the output EXO file, but it should be seen as read-only. Use declare/destroy_relation to modify it since they perform additional behind-the-scenes bookkeeping.

◆ linked_entity_ranks_field() [1/2]

const linked_entity_ranks_field_t & mundy::mesh::LinkMetaData::linked_entity_ranks_field ( ) const
inline

Same comment as linked_entity_ids_field. Treat this field as read-only.

◆ universal_link_class() [1/2]

const Class & mundy::mesh::LinkMetaData::universal_link_class ( ) const
inline

◆ universal_link_class() [2/2]

Class & mundy::mesh::LinkMetaData::universal_link_class ( )
inline

◆ mesh_meta_data() [1/2]

const stk::mesh::MetaData & mundy::mesh::LinkMetaData::mesh_meta_data ( ) const
inline

◆ mesh_meta_data() [2/2]

stk::mesh::MetaData & mundy::mesh::LinkMetaData::mesh_meta_data ( )
inline

◆ declare_link_part()

stk::mesh::Part & mundy::mesh::LinkMetaData::declare_link_part ( const std::string & part_name,
unsigned link_dimensionality_for_this_part )
inline
Parameters
part_name[in] The name of the part.
link_dimensionality_for_this_part[in] The number of linked entities per link.

◆ declare_link_class() [1/2]

Class & mundy::mesh::LinkMetaData::declare_link_class ( const std::string & class_name,
unsigned link_dimensionality_for_this_class )
inline
Parameters
class_name[in] The name of the class.
link_dimensionality_for_this_class[in] The number of linked entities per link.

◆ declare_link_class() [2/2]

Class & mundy::mesh::LinkMetaData::declare_link_class ( const std::string & class_name,
stk::topology::topology_t class_topology,
unsigned link_dimensionality_for_this_class )
inline
Parameters
class_name[in] The name of the class.
class_topology[in] The topology of the class.
link_dimensionality_for_this_class[in] The number of linked entities per link.

◆ declare_link_assembly_part()

stk::mesh::Part & mundy::mesh::LinkMetaData::declare_link_assembly_part ( const std::string & part_name)
inline
Parameters
part_name[in] The name of the part.

◆ add_link_support_to_part()

void mundy::mesh::LinkMetaData::add_link_support_to_part ( stk::mesh::Part & part,
unsigned link_dimensionality_for_this_part )
inline
Parameters
part_name[in] The name of the part.
link_dimensionality_for_this_part[in] The number of linked entities per link.

◆ add_link_support_to_class()

void mundy::mesh::LinkMetaData::add_link_support_to_class ( Class & link_class,
unsigned link_dimensionality_for_this_class )
inline
Parameters
link_class[in] The class.
link_dimensionality_for_this_class[in] The number of linked entities per link.

◆ add_link_support_to_assembly_part()

void mundy::mesh::LinkMetaData::add_link_support_to_assembly_part ( stk::mesh::Part & part)
inline
Parameters
part_name[in] The name of the part.

◆ linked_entity_ids_field() [2/2]

linked_entity_ids_field_t & mundy::mesh::LinkMetaData::linked_entity_ids_field ( )
inlineprotectednoexcept

◆ linked_entity_ranks_field() [2/2]

linked_entity_ranks_field_t & mundy::mesh::LinkMetaData::linked_entity_ranks_field ( )
inlineprotectednoexcept

◆ linked_entities_field() [1/2]

const linked_entities_field_t & mundy::mesh::LinkMetaData::linked_entities_field ( ) const
inlineprotectednoexcept

◆ linked_entities_field() [2/2]

linked_entities_field_t & mundy::mesh::LinkMetaData::linked_entities_field ( )
inlineprotectednoexcept

◆ linked_entities_crs_field() [1/2]

const linked_entities_field_t & mundy::mesh::LinkMetaData::linked_entities_crs_field ( ) const
inlineprotectednoexcept

◆ linked_entities_crs_field() [2/2]

linked_entities_field_t & mundy::mesh::LinkMetaData::linked_entities_crs_field ( )
inlineprotectednoexcept

◆ link_crs_needs_updated_field() [1/2]

const link_crs_needs_updated_field_t & mundy::mesh::LinkMetaData::link_crs_needs_updated_field ( ) const
inlineprotectednoexcept

◆ link_crs_needs_updated_field() [2/2]

link_crs_needs_updated_field_t & mundy::mesh::LinkMetaData::link_crs_needs_updated_field ( )
inlineprotectednoexcept

◆ rank_to_string()

std::string mundy::mesh::LinkMetaData::rank_to_string ( stk::mesh::EntityRank rank)
inlinestaticprotected

◆ put_link_fields_on_part()

void mundy::mesh::LinkMetaData::put_link_fields_on_part ( stk::mesh::Part & part,
unsigned link_dimensionality )
inlineprotected

◆ put_link_fields_on_class()

void mundy::mesh::LinkMetaData::put_link_fields_on_class ( Class & link_class,
unsigned link_dimensionality )
inlineprotected

◆ add_link_restart_fields

void add_link_restart_fields ( stk::io::StkMeshIoBroker & io_broker,
size_t output_index,
LinkMetaData & link_meta_data )
friend