IOSS 2.0
Loading...
Searching...
No Matches
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

template<typename EntityId , typename Topology >
using Iotm::text_mesh::SidesetSkinner< EntityId, Topology >::BaseClass = SideAdjacencyGraph<EntityId, Topology>

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: