OGS
NodeWiseMeshPartitioner.cpp File Reference

Detailed Description

Define the members of class NodeWiseMeshPartitioner.

Date
2016.05

Definition in file NodeWiseMeshPartitioner.cpp.

#include "NodeWiseMeshPartitioner.h"
#include <limits>
#include <numeric>
#include <unordered_map>
#include "BaseLib/Error.h"
#include "BaseLib/FileTools.h"
#include "BaseLib/Logging.h"
#include "BaseLib/Stream.h"
#include "MeshLib/IO/VtkIO/VtuInterface.h"
Include dependency graph for NodeWiseMeshPartitioner.cpp:

Go to the source code of this file.

Classes

struct  ApplicationUtils::NodeStruct
 
struct  ApplicationUtils::ConfigOffsets
 
struct  ApplicationUtils::PartitionOffsets
 

Namespaces

 ApplicationUtils
 

Functions

NodeWiseMeshPartitioner::IntegerType ApplicationUtils::getNumberOfIntegerVariablesOfElements (std::vector< const MeshLib::Element * > const &elements)
 
std::size_t ApplicationUtils::nodeIdBulkMesh (MeshLib::Node const &node, std::vector< std::size_t > const *node_id_mapping=nullptr)
 
std::size_t ApplicationUtils::partitionLookup (MeshLib::Node const &node, std::vector< std::size_t > const &partition_ids, std::vector< std::size_t > const *node_id_mapping=nullptr)
 
std::pair< std::vector< MeshLib::Node * >, std::vector< MeshLib::Node * > > ApplicationUtils::findRegularNodesInPartition (std::size_t const part_id, const bool is_mixed_high_order_linear_elems, std::vector< MeshLib::Node * > const &nodes, std::vector< std::size_t > const &partition_ids, MeshLib::Mesh const &mesh, std::vector< std::size_t > const *node_id_mapping=nullptr)
 
std::ptrdiff_t ApplicationUtils::numberOfRegularNodes (MeshLib::Element const &e, std::size_t const part_id, std::vector< std::size_t > const &partition_ids, std::vector< std::size_t > const *node_id_mapping=nullptr)
 
std::tuple< std::vector< MeshLib::Element const * >, std::vector< MeshLib::Element const * > > ApplicationUtils::findElementsInPartition (std::size_t const part_id, std::vector< MeshLib::Element * > const &elements, std::vector< std::size_t > const &partition_ids, std::vector< std::size_t > const *node_id_mapping=nullptr)
 
std::tuple< std::vector< MeshLib::Node * >, std::vector< MeshLib::Node * > > ApplicationUtils::findGhostNodesInPartition (std::size_t const part_id, const bool is_mixed_high_order_linear_elems, std::vector< MeshLib::Node * > const &nodes, std::vector< MeshLib::Element const * > const &ghost_elements, std::vector< std::size_t > const &partition_ids, MeshLib::Mesh const &mesh, std::vector< std::size_t > const *node_id_mapping=nullptr)
 
template<typename T >
std::size_t ApplicationUtils::copyNodePropertyVectorValues (Partition const &p, std::size_t const offset, MeshLib::PropertyVector< T > const &pv, MeshLib::PropertyVector< T > &partitioned_pv)
 
template<typename T >
std::size_t ApplicationUtils::copyCellPropertyVectorValues (Partition const &p, std::size_t const offset, MeshLib::PropertyVector< T > const &pv, MeshLib::PropertyVector< T > &partitioned_pv)
 
template<typename T >
bool ApplicationUtils::copyPropertyVector (MeshLib::Properties &partitioned_properties, std::vector< Partition > const &partitions, MeshLib::PropertyVector< T > const *const pv, std::map< MeshLib::MeshItemType, std::size_t > const &total_number_of_tuples)
 
template<typename Function >
void ApplicationUtils::applyToPropertyVectors (MeshLib::Properties const &properties, Function f)
 
void ApplicationUtils::addVtkGhostTypeProperty (MeshLib::Properties &partitioned_properties, std::vector< Partition > const &partitions, std::size_t const total_number_of_cells)
 
MeshLib::Properties ApplicationUtils::partitionProperties (MeshLib::Properties const &properties, std::vector< Partition > const &partitions)
 Partition existing properties and add vtkGhostType cell data array property. More...
 
void ApplicationUtils::markDuplicateGhostCells (MeshLib::Mesh const &mesh, std::vector< Partition > &partitions)
 
template<typename T >
void ApplicationUtils::writePropertyVectorValues (std::ostream &os, MeshLib::PropertyVector< T > const &pv)
 
template<typename T >
bool ApplicationUtils::writePropertyVector (MeshLib::PropertyVector< T > const *const pv, MeshLib::MeshItemType const mesh_item_type, std::ostream &out_val, std::ostream &out_meta)
 
void ApplicationUtils::writeProperties (const std::string &file_name_base, MeshLib::Properties const &partitioned_properties, std::vector< Partition > const &partitions, MeshLib::MeshItemType const mesh_item_type)
 
PartitionOffsets ApplicationUtils::computePartitionOffsets (Partition const &partition)
 
ConfigOffsets ApplicationUtils::incrementConfigOffsets (ConfigOffsets const &oldConfig, PartitionOffsets const &offsets)
 
std::tuple< std::vector< long >, std::vector< long > > ApplicationUtils::writeConfigData (const std::string &file_name_base, std::vector< Partition > const &partitions)
 
void ApplicationUtils::getElementIntegerVariables (const MeshLib::Element &elem, const std::unordered_map< std::size_t, long > &local_node_ids, std::vector< long > &elem_info, long &counter)
 
std::unordered_map< std::size_t, long > ApplicationUtils::enumerateLocalNodeIds (std::vector< MeshLib::Node * > const &nodes)
 Generates a mapping of given node ids to a new local (renumbered) node ids. More...
 
void ApplicationUtils::writeElements (std::string const &file_name_base, std::vector< Partition > const &partitions, std::vector< long > const &regular_element_offsets, std::vector< long > const &ghost_element_offsets)
 
void ApplicationUtils::writeNodes (const std::string &file_name_base, std::vector< Partition > const &partitions, std::vector< std::size_t > const &global_node_ids)