IOSS 2.0
Iotm::text_mesh::SidesetSkinner< EntityId, Topology > Class Template Reference

#include <Iotm_TextMeshSidesetSkinner.h>

Inheritance diagram for Iotm::text_mesh::SidesetSkinner< EntityId, Topology >:
[legend]
Collaboration diagram for Iotm::text_mesh::SidesetSkinner< EntityId, Topology >:
[legend]

Public Types

using BaseClass = SideAdjacencyGraph<EntityId, Topology>
Public Types inherited from Iotm::text_mesh::SideAdjacencyGraph< EntityId, Topology >
using IndexType = int64_t

Public Member Functions

 SidesetSkinner ()=default
 ~SidesetSkinner ()
size_t get_num_elements () const override
int get_element_proc (const size_t elemIndex) const override
bool element_has_any_node_on_proc (const size_t elemIndex, int proc) const override
const std::string & get_element_block_name (const size_t elemIndex) const override
const std::vector< EntityId > & get_element_node_ids (const size_t elemIndex) const override
const Topologyget_element_topology (const size_t elemIndex) const override
EntityId get_element_id (const size_t elemIndex) const override
void set_skin_blocks (const std::vector< std::string > &skinBlocks)
void skin_blocks (const TextMeshData< EntityId, Topology > &textMeshData, std::vector< std::pair< EntityId, int > > &elemSidePairs)
Public Member Functions inherited from Iotm::text_mesh::SideAdjacencyGraph< EntityId, Topology >
 SideAdjacencyGraph ()
virtual ~SideAdjacencyGraph ()=default
void create_graph (int proc=ANY_PROC)
void create_graph (const std::vector< std::string > &selectedBlocks, int proc=ANY_PROC)
void set_error_handler (ErrorHandler errorHandler)
void dump (std::ostream &out=std::cout)
void dump (const std::vector< ElementData< EntityId, Topology > > &elemDataVec, std::ostream &out=std::cout)
const FaceConnectionsoperator[] (const IndexType elemIndex) const
size_t size () const
std::unordered_map< size_t, FaceConnections >::const_iterator begin () const
std::unordered_map< size_t, FaceConnections >::const_iterator end () const

Private Member Functions

void populate_skin_blocks (const PartIdMapping &partIds)
void set_text_mesh_data (const TextMeshData< EntityId, Topology > &textMeshData)
void reset_text_mesh_data ()

Private Attributes

const TextMeshData< EntityId, Topology > * m_textMeshData {nullptr}
std::vector< std::string > m_skinBlocks {}

Additional Inherited Members

Static Public Attributes inherited from Iotm::text_mesh::SideAdjacencyGraph< EntityId, Topology >
static constexpr int ANY_PROC = -1
static constexpr int INVALID_SIDE = -1
static constexpr IndexType INVALID_INDEX = -1
Protected Types inherited from Iotm::text_mesh::SideAdjacencyGraph< EntityId, Topology >
using OrdinalType = typename Topology::Ordinal
using PermutationType = typename Topology::Permutation
using Criterion = std::function<bool(const Topology &topo1, const Topology &topo2)>
Protected Member Functions inherited from Iotm::text_mesh::SideAdjacencyGraph< EntityId, Topology >
std::set< size_t > get_element_indices_with_common_nodes_on_side (const size_t elemIndex, int side, const std::unordered_map< EntityId, std::set< size_t > > &elementsForNode)
std::vector< EntityIdget_side_nodes (const size_t elemIndex, const int side)
std::vector< EntityIdget_sorted_side_nodes (const size_t elemIndex, const int side)
void internal_fill_sides_for_connected_element (CurrentAdjacency &adjacency, size_t neighborElementIndex)
void fill_sides_for_connected_element (CurrentAdjacency &adjacency, size_t neighborElementIndex)
bool equivalent_node_permutation (const std::vector< EntityId > &controlNodes, const std::vector< EntityId > &permutedNodes, const std::vector< OrdinalType > &permutationOrdinals)
std::pair< bool, PermutationTypeget_permutation (const Topology &topology, const std::vector< EntityId > &controlNodes, const std::vector< EntityId > &permutedNodes, PermutationType numPermutations)
std::pair< bool, PermutationTypeget_permutation (const Topology &topology, const std::vector< EntityId > &controlNodes, const std::vector< EntityId > &permutedNodes)
std::pair< bool, PermutationTypeget_positive_permutation (const Topology &topology, const std::vector< EntityId > &controlNodes, const std::vector< EntityId > &permutedNodes)
bool has_same_polarity (const size_t thisElem, const int thisSide, const size_t thatElem, const int thatSide)
bool verify_entry (IndexType elemIndex, int side)
std::vector< FaceConnectionget_reciprocity (CurrentAdjacency &adjacency)
void break_reciprocal_connections (CurrentAdjacency &adjacency)
bool is_shell_shell_connection (const Topology &thisElemTopology, const Topology &thatElemTopology)
bool is_shell_shell_connection (const size_t thisElem, const size_t thatElem)
bool is_shell_solid_connection (const Topology &thisElemTopology, const Topology &thatElemTopology)
bool is_shell_solid_connection (const size_t thisElem, const size_t thatElem)
bool is_solid_shell_connection (const Topology &thisElemTopology, const Topology &thatElemTopology)
bool is_solid_shell_connection (const size_t thisElem, const size_t thatElem)
bool is_solid_solid_connection (const Topology &thisElemTopology, const Topology &thatElemTopology)
bool is_solid_solid_connection (const size_t thisElem, const size_t thatElem)
bool has_connection_type_on_side (size_t thisIndex, int thisSide, Criterion criterion)
bool has_any_shell_connection_on_side (size_t thisIndex, int thisSide)
bool has_shell_shell_connection_on_side (size_t thisIndex, int thisSide)
bool has_shell_solid_connection_on_side (size_t thisIndex, int thisSide)
bool has_solid_shell_connection_on_side (size_t thisIndex, int thisSide)
bool has_solid_solid_connection_on_side (size_t thisIndex, int thisSide)
void add_connection (CurrentAdjacency &adjacency, size_t connectedElementIndex, int otherSide)
void set_side_connectivity (CurrentAdjacency &adjacency, size_t connectedElementIndex)
void enforce_coincident_shell_ownership (IndexType connectedElemIndex1, IndexType connectedElemIndex2)
void process_side_connectivity (CurrentAdjacency &adjacency, const std::unordered_map< EntityId, std::set< size_t > > &elementsForNode)
void build_side_connectivity_graph (const std::vector< size_t > &elementIndices, const std::unordered_map< EntityId, std::set< size_t > > &elementsForNode)
void initialize_side_connectivity_graph (const std::vector< size_t > &elementIndices)
std::unordered_map< EntityId, std::set< size_t > > get_elements_for_node_map (const std::vector< size_t > &elementIndices)
bool element_is_in_selected_blocks (const size_t elemIndex, const std::vector< std::string > &sortedSelectedBlocks)
bool is_selected_element (const size_t elemIndex, const std::vector< std::string > &sortedSelectedBlocks, int proc)
std::vector< size_t > get_local_and_aura_elements (const std::vector< std::string > &selectedBlocks, int proc)
Protected Attributes inherited from Iotm::text_mesh::SideAdjacencyGraph< EntityId, Topology >
ErrorHandler m_errorHandler
std::unordered_map< size_t, FaceConnectionsm_indexGraph

Member Typedef Documentation

◆ BaseClass

Constructor & Destructor Documentation

◆ SidesetSkinner()

template<typename EntityId, typename Topology>
Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::SidesetSkinner ( )
default

◆ ~SidesetSkinner()

template<typename EntityId, typename Topology>
Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::~SidesetSkinner ( )
inline

Member Function Documentation

◆ element_has_any_node_on_proc()

template<typename EntityId, typename Topology>
bool Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::element_has_any_node_on_proc ( const size_t elemIndex,
int proc ) const
inlineoverridevirtual

◆ get_element_block_name()

template<typename EntityId, typename Topology>
const std::string & Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::get_element_block_name ( const size_t elemIndex) const
inlineoverridevirtual

◆ get_element_id()

template<typename EntityId, typename Topology>
EntityId Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::get_element_id ( const size_t elemIndex) const
inlineoverridevirtual

◆ get_element_node_ids()

template<typename EntityId, typename Topology>
const std::vector< EntityId > & Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::get_element_node_ids ( const size_t elemIndex) const
inlineoverridevirtual

◆ get_element_proc()

template<typename EntityId, typename Topology>
int Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::get_element_proc ( const size_t elemIndex) const
inlineoverridevirtual

◆ get_element_topology()

template<typename EntityId, typename Topology>
const Topology & Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::get_element_topology ( const size_t elemIndex) const
inlineoverridevirtual

◆ get_num_elements()

template<typename EntityId, typename Topology>
size_t Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::get_num_elements ( ) const
inlineoverridevirtual

◆ populate_skin_blocks()

template<typename EntityId, typename Topology>
void Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::populate_skin_blocks ( const PartIdMapping & partIds)
inlineprivate

◆ reset_text_mesh_data()

template<typename EntityId, typename Topology>
void Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::reset_text_mesh_data ( )
inlineprivate

◆ set_skin_blocks()

template<typename EntityId, typename Topology>
void Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::set_skin_blocks ( const std::vector< std::string > & skinBlocks)
inline

◆ set_text_mesh_data()

template<typename EntityId, typename Topology>
void Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::set_text_mesh_data ( const TextMeshData< EntityId, Topology > & textMeshData)
inlineprivate

◆ skin_blocks()

template<typename EntityId, typename Topology>
void Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::skin_blocks ( const TextMeshData< EntityId, Topology > & textMeshData,
std::vector< std::pair< EntityId, int > > & elemSidePairs )
inline

Member Data Documentation

◆ m_skinBlocks

template<typename EntityId, typename Topology>
std::vector<std::string> Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::m_skinBlocks {}
private

◆ m_textMeshData

template<typename EntityId, typename Topology>
const TextMeshData<EntityId, Topology>* Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::m_textMeshData {nullptr}
private

The documentation for this class was generated from the following file: