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

Turning STK's IO support from a hierarchy of disjoint parts to a polymorphic class hierarchy. More...

Classes

class  mundy::mesh::Class
 Semantic mesh class backed by synchronized data and assembly part hierarchies. More...
struct  mundy::mesh::Class::DeclarationSignature
 Canonical declaration signature used to validate repeated declarations by name. More...
struct  mundy::mesh::BulkDataClassInterface

Typedefs

using mundy::mesh::ClassVector = std::vector<Class*>
using mundy::mesh::ConstClassVector = std::vector<const Class*>

Functions

Classmundy::mesh::declare_class (stk::mesh::MetaData &meta_data, const std::string &class_name)
 Declare (or fetch) a named class on the given MetaData.
Classmundy::mesh::declare_class (stk::mesh::MetaData &meta_data, const std::string &class_name, stk::mesh::EntityRank class_rank, bool disable_io_support)
 Declare (or fetch) a ranked class-set on the given MetaData.
Classmundy::mesh::declare_class (stk::mesh::MetaData &meta_data, const std::string &class_name, stk::topology::topology_t class_topology, bool disable_io_support)
 Declare (or fetch) a topological primary class on the given MetaData.
const ClassVectormundy::mesh::get_classes (stk::mesh::MetaData &meta_data)
 Fetch all declared classes from MetaData in class-ordinal order.
const ConstClassVectormundy::mesh::get_classes (const stk::mesh::MetaData &meta_data)
 Fetch all declared classes from MetaData in class-ordinal order.
bool mundy::mesh::Class::DeclarationSignature::operator== (const DeclarationSignature &rhs) const noexcept
bool mundy::mesh::Class::DeclarationSignature::operator!= (const DeclarationSignature &rhs) const noexcept
ClassVector mundy::mesh::BulkDataClassInterface::get_matching_rank_primary_classes (const stk::mesh::Entity entity) const
stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_entity (stk::mesh::EntityRank rank, stk::mesh::EntityId id, const ClassVector &class_vector)
 Create or retrieve a locally owned entity of a given rank and id.
stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_node (stk::mesh::EntityId id, const ClassVector &class_vector)
stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_edge (stk::mesh::EntityId id, const ClassVector &class_vector)
stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_element (stk::mesh::EntityId id, const ClassVector &class_vector)
stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_entity (stk::mesh::EntityRank rank, stk::mesh::EntityId id, const Class &class_instance)
 Same as declare_entity but with a single class instance.
stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_node (stk::mesh::EntityId id, const Class &class_instance)
stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_edge (stk::mesh::EntityId id, const Class &class_instance)
stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_element (stk::mesh::EntityId id, const Class &class_instance)
void mundy::mesh::BulkDataClassInterface::change_entity_classes (const stk::mesh::Entity entity, const ClassVector &add_classes, const ClassVector &remove_classes=ClassVector())
 Change the parallel-locally-owned entity's class membership by swapping class membership (only valid for entities of non-primary rank for all involved classes).
void mundy::mesh::BulkDataClassInterface::change_entity_classes (const stk::mesh::Entity entity, const Class &add_class, const ClassVector &remove_classes=ClassVector())
void mundy::mesh::BulkDataClassInterface::change_entity_classes (const stk::mesh::Entity entity, const ClassVector &add_classes, const Class &remove_class)

Variables

DeclarationKind mundy::mesh::Class::DeclarationSignature::declaration_kind = DeclarationKind::NAMED
stk::mesh::EntityRank mundy::mesh::Class::DeclarationSignature::class_rank = stk::topology::INVALID_RANK
stk::topology::topology_t mundy::mesh::Class::DeclarationSignature::class_topology = stk::topology::INVALID_TOPOLOGY
bool mundy::mesh::Class::DeclarationSignature::disable_io_support = false
stk::mesh::BulkDatamundy::mesh::BulkDataClassInterface::bulk_data

Type aliases

enum  { mundy::mesh::Class::INVALID_ID = -1 }
enum class  mundy::mesh::Class::DeclarationKind : unsigned { mundy::mesh::Class::DeclarationKind::NAMED = 0u , mundy::mesh::Class::DeclarationKind::RANKED = 1u , mundy::mesh::Class::DeclarationKind::TOPOLOGICAL = 2u }
 How the class data/leaf-data parts were declared. More...
enum class  mundy::mesh::Class::Type : unsigned { mundy::mesh::Class::Type::PRIMARY = 0u , mundy::mesh::Class::Type::SET = 1u }
 The type of class this is. Class rules: More...
using mundy::mesh::Class::class_ordinal_t = unsigned

Constructors and destructor

 mundy::mesh::Class::Class ()=delete
 No default constructor.
 mundy::mesh::Class::Class (const Class &)=delete
 Non-copyable and non-movable, mirroring STK object semantics.
 mundy::mesh::Class::Class (Class &&)=delete
Classmundy::mesh::Class::operator= (const Class &)=delete
Classmundy::mesh::Class::operator= (Class &&)=delete
 mundy::mesh::Class::~Class ()=default
 Destructor.

Part-like API

stk::mesh::MetaDatamundy::mesh::Class::mesh_meta_data () noexcept
 Fetch the owning MetaData manager.
const stk::mesh::MetaDatamundy::mesh::Class::mesh_meta_data () const noexcept
 Fetch the owning MetaData manager.
stk::mesh::MetaDatamundy::mesh::Class::meta_data () noexcept
 Backward-compatible alias for mesh_meta_data().
const stk::mesh::MetaDatamundy::mesh::Class::meta_data () const noexcept
 Backward-compatible alias for mesh_meta_data().
stk::mesh::EntityRank mundy::mesh::Class::primary_entity_rank () const
 Fetch the primary entity rank for this class.
stk::topology mundy::mesh::Class::topology () const
 Fetch the topology for this class.
const std::string & mundy::mesh::Class::name () const noexcept
 Fetch the class name.
class_ordinal_t mundy::mesh::Class::class_ordinal () const noexcept
 Fetch this class ordinal.
const DeclarationSignaturemundy::mesh::Class::declaration_signature () const noexcept
 Fetch the declaration signature used to create this class.
bool mundy::mesh::Class::force_no_induce () const
 Return whether this class suppresses induction.
bool mundy::mesh::Class::has_io_support () const noexcept
 Return whether this class has IO hierarchy support enabled.
bool mundy::mesh::Class::should_induce (stk::mesh::EntityRank from_rank) const
 Should this class induce membership from from_rank?
bool mundy::mesh::Class::was_induced (stk::mesh::EntityRank rank) const
 Could entities of rank be induced into this class?
bool mundy::mesh::Class::entity_membership_is_parallel_consistent () const
 Whether class membership must be parallel consistent.
void mundy::mesh::Class::entity_membership_is_parallel_consistent (bool is_parallel_consistent)
 Set whether class membership must be parallel consistent.
Type mundy::mesh::Class::class_type () const noexcept
 Fetch the class type.
bool mundy::mesh::Class::is_set () const noexcept
 Fetch whether this class is a set.
bool mundy::mesh::Class::is_primary () const noexcept
 Fetch whether this class is a primary class.
int64_t mundy::mesh::Class::data_part_id () const
 Fetch the data-part id.
int64_t mundy::mesh::Class::assembly_part_id () const
 Fetch the assembly-part id.
bool mundy::mesh::Class::contains (const Class &other) const
 Check if other is contained by this class in both hierarchy channels.
const ClassVectormundy::mesh::Class::subclasses () noexcept
 Direct subclasses declared through the Class API.
const ConstClassVectormundy::mesh::Class::subclasses () const noexcept
 Direct subclasses declared through the Class API.
const ClassVectormundy::mesh::Class::superclasses () noexcept
 Direct superclasses declared through the Class API.
const ConstClassVectormundy::mesh::Class::superclasses () const noexcept
 Direct superclasses declared through the Class API.
const stk::mesh::PartVector & mundy::mesh::Class::data_part_supersets () const
 Parts that are supersets of this class's data part.
const stk::mesh::PartVector & mundy::mesh::Class::data_part_subsets () const
 Parts that are subsets of this class's data part.
const stk::mesh::PartVector & mundy::mesh::Class::assembly_part_supersets () const
 Parts that are supersets of this class's assembly part.
const stk::mesh::PartVector & mundy::mesh::Class::assembly_part_subsets () const
 Parts that are subsets of this class's assembly part.
Classmundy::mesh::Class::get_or_create_induced_set (stk::mesh::EntityRank rank)
 Create an induced set for this class at rank if it doesn't already exist and return it.
Classmundy::mesh::Class::get_induced_set (stk::mesh::EntityRank rank)
 Get an induced set for this class at rank if it exists, otherwise throw.
const Classmundy::mesh::Class::get_induced_set (stk::mesh::EntityRank rank) const
bool mundy::mesh::Class::has_induced_set (stk::mesh::EntityRank rank) const
bool mundy::mesh::Class::operator== (const Class &rhs) const
 Equality comparison.
bool mundy::mesh::Class::operator!= (const Class &rhs) const
 Inequality comparison.
template<class A>
const A * mundy::mesh::Class::attribute () const
 Query attribute attached to the class data part.
stk::mesh::Part & mundy::mesh::Class::data_part () noexcept
 Fetch the non-io data hierarchy part.
const stk::mesh::Part & mundy::mesh::Class::data_part () const noexcept
 Fetch the non-io data hierarchy part.
stk::mesh::Part & mundy::mesh::Class::leaf_part () noexcept
 Fetch the io leaf data part.
const stk::mesh::Part & mundy::mesh::Class::leaf_part () const noexcept
 Fetch the io leaf data part.
stk::mesh::Part & mundy::mesh::Class::assembly_part () noexcept
 Fetch the assembly hierarchy part.
const stk::mesh::Part & mundy::mesh::Class::assembly_part () const noexcept
 Fetch the assembly hierarchy part.
stk::mesh::Part & mundy::mesh::Class::leaf_assembly_part () noexcept
 Fetch the leaf assembly part.
const stk::mesh::Part & mundy::mesh::Class::leaf_assembly_part () const noexcept
 Fetch the leaf assembly part.
 mundy::mesh::Class::operator stk::mesh::Selector () const
 Treat this class as the selector for its assembly hierarchy.
 mundy::mesh::Class::operator const stk::mesh::Part & () const noexcept
 Treat this class as its assembly part for read-only STK APIs such as Bucket::member(...).

Actions

void mundy::mesh::Class::declare_subset (Class &sub_class)
 Declare sub_class as a direct subclass in both hierarchy channels. sub_class must have the same primary entity rank as this class.
void mundy::mesh::Class::set_assembly_part_ids (unsigned assembly_part_id, unsigned leaf_assembly_part_id)
 Assign deterministic ids to assembly-type parts for IO/visualization stability.

Query helpers

Classmundy::mesh::get_class (stk::mesh::MetaData &meta_data, Class::class_ordinal_t class_ordinal)
 Fetch an existing class by ordinal from MetaData.
const Classmundy::mesh::get_class (const stk::mesh::MetaData &meta_data, Class::class_ordinal_t class_ordinal)
 Fetch an existing class by ordinal from MetaData.
Classmundy::mesh::get_class (stk::mesh::MetaData &meta_data, const std::string &class_name)
 Fetch an existing class by name from MetaData.
const Classmundy::mesh::get_class (const stk::mesh::MetaData &meta_data, const std::string &class_name)
 Fetch an existing class by name from MetaData.
Classmundy::mesh::get_class (stk::mesh::BulkData &bulk_data, Class::class_ordinal_t class_ordinal)
 Fetch an existing class by ordinal through the given BulkData's MetaData.
const Classmundy::mesh::get_class (const stk::mesh::BulkData &bulk_data, Class::class_ordinal_t class_ordinal)
 Fetch an existing class by ordinal through the given BulkData's MetaData.
Classmundy::mesh::get_class (stk::mesh::BulkData &bulk_data, const std::string &class_name)
 Fetch an existing class by name through the given BulkData's MetaData.
const Classmundy::mesh::get_class (const stk::mesh::BulkData &bulk_data, const std::string &class_name)
 Fetch an existing class by name through the given BulkData's MetaData.
const ClassVectormundy::mesh::get_classes (stk::mesh::BulkData &bulk_data)
 Fetch all classes visible from BulkData in class-ordinal order.
const ConstClassVectormundy::mesh::get_classes (const stk::mesh::BulkData &bulk_data)
 Fetch all classes visible from BulkData in class-ordinal order.

Non-member actions

void mundy::mesh::declare_subset (Class &parent_class, Class &sub_class)
 Declare sub_class as a subclass of parent_class in both hierarchy channels.
stk::mesh::Selector mundy::mesh::operator& (const Class &lhs, const Class &rhs)
 Intersection of a class assembly selector and another class assembly selector.
stk::mesh::Selector mundy::mesh::operator& (const Class &lhs, const stk::mesh::Selector &rhs)
 Intersection of a class assembly selector and an STK selector.
stk::mesh::Selector mundy::mesh::operator& (const stk::mesh::Selector &lhs, const Class &rhs)
 Intersection of an STK selector and a class assembly selector.
stk::mesh::Selector mundy::mesh::operator| (const Class &lhs, const Class &rhs)
 Union of a class assembly selector and another class assembly selector.
stk::mesh::Selector mundy::mesh::operator| (const Class &lhs, const stk::mesh::Selector &rhs)
 Union of a class assembly selector and an STK selector.
stk::mesh::Selector mundy::mesh::operator| (const stk::mesh::Selector &lhs, const Class &rhs)
 Union of an STK selector and a class assembly selector.
stk::mesh::Selector mundy::mesh::operator- (const Class &lhs, const Class &rhs)
 Difference of a class assembly selector and another class assembly selector.
stk::mesh::Selector mundy::mesh::operator- (const Class &lhs, const stk::mesh::Selector &rhs)
 Difference of a class assembly selector and an STK selector.
stk::mesh::Selector mundy::mesh::operator- (const stk::mesh::Selector &lhs, const Class &rhs)
 Difference of an STK selector and a class assembly selector.
stk::mesh::Selector mundy::mesh::operator! (const Class &class_instance)
 Complement of a class assembly selector.
void mundy::mesh::add_class_field (stk::io::StkMeshIoBroker &io_broker, size_t output_file_index, stk::mesh::FieldBase &field, const ClassVector &classes, const std::string &db_name)
 Register a field for output using Class-aware IO rules over an explicit class set.
void mundy::mesh::add_class_field (stk::io::StkMeshIoBroker &io_broker, size_t output_file_index, stk::mesh::FieldBase &field, const ClassVector &classes)
 Register a field for output using Class-aware IO rules over an explicit class set.
void mundy::mesh::add_class_field (stk::io::StkMeshIoBroker &io_broker, size_t output_file_index, stk::mesh::FieldBase &field, const std::string &db_name)
 Register a field for output using Class-aware IO rules.
void mundy::mesh::add_class_field (stk::io::StkMeshIoBroker &io_broker, size_t output_file_index, stk::mesh::FieldBase &field)
 Register a field for output using Class-aware IO rules.
template<typename ComponentType>
void mundy::mesh::add_class_component (stk::io::StkMeshIoBroker &io_broker, size_t output_file_index, ComponentType &component, const ClassVector &classes, const std::string &db_name)
 Register a component for output using Class-aware IO rules over an explicit class set.
template<typename ComponentType>
void mundy::mesh::add_class_component (stk::io::StkMeshIoBroker &io_broker, size_t output_file_index, ComponentType &component, const ClassVector &classes)
 Register a component for output using Class-aware IO rules over an explicit class set.
template<typename ComponentType>
void mundy::mesh::add_class_component (stk::io::StkMeshIoBroker &io_broker, size_t output_file_index, ComponentType &component, const std::string &db_name)
 Register a component for output using Class-aware IO rules.
template<typename ComponentType>
void mundy::mesh::add_class_component (stk::io::StkMeshIoBroker &io_broker, size_t output_file_index, ComponentType &component)
 Register a component for output using Class-aware IO rules.
template<typename FieldType>
void mundy::mesh::put_field_on_mesh (FieldType &field, Class &class_instance, const typename FieldType::value_type *init_value)
 Put a rank-0/1 field restriction on a class data part.
template<typename FieldType>
void mundy::mesh::put_field_on_mesh (FieldType &field, Class &class_instance, unsigned n1, const typename FieldType::value_type *init_value)
 Put a rank-1 field restriction on a class data part.
template<typename FieldType>
void mundy::mesh::put_field_on_mesh (FieldType &field, Class &class_instance, unsigned n1, unsigned n2, const typename FieldType::value_type *init_value)
 Put a rank-2 field restriction on a class data part.

Entity declaration interface

BulkDataClassInterface mundy::mesh::class_interface (stk::mesh::BulkData &bulk_data)

Detailed Description

Classes wrap STK parts with metadata and utilities for class membership, subclass relationships, primary classes, and BulkData-facing class changes.

Typedef Documentation

◆ ClassVector

using mundy::mesh::ClassVector = std::vector<Class*>

◆ ConstClassVector

using mundy::mesh::ConstClassVector = std::vector<const Class*>

◆ class_ordinal_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
INVALID_ID 

◆ DeclarationKind

enum class mundy::mesh::Class::DeclarationKind : unsigned
strong
Enumerator
NAMED 
RANKED 
TOPOLOGICAL 

◆ Type

enum class mundy::mesh::Class::Type : unsigned
strong
  • PRIMARY: An entity may reside in one and only one primary class.
  • SET: An entity may reside in zero or more set classes independent of primary class membership.
Enumerator
PRIMARY 
SET 

Function Documentation

◆ declare_class() [1/3]

Class & mundy::mesh::declare_class ( stk::mesh::MetaData & meta_data,
const std::string & class_name )

◆ declare_class() [2/3]

Class & mundy::mesh::declare_class ( stk::mesh::MetaData & meta_data,
const std::string & class_name,
stk::mesh::EntityRank class_rank,
bool disable_io_support = false )

◆ declare_class() [3/3]

Class & mundy::mesh::declare_class ( stk::mesh::MetaData & meta_data,
const std::string & class_name,
stk::topology::topology_t class_topology,
bool disable_io_support = false )

◆ get_classes() [1/4]

const ClassVector & mundy::mesh::get_classes ( stk::mesh::MetaData & meta_data)

The returned pointers are non-owning. Class instances are owned by the class map attached to meta_data. No per-call allocation is performed.

Exceptions
std::invalid_argumentif no class map exists.

◆ get_classes() [2/4]

const ConstClassVector & mundy::mesh::get_classes ( const stk::mesh::MetaData & meta_data)

The returned pointers are non-owning. Class instances are owned by the class map attached to meta_data. No per-call allocation is performed.

Exceptions
std::invalid_argumentif no class map exists.

◆ operator==() [1/2]

bool mundy::mesh::Class::DeclarationSignature::operator== ( const DeclarationSignature & rhs) const
inlinenoexcept

◆ operator!=() [1/2]

bool mundy::mesh::Class::DeclarationSignature::operator!= ( const DeclarationSignature & rhs) const
inlinenoexcept

◆ Class() [1/3]

mundy::mesh::Class::Class ( )
delete

◆ Class() [2/3]

mundy::mesh::Class::Class ( const Class & )
delete

◆ Class() [3/3]

mundy::mesh::Class::Class ( Class && )
delete

◆ operator=() [1/2]

Class & mundy::mesh::Class::operator= ( const Class & )
delete

◆ operator=() [2/2]

Class & mundy::mesh::Class::operator= ( Class && )
delete

◆ ~Class()

mundy::mesh::Class::~Class ( )
default

◆ mesh_meta_data() [1/2]

stk::mesh::MetaData & mundy::mesh::Class::mesh_meta_data ( )
inlinenoexcept

◆ mesh_meta_data() [2/2]

const stk::mesh::MetaData & mundy::mesh::Class::mesh_meta_data ( ) const
inlinenoexcept

◆ meta_data() [1/2]

stk::mesh::MetaData & mundy::mesh::Class::meta_data ( )
inlinenoexcept

◆ meta_data() [2/2]

const stk::mesh::MetaData & mundy::mesh::Class::meta_data ( ) const
inlinenoexcept

◆ primary_entity_rank()

stk::mesh::EntityRank mundy::mesh::Class::primary_entity_rank ( ) const
inline

◆ topology()

stk::topology mundy::mesh::Class::topology ( ) const
inline

◆ name()

const std::string & mundy::mesh::Class::name ( ) const
inlinenoexcept

◆ class_ordinal()

class_ordinal_t mundy::mesh::Class::class_ordinal ( ) const
inlinenoexcept

◆ declaration_signature()

const DeclarationSignature & mundy::mesh::Class::declaration_signature ( ) const
inlinenoexcept

◆ force_no_induce()

bool mundy::mesh::Class::force_no_induce ( ) const
inline

◆ has_io_support()

bool mundy::mesh::Class::has_io_support ( ) const
inlinenoexcept

◆ should_induce()

bool mundy::mesh::Class::should_induce ( stk::mesh::EntityRank from_rank) const
inline

◆ was_induced()

bool mundy::mesh::Class::was_induced ( stk::mesh::EntityRank rank) const
inline

◆ entity_membership_is_parallel_consistent() [1/2]

bool mundy::mesh::Class::entity_membership_is_parallel_consistent ( ) const
inline

◆ entity_membership_is_parallel_consistent() [2/2]

void mundy::mesh::Class::entity_membership_is_parallel_consistent ( bool is_parallel_consistent)
inline

◆ class_type()

Type mundy::mesh::Class::class_type ( ) const
inlinenoexcept

◆ is_set()

bool mundy::mesh::Class::is_set ( ) const
inlinenoexcept

◆ is_primary()

bool mundy::mesh::Class::is_primary ( ) const
inlinenoexcept

◆ data_part_id()

int64_t mundy::mesh::Class::data_part_id ( ) const
inline

◆ assembly_part_id()

int64_t mundy::mesh::Class::assembly_part_id ( ) const
inline

◆ contains()

bool mundy::mesh::Class::contains ( const Class & other) const
inline

◆ subclasses() [1/2]

const ClassVector & mundy::mesh::Class::subclasses ( )
inlinenoexcept

◆ subclasses() [2/2]

const ConstClassVector & mundy::mesh::Class::subclasses ( ) const
inlinenoexcept

◆ superclasses() [1/2]

const ClassVector & mundy::mesh::Class::superclasses ( )
inlinenoexcept

◆ superclasses() [2/2]

const ConstClassVector & mundy::mesh::Class::superclasses ( ) const
inlinenoexcept

◆ data_part_supersets()

const stk::mesh::PartVector & mundy::mesh::Class::data_part_supersets ( ) const
inline

◆ data_part_subsets()

const stk::mesh::PartVector & mundy::mesh::Class::data_part_subsets ( ) const
inline

◆ assembly_part_supersets()

const stk::mesh::PartVector & mundy::mesh::Class::assembly_part_supersets ( ) const
inline

◆ assembly_part_subsets()

const stk::mesh::PartVector & mundy::mesh::Class::assembly_part_subsets ( ) const
inline

◆ get_or_create_induced_set()

Class & mundy::mesh::Class::get_or_create_induced_set ( stk::mesh::EntityRank rank)
inline

◆ get_induced_set() [1/2]

Class & mundy::mesh::Class::get_induced_set ( stk::mesh::EntityRank rank)
inline

◆ get_induced_set() [2/2]

const Class & mundy::mesh::Class::get_induced_set ( stk::mesh::EntityRank rank) const
inline

◆ has_induced_set()

bool mundy::mesh::Class::has_induced_set ( stk::mesh::EntityRank rank) const
inline

◆ operator==() [2/2]

bool mundy::mesh::Class::operator== ( const Class & rhs) const
inline

◆ operator!=() [2/2]

bool mundy::mesh::Class::operator!= ( const Class & rhs) const
inline

◆ attribute()

template<class A>
const A * mundy::mesh::Class::attribute ( ) const
inline

◆ data_part() [1/2]

stk::mesh::Part & mundy::mesh::Class::data_part ( )
inlinenoexcept

◆ data_part() [2/2]

const stk::mesh::Part & mundy::mesh::Class::data_part ( ) const
inlinenoexcept

◆ leaf_part() [1/2]

stk::mesh::Part & mundy::mesh::Class::leaf_part ( )
inlinenoexcept

◆ leaf_part() [2/2]

const stk::mesh::Part & mundy::mesh::Class::leaf_part ( ) const
inlinenoexcept

◆ assembly_part() [1/2]

stk::mesh::Part & mundy::mesh::Class::assembly_part ( )
inlinenoexcept

◆ assembly_part() [2/2]

const stk::mesh::Part & mundy::mesh::Class::assembly_part ( ) const
inlinenoexcept

◆ leaf_assembly_part() [1/2]

stk::mesh::Part & mundy::mesh::Class::leaf_assembly_part ( )
inlinenoexcept

◆ leaf_assembly_part() [2/2]

const stk::mesh::Part & mundy::mesh::Class::leaf_assembly_part ( ) const
inlinenoexcept

◆ operator stk::mesh::Selector()

mundy::mesh::Class::operator stk::mesh::Selector ( ) const
inline

The assembly part is the semantic membership channel for a Class: it selects all entities that are in this class or any of its subclasses. Field restrictions should still use put_field_on_mesh(field, class_instance, ...), which writes to the data hierarchy instead of this selector channel.

◆ operator const stk::mesh::Part &()

mundy::mesh::Class::operator const stk::mesh::Part & ( ) const
inlinenoexcept

◆ declare_subset() [1/2]

void mundy::mesh::Class::declare_subset ( Class & sub_class)
inline

If sub_class has the same primary entity rank as this class, then its members are a subset of this class's members:

  • this.data_part -> sub_class.data_part
  • this.assembly_part -> sub_class.assembly_part

◆ set_assembly_part_ids()

void mundy::mesh::Class::set_assembly_part_ids ( unsigned assembly_part_id,
unsigned leaf_assembly_part_id )
inline

◆ get_class() [1/8]

Class & mundy::mesh::get_class ( stk::mesh::MetaData & meta_data,
Class::class_ordinal_t class_ordinal )
inline
Exceptions
std::invalid_argumentif no class map exists or no matching class is found.

◆ get_class() [2/8]

const Class & mundy::mesh::get_class ( const stk::mesh::MetaData & meta_data,
Class::class_ordinal_t class_ordinal )
inline
Exceptions
std::invalid_argumentif no class map exists or no matching class is found.

◆ get_class() [3/8]

Class & mundy::mesh::get_class ( stk::mesh::MetaData & meta_data,
const std::string & class_name )
inline
Exceptions
std::invalid_argumentif no class map exists or no matching class is found.

◆ get_class() [4/8]

const Class & mundy::mesh::get_class ( const stk::mesh::MetaData & meta_data,
const std::string & class_name )
inline
Exceptions
std::invalid_argumentif no class map exists or no matching class is found.

◆ get_class() [5/8]

Class & mundy::mesh::get_class ( stk::mesh::BulkData & bulk_data,
Class::class_ordinal_t class_ordinal )
inline
Exceptions
std::invalid_argumentif no class map exists or no matching class is found.

◆ get_class() [6/8]

const Class & mundy::mesh::get_class ( const stk::mesh::BulkData & bulk_data,
Class::class_ordinal_t class_ordinal )
inline
Exceptions
std::invalid_argumentif no class map exists or no matching class is found.

◆ get_class() [7/8]

Class & mundy::mesh::get_class ( stk::mesh::BulkData & bulk_data,
const std::string & class_name )
inline
Exceptions
std::invalid_argumentif no class map exists or no matching class is found.

◆ get_class() [8/8]

const Class & mundy::mesh::get_class ( const stk::mesh::BulkData & bulk_data,
const std::string & class_name )
inline
Exceptions
std::invalid_argumentif no class map exists or no matching class is found.

◆ get_classes() [3/4]

const ClassVector & mundy::mesh::get_classes ( stk::mesh::BulkData & bulk_data)
inline

The returned vector is the canonical ordinal-ordered view stored on bulk_data.mesh_meta_data(). No per-call allocation is performed.

Exceptions
std::invalid_argumentif no class map exists.

◆ get_classes() [4/4]

const ConstClassVector & mundy::mesh::get_classes ( const stk::mesh::BulkData & bulk_data)
inline

The returned vector is the canonical ordinal-ordered view stored on bulk_data.mesh_meta_data(). No per-call allocation is performed.

Exceptions
std::invalid_argumentif no class map exists.

◆ declare_subset() [2/2]

void mundy::mesh::declare_subset ( Class & parent_class,
Class & sub_class )
inline

◆ operator&() [1/3]

stk::mesh::Selector mundy::mesh::operator& ( const Class & lhs,
const Class & rhs )
inline

◆ operator&() [2/3]

stk::mesh::Selector mundy::mesh::operator& ( const Class & lhs,
const stk::mesh::Selector & rhs )
inline

◆ operator&() [3/3]

stk::mesh::Selector mundy::mesh::operator& ( const stk::mesh::Selector & lhs,
const Class & rhs )
inline

◆ operator|() [1/3]

stk::mesh::Selector mundy::mesh::operator| ( const Class & lhs,
const Class & rhs )
inline

◆ operator|() [2/3]

stk::mesh::Selector mundy::mesh::operator| ( const Class & lhs,
const stk::mesh::Selector & rhs )
inline

◆ operator|() [3/3]

stk::mesh::Selector mundy::mesh::operator| ( const stk::mesh::Selector & lhs,
const Class & rhs )
inline

◆ operator-() [1/3]

stk::mesh::Selector mundy::mesh::operator- ( const Class & lhs,
const Class & rhs )
inline

◆ operator-() [2/3]

stk::mesh::Selector mundy::mesh::operator- ( const Class & lhs,
const stk::mesh::Selector & rhs )
inline

◆ operator-() [3/3]

stk::mesh::Selector mundy::mesh::operator- ( const stk::mesh::Selector & lhs,
const Class & rhs )
inline

◆ operator!()

stk::mesh::Selector mundy::mesh::operator! ( const Class & class_instance)
inline

◆ add_class_field() [1/4]

void mundy::mesh::add_class_field ( stk::io::StkMeshIoBroker & io_broker,
size_t output_file_index,
stk::mesh::FieldBase & field,
const ClassVector & classes,
const std::string & db_name )
inline

Node-rank fields are written as nodeset variables on the class leaf data parts in classes that contain the field. Other field ranks are passed through the normal StkMeshIoBroker::add_field(...) path. Repeated calls through this helper are idempotent only when the rediscovered Class-aware output parameters match the parameters recorded by the first call.

Throws std::logic_error if field is already registered by another output-registration path.

◆ add_class_field() [2/4]

void mundy::mesh::add_class_field ( stk::io::StkMeshIoBroker & io_broker,
size_t output_file_index,
stk::mesh::FieldBase & field,
const ClassVector & classes )
inline

◆ add_class_field() [3/4]

void mundy::mesh::add_class_field ( stk::io::StkMeshIoBroker & io_broker,
size_t output_file_index,
stk::mesh::FieldBase & field,
const std::string & db_name )
inline

This overload discovers all declared classes on the broker bulk data and forwards to the explicit-classes overload.

◆ add_class_field() [4/4]

void mundy::mesh::add_class_field ( stk::io::StkMeshIoBroker & io_broker,
size_t output_file_index,
stk::mesh::FieldBase & field )
inline

◆ add_class_component() [1/4]

template<typename ComponentType>
void mundy::mesh::add_class_component ( stk::io::StkMeshIoBroker & io_broker,
size_t output_file_index,
ComponentType & component,
const ClassVector & classes,
const std::string & db_name )
inline

Shared components do not currently have an IO representation. Passing a shared component here is a no-op that prints a warning once.

◆ add_class_component() [2/4]

template<typename ComponentType>
void mundy::mesh::add_class_component ( stk::io::StkMeshIoBroker & io_broker,
size_t output_file_index,
ComponentType & component,
const ClassVector & classes )
inline

◆ add_class_component() [3/4]

template<typename ComponentType>
void mundy::mesh::add_class_component ( stk::io::StkMeshIoBroker & io_broker,
size_t output_file_index,
ComponentType & component,
const std::string & db_name )
inline

This overload discovers all declared classes on the broker bulk data and forwards to the explicit-classes overload.

◆ add_class_component() [4/4]

template<typename ComponentType>
void mundy::mesh::add_class_component ( stk::io::StkMeshIoBroker & io_broker,
size_t output_file_index,
ComponentType & component )
inline

◆ put_field_on_mesh() [1/3]

template<typename FieldType>
void mundy::mesh::put_field_on_mesh ( FieldType & field,
Class & class_instance,
const typename FieldType::value_type * init_value )
inline

◆ put_field_on_mesh() [2/3]

template<typename FieldType>
void mundy::mesh::put_field_on_mesh ( FieldType & field,
Class & class_instance,
unsigned n1,
const typename FieldType::value_type * init_value )
inline

◆ put_field_on_mesh() [3/3]

template<typename FieldType>
void mundy::mesh::put_field_on_mesh ( FieldType & field,
Class & class_instance,
unsigned n1,
unsigned n2,
const typename FieldType::value_type * init_value )
inline

◆ get_matching_rank_primary_classes()

ClassVector mundy::mesh::BulkDataClassInterface::get_matching_rank_primary_classes ( const stk::mesh::Entity entity) const
inline

◆ declare_entity() [1/2]

stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_entity ( stk::mesh::EntityRank rank,
stk::mesh::EntityId id,
const ClassVector & class_vector )
inline

A parallel-local operation.

The entity is created as locally owned and a member of the input mesh parts. The entity a member of the meta data's locally owned mesh part and the entity's owner_rank() == parallel_rank().

If two or more processes create an entity of the same rank and identifier then the sharing and ownership of these entities will be resolved by the call to 'modification_end'.

The vector of classes may contain primary classes or class sets; they must satisfy the following constraints:

  • All class sets must have a primary entity rank equal to the entity's rank.
  • At most one of the primary classes may have a primary entity rank matching the entity's rank.
  • All other primary classes must have a primary entity rank greater than the entity's rank.

◆ declare_node() [1/2]

stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_node ( stk::mesh::EntityId id,
const ClassVector & class_vector )
inline

◆ declare_edge() [1/2]

stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_edge ( stk::mesh::EntityId id,
const ClassVector & class_vector )
inline

◆ declare_element() [1/2]

stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_element ( stk::mesh::EntityId id,
const ClassVector & class_vector )
inline

◆ declare_entity() [2/2]

stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_entity ( stk::mesh::EntityRank rank,
stk::mesh::EntityId id,
const Class & class_instance )
inline

◆ declare_node() [2/2]

stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_node ( stk::mesh::EntityId id,
const Class & class_instance )
inline

◆ declare_edge() [2/2]

stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_edge ( stk::mesh::EntityId id,
const Class & class_instance )
inline

◆ declare_element() [2/2]

stk::mesh::Entity mundy::mesh::BulkDataClassInterface::declare_element ( stk::mesh::EntityId id,
const Class & class_instance )
inline

◆ change_entity_classes() [1/3]

void mundy::mesh::BulkDataClassInterface::change_entity_classes ( const stk::mesh::Entity entity,
const ClassVector & add_classes,
const ClassVector & remove_classes = ClassVector() )
inline

The vector of classes may contain primary classes or class sets; they must satisfy the following constraints:

  • All class sets must have a primary entity rank equal to the entity's rank.
  • At most one of the primary classes may have a primary entity rank matching the entity's rank.
  • All other primary classes must have a primary entity rank greater than the entity's rank.

The entity will be added (or removed) from the leaf parts of all given class sets, all induced sets of classes with primary entity rank greater than the entity's rank, and all primary classes with equal primary entity rank.

◆ change_entity_classes() [2/3]

void mundy::mesh::BulkDataClassInterface::change_entity_classes ( const stk::mesh::Entity entity,
const Class & add_class,
const ClassVector & remove_classes = ClassVector() )
inline

◆ change_entity_classes() [3/3]

void mundy::mesh::BulkDataClassInterface::change_entity_classes ( const stk::mesh::Entity entity,
const ClassVector & add_classes,
const Class & remove_class )
inline

◆ class_interface()

BulkDataClassInterface mundy::mesh::class_interface ( stk::mesh::BulkData & bulk_data)
inline

Variable Documentation

◆ declaration_kind

DeclarationKind mundy::mesh::Class::DeclarationSignature::declaration_kind = DeclarationKind::NAMED

◆ class_rank

stk::mesh::EntityRank mundy::mesh::Class::DeclarationSignature::class_rank = stk::topology::INVALID_RANK

◆ class_topology

stk::topology::topology_t mundy::mesh::Class::DeclarationSignature::class_topology = stk::topology::INVALID_TOPOLOGY

◆ disable_io_support

bool mundy::mesh::Class::DeclarationSignature::disable_io_support = false

◆ bulk_data

stk::mesh::BulkData& mundy::mesh::BulkDataClassInterface::bulk_data