IOSS  2.0
Ioss::Decomposition< INT > Class Template Reference

#include <Iocgns_DecompositionData.h>

Public Member Functions

 Decomposition (const Ioss::PropertyManager &props, MPI_Comm comm)
 
size_t global_node_count () const
 
size_t global_elem_count () const
 
size_t ioss_node_count () const
 
size_t ioss_elem_count () const
 
size_t file_node_count () const
 
size_t file_elem_count () const
 
size_t file_node_offset () const
 
size_t file_elem_offset () const
 
bool needs_centroids () const
 
void generate_entity_distributions (size_t globalNodeCount, size_t globalElementCount)
 
bool i_own_node (size_t global_index) const
 
bool i_own_elem (size_t global_index) const
 
size_t node_global_to_local (size_t global_index) const
 
size_t elem_global_to_local (size_t global_index) const
 
void show_progress (const std::string &message) const
 
void decompose_model (Zoltan &zz, std::vector< BlockDecompositionData > &element_blocks)
 
void simple_decompose ()
 
void simple_node_decompose ()
 
void calculate_element_centroids (const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &z)
 
void zoltan_decompose (Zoltan &zz)
 
void get_local_element_list (const ZOLTAN_ID_PTR &export_global_ids, size_t export_count)
 
void metis_decompose (idx_t *pointer, idx_t *adjacency, std::vector< BlockDecompositionData > &el_blocks)
 
void internal_metis_decompose (std::vector< BlockDecompositionData > &el_blocks, idx_t *element_dist, idx_t *pointer, idx_t *adjacency, idx_t *elem_partition)
 
void get_node_entity_proc_data (INT *entity_proc, const Ioss::MapContainer &node_map, bool do_map) const
 
void get_element_block_communication (std::vector< BlockDecompositionData > &el_blocks)
 
void build_global_to_local_elem_map ()
 
void get_local_node_list ()
 
void get_shared_node_list ()
 
template<typename T >
void communicate_element_data (T *file_data, T *ioss_data, size_t comp_count) const
 
template<typename T >
void communicate_set_data (T *file_data, T *ioss_data, const SetDecompositionData &set, size_t comp_count) const
 
template<typename T , typename U >
void communicate_block_data (T *file_data, U *ioss_data, const BlockDecompositionData &block, size_t comp_count) const
 
template<typename T >
void communicate_node_data (T *file_data, T *ioss_data, size_t comp_count) const
 

Public Attributes

MPI_Comm m_comm
 
int m_processor {}
 
int m_processorCount {}
 
std::string m_method
 
int m_spatialDimension {3}
 
size_t m_globalElementCount {0}
 
size_t m_elementCount {0}
 
size_t m_elementOffset {0}
 
size_t m_importPreLocalElemIndex {0}
 
size_t m_globalNodeCount {0}
 
size_t m_nodeCount {0}
 
size_t m_nodeOffset {0}
 
size_t m_importPreLocalNodeIndex {0}
 
bool m_retainFreeNodes {true}
 
bool m_showProgress {false}
 
bool m_showHWM {false}
 
std::vector< double > m_centroids
 
std::vector< INTm_pointer
 
std::vector< INTm_adjacency
 
std::vector< INTm_nodeCommMap
 
std::vector< size_t > m_fileBlockIndex
 

Private Attributes

std::vector< INTlocalElementMap
 
std::vector< INTimportElementMap
 
std::vector< INTimportElementCount
 
std::vector< INTimportElementIndex
 
std::vector< INTexportElementMap
 
std::vector< INTexportElementCount
 
std::vector< INTexportElementIndex
 
std::vector< INTnodeIndex
 
std::vector< INTexportNodeMap
 
std::vector< INTexportNodeCount
 
std::vector< INTexportNodeIndex
 
std::vector< INTimportNodeMap
 
std::vector< INTimportNodeCount
 
std::vector< INTimportNodeIndex
 
std::vector< INTlocalNodeMap
 
std::vector< INTm_elementDist
 
std::vector< INTm_nodeDist
 
std::vector< INTnodeGTL
 
std::map< INT, INTelemGTL
 

Constructor & Destructor Documentation

◆ Decomposition()

template<typename INT >
Ioss::Decomposition< INT >::Decomposition ( const Ioss::PropertyManager props,
MPI_Comm  comm 
)

Member Function Documentation

◆ build_global_to_local_elem_map()

template<typename INT >
void Ioss::Decomposition< INT >::build_global_to_local_elem_map ( )

◆ calculate_element_centroids()

template<typename INT >
void Ioss::Decomposition< INT >::calculate_element_centroids ( const std::vector< double > &  x,
const std::vector< double > &  y,
const std::vector< double > &  z 
)

◆ communicate_block_data()

template<typename INT >
template<typename T , typename U >
void Ioss::Decomposition< INT >::communicate_block_data ( T *  file_data,
U *  ioss_data,
const BlockDecompositionData block,
size_t  comp_count 
) const

◆ communicate_element_data()

template<typename INT >
template<typename T >
void Ioss::Decomposition< INT >::communicate_element_data ( T *  file_data,
T *  ioss_data,
size_t  comp_count 
) const

◆ communicate_node_data()

template<typename INT >
template<typename T >
void Ioss::Decomposition< INT >::communicate_node_data ( T *  file_data,
T *  ioss_data,
size_t  comp_count 
) const

◆ communicate_set_data()

template<typename INT >
template<typename T >
void Ioss::Decomposition< INT >::communicate_set_data ( T *  file_data,
T *  ioss_data,
const SetDecompositionData set,
size_t  comp_count 
) const

◆ decompose_model()

template<typename INT >
void Ioss::Decomposition< INT >::decompose_model ( Zoltan &  zz,
std::vector< BlockDecompositionData > &  element_blocks 
)

◆ elem_global_to_local()

template<typename INT>
size_t Ioss::Decomposition< INT >::elem_global_to_local ( size_t  global_index) const
inline

◆ file_elem_count()

template<typename INT>
size_t Ioss::Decomposition< INT >::file_elem_count ( ) const
inline

◆ file_elem_offset()

template<typename INT>
size_t Ioss::Decomposition< INT >::file_elem_offset ( ) const
inline

◆ file_node_count()

template<typename INT>
size_t Ioss::Decomposition< INT >::file_node_count ( ) const
inline

◆ file_node_offset()

template<typename INT>
size_t Ioss::Decomposition< INT >::file_node_offset ( ) const
inline

◆ generate_entity_distributions()

template<typename INT >
void Ioss::Decomposition< INT >::generate_entity_distributions ( size_t  globalNodeCount,
size_t  globalElementCount 
)

◆ get_element_block_communication()

template<typename INT >
void Ioss::Decomposition< INT >::get_element_block_communication ( std::vector< BlockDecompositionData > &  el_blocks)

◆ get_local_element_list()

template<typename INT >
void Ioss::Decomposition< INT >::get_local_element_list ( const ZOLTAN_ID_PTR &  export_global_ids,
size_t  export_count 
)

◆ get_local_node_list()

template<typename INT >
void Ioss::Decomposition< INT >::get_local_node_list ( )

◆ get_node_entity_proc_data()

template<typename INT >
void Ioss::Decomposition< INT >::get_node_entity_proc_data ( INT entity_proc,
const Ioss::MapContainer node_map,
bool  do_map 
) const

◆ get_shared_node_list()

template<typename INT >
void Ioss::Decomposition< INT >::get_shared_node_list ( )

◆ global_elem_count()

template<typename INT>
size_t Ioss::Decomposition< INT >::global_elem_count ( ) const
inline

◆ global_node_count()

template<typename INT>
size_t Ioss::Decomposition< INT >::global_node_count ( ) const
inline

◆ i_own_elem()

template<typename INT>
bool Ioss::Decomposition< INT >::i_own_elem ( size_t  global_index) const
inline

◆ i_own_node()

template<typename INT>
bool Ioss::Decomposition< INT >::i_own_node ( size_t  global_index) const
inline

◆ internal_metis_decompose()

template<typename INT >
void Ioss::Decomposition< INT >::internal_metis_decompose ( std::vector< BlockDecompositionData > &  el_blocks,
idx_t *  element_dist,
idx_t *  pointer,
idx_t *  adjacency,
idx_t *  elem_partition 
)

◆ ioss_elem_count()

template<typename INT>
size_t Ioss::Decomposition< INT >::ioss_elem_count ( ) const
inline

◆ ioss_node_count()

template<typename INT>
size_t Ioss::Decomposition< INT >::ioss_node_count ( ) const
inline

◆ metis_decompose()

template<typename INT >
void Ioss::Decomposition< INT >::metis_decompose ( idx_t *  pointer,
idx_t *  adjacency,
std::vector< BlockDecompositionData > &  el_blocks 
)

◆ needs_centroids()

template<typename INT >
bool Ioss::Decomposition< INT >::needs_centroids ( ) const

◆ node_global_to_local()

template<typename INT>
size_t Ioss::Decomposition< INT >::node_global_to_local ( size_t  global_index) const
inline

◆ show_progress()

template<typename INT>
void Ioss::Decomposition< INT >::show_progress ( const std::string &  message) const
inline

◆ simple_decompose()

template<typename INT >
void Ioss::Decomposition< INT >::simple_decompose ( )

◆ simple_node_decompose()

template<typename INT >
void Ioss::Decomposition< INT >::simple_node_decompose ( )

◆ zoltan_decompose()

template<typename INT >
void Ioss::Decomposition< INT >::zoltan_decompose ( Zoltan &  zz)

Member Data Documentation

◆ elemGTL

template<typename INT>
std::map<INT, INT> Ioss::Decomposition< INT >::elemGTL
private

◆ exportElementCount

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::exportElementCount
private

◆ exportElementIndex

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::exportElementIndex
private

◆ exportElementMap

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::exportElementMap
private

◆ exportNodeCount

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::exportNodeCount
private

◆ exportNodeIndex

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::exportNodeIndex
private

◆ exportNodeMap

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::exportNodeMap
private

◆ importElementCount

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::importElementCount
private

◆ importElementIndex

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::importElementIndex
private

◆ importElementMap

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::importElementMap
private

◆ importNodeCount

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::importNodeCount
private

◆ importNodeIndex

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::importNodeIndex
private

◆ importNodeMap

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::importNodeMap
private

◆ localElementMap

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::localElementMap
private

◆ localNodeMap

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::localNodeMap
private

◆ m_adjacency

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::m_adjacency

◆ m_centroids

template<typename INT>
std::vector<double> Ioss::Decomposition< INT >::m_centroids

◆ m_comm

template<typename INT>
MPI_Comm Ioss::Decomposition< INT >::m_comm

◆ m_elementCount

template<typename INT>
size_t Ioss::Decomposition< INT >::m_elementCount {0}

◆ m_elementDist

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::m_elementDist
private

◆ m_elementOffset

template<typename INT>
size_t Ioss::Decomposition< INT >::m_elementOffset {0}

◆ m_fileBlockIndex

template<typename INT>
std::vector<size_t> Ioss::Decomposition< INT >::m_fileBlockIndex

◆ m_globalElementCount

template<typename INT>
size_t Ioss::Decomposition< INT >::m_globalElementCount {0}

◆ m_globalNodeCount

template<typename INT>
size_t Ioss::Decomposition< INT >::m_globalNodeCount {0}

◆ m_importPreLocalElemIndex

template<typename INT>
size_t Ioss::Decomposition< INT >::m_importPreLocalElemIndex {0}

◆ m_importPreLocalNodeIndex

template<typename INT>
size_t Ioss::Decomposition< INT >::m_importPreLocalNodeIndex {0}

◆ m_method

template<typename INT>
std::string Ioss::Decomposition< INT >::m_method

◆ m_nodeCommMap

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::m_nodeCommMap

◆ m_nodeCount

template<typename INT>
size_t Ioss::Decomposition< INT >::m_nodeCount {0}

◆ m_nodeDist

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::m_nodeDist
private

◆ m_nodeOffset

template<typename INT>
size_t Ioss::Decomposition< INT >::m_nodeOffset {0}

◆ m_pointer

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::m_pointer

◆ m_processor

template<typename INT>
int Ioss::Decomposition< INT >::m_processor {}

◆ m_processorCount

template<typename INT>
int Ioss::Decomposition< INT >::m_processorCount {}

◆ m_retainFreeNodes

template<typename INT>
bool Ioss::Decomposition< INT >::m_retainFreeNodes {true}

◆ m_showHWM

template<typename INT>
bool Ioss::Decomposition< INT >::m_showHWM {false}

◆ m_showProgress

template<typename INT>
bool Ioss::Decomposition< INT >::m_showProgress {false}

◆ m_spatialDimension

template<typename INT>
int Ioss::Decomposition< INT >::m_spatialDimension {3}

◆ nodeGTL

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::nodeGTL
private

◆ nodeIndex

template<typename INT>
std::vector<INT> Ioss::Decomposition< INT >::nodeIndex
private

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