|
GEOS
|
#include "common/DataTypes.hpp"#include "common/MpiWrapper.hpp"#include "mesh/generators/CellBlockManager.hpp"#include <vtkDataSet.h>#include <vtkMultiProcessController.h>#include <vtkSmartPointer.h>#include <numeric>#include <unordered_set>Go to the source code of this file.
Classes | |
| class | geos::vtk::AllMeshes |
| Gathers all the vtk meshes together. More... | |
Namespaces | |
| geos | |
Typedefs | |
| using | geos::vtk::CellMapType = stdMap< ElementType, stdUnorderedMap< int, stdVector< vtkIdType > > > |
| Type of map used to store cell lists. More... | |
Enumerations | |
| enum class | geos::vtk::PartitionMethod : integer { parmetis , ptscotch } |
| Choice of advanced mesh partitioner. More... | |
Functions | |
| geos::vtk::ENUM_STRINGS (PartitionMethod, "parmetis", "ptscotch") | |
| Strings for VTKMeshGenerator::PartitionMethod enumeration. | |
| vtkSmartPointer< vtkMultiProcessController > | geos::vtk::getController () |
| Return a VTK controller for multiprocessing. More... | |
| AllMeshes | geos::vtk::loadAllMeshes (Path const &filePath, string const &mainBlockName, string_array const &faceBlockNames) |
| Load the VTK file into the VTK data structure. More... | |
| stdVector< int > | geos::vtk::findNeighborRanks (stdVector< vtkBoundingBox > boundingBoxes) |
| Compute the rank neighbor candidate list. More... | |
| AllMeshes | geos::vtk::redistributeMeshes (integer const logLevel, vtkSmartPointer< vtkDataSet > loadedMesh, stdMap< string, vtkSmartPointer< vtkDataSet > > &namesToFractures, MPI_Comm const comm, PartitionMethod const method, int const partitionRefinement, int const useGlobalIds, string const &structuredIndexAttributeName, int const numPartZ) |
| Generate global point/cell IDs and redistribute the mesh among MPI ranks. More... | |
| CellMapType | geos::vtk::buildCellMap (vtkDataSet &mesh, string const &attributeName) |
| Collect lists of VTK cell indices organized by type and attribute value. More... | |
| void | geos::vtk::printMeshStatistics (vtkDataSet &mesh, CellMapType const &cellMap, MPI_Comm const comm) |
| Print statistics for a vtk mesh. More... | |
| vtkDataArray * | geos::vtk::findArrayForImport (vtkDataSet &mesh, string const &sourceName) |
| Collect the data to be imported. More... | |
| bool | geos::vtk::hasArray (vtkDataSet &mesh, string const &sourceName) |
Check if the vtk mesh as a cell data field of name sourceName. More... | |
| string | geos::vtk::buildCellBlockName (ElementType const type, int const regionId) |
| build cell block name from regionId and cellType More... | |
| void | geos::vtk::importMaterialField (stdVector< vtkIdType > const &cellIds, vtkDataArray *vtkArray, dataRepository::WrapperBase &wrapper) |
Imports 2d and 3d arrays from vtkArray to wrapper, only for cellIds. More... | |
| void | geos::vtk::importRegularField (stdVector< vtkIdType > const &cellIds, vtkDataArray *vtkArray, dataRepository::WrapperBase &wrapper) |
Imports 1d and 2d arrays from vtkArray to wrapper, only for cellIds. More... | |
| void | geos::vtk::importRegularField (vtkDataArray *vtkArray, dataRepository::WrapperBase &wrapper) |
Imports 1d and 2d arrays from vtkArray to wrapper, for all the elements/cells of the provided wrapper. More... | |
| void | geos::writeNodes (integer const logLevel, vtkDataSet &mesh, string_array &nodesetNames, CellBlockManager &cellBlockManager, const geos::R1Tensor &translate, const geos::R1Tensor &scale) |
| Build all the vertex blocks. More... | |
| void | geos::writeCells (integer const logLevel, vtkDataSet &mesh, vtk::CellMapType const &cellMap, string const &structuredIndexAttributeName, CellBlockManager &cellBlockManager) |
| Build all the cell blocks. More... | |
| void | geos::writeSurfaces (integer const logLevel, vtkDataSet &mesh, const geos::vtk::CellMapType &cellMap, CellBlockManager &cellBlockManager) |
| Build the "surface" node sets from the surface information. More... | |
| std::pair< real64, real64 > | geos::getGlobalLengthAndOffset (vtkDataSet &mesh) |
| Compute the global length of the mesh and its offset. More... | |
| using geos::vtk::CellMapType = typedef stdMap< ElementType, stdUnorderedMap< int, stdVector< vtkIdType > > > |
Type of map used to store cell lists.
This should be an unordered_map, but some outdated standard libraries on some systems do not provide std::hash specialization for enums. This is not performance critical though.
Definition at line 59 of file VTKUtilities.hpp.
|
strong |
Choice of advanced mesh partitioner.
| Enumerator | |
|---|---|
| parmetis | Use ParMETIS library. |
| ptscotch | Use PTScotch library. |
Definition at line 42 of file VTKUtilities.hpp.
| string geos::vtk::buildCellBlockName | ( | ElementType const | type, |
| int const | regionId | ||
| ) |
build cell block name from regionId and cellType
| [in] | type | The type of element in the region |
| [in] | regionId | The region considered |
| CellMapType geos::vtk::buildCellMap | ( | vtkDataSet & | mesh, |
| string const & | attributeName | ||
| ) |
Collect lists of VTK cell indices organized by type and attribute value.
| [in] | mesh | the vtkUnstructuredGrid or vtkStructuredGrid that is loaded |
| [in] | attributeName | name of the VTK data array containing the attribute, if any |
| vtkDataArray* geos::vtk::findArrayForImport | ( | vtkDataSet & | mesh, |
| string const & | sourceName | ||
| ) |
Collect the data to be imported.
| [in] | mesh | an input mesh |
| [in] | sourceName | a field name |
| stdVector< int > geos::vtk::findNeighborRanks | ( | stdVector< vtkBoundingBox > | boundingBoxes | ) |
Compute the rank neighbor candidate list.
| [in] | boundingBoxes | the bounding boxes used by the VTK partitioner for all ranks |
| vtkSmartPointer< vtkMultiProcessController > geos::vtk::getController | ( | ) |
Return a VTK controller for multiprocessing.
| bool geos::vtk::hasArray | ( | vtkDataSet & | mesh, |
| string const & | sourceName | ||
| ) |
Check if the vtk mesh as a cell data field of name sourceName.
| [in] | mesh | an input mesh |
| [in] | sourceName | a field name |
| void geos::vtk::importMaterialField | ( | stdVector< vtkIdType > const & | cellIds, |
| vtkDataArray * | vtkArray, | ||
| dataRepository::WrapperBase & | wrapper | ||
| ) |
Imports 2d and 3d arrays from vtkArray to wrapper, only for cellIds.
| cellIds | The cells for which we should copy the data. |
| vtkArray | The source. |
| wrapper | The destination. |
| void geos::vtk::importRegularField | ( | stdVector< vtkIdType > const & | cellIds, |
| vtkDataArray * | vtkArray, | ||
| dataRepository::WrapperBase & | wrapper | ||
| ) |
Imports 1d and 2d arrays from vtkArray to wrapper, only for cellIds.
| cellIds | The cells for which we should copy the data. |
| vtkArray | The source. |
| wrapper | The destination. |
| void geos::vtk::importRegularField | ( | vtkDataArray * | vtkArray, |
| dataRepository::WrapperBase & | wrapper | ||
| ) |
Imports 1d and 2d arrays from vtkArray to wrapper, for all the elements/cells of the provided wrapper.
| vtkArray | The source. |
| wrapper | The destination. |
| AllMeshes geos::vtk::loadAllMeshes | ( | Path const & | filePath, |
| string const & | mainBlockName, | ||
| string_array const & | faceBlockNames | ||
| ) |
Load the VTK file into the VTK data structure.
| [in] | filePath | the Path of the file to load |
| [in] | mainBlockName | The name of the block to import (will be considered for multi-block files only). |
| [in] | faceBlockNames | The names of the face blocks to import (will be considered for multi-block files only). |
| void geos::vtk::printMeshStatistics | ( | vtkDataSet & | mesh, |
| CellMapType const & | cellMap, | ||
| MPI_Comm const | comm | ||
| ) |
Print statistics for a vtk mesh.
| [in] | mesh | an input mesh |
| cellMap | a map of cell lists grouped by type | |
| comm | the MPI communicator |
| AllMeshes geos::vtk::redistributeMeshes | ( | integer const | logLevel, |
| vtkSmartPointer< vtkDataSet > | loadedMesh, | ||
| stdMap< string, vtkSmartPointer< vtkDataSet > > & | namesToFractures, | ||
| MPI_Comm const | comm, | ||
| PartitionMethod const | method, | ||
| int const | partitionRefinement, | ||
| int const | useGlobalIds, | ||
| string const & | structuredIndexAttributeName, | ||
| int const | numPartZ | ||
| ) |
Generate global point/cell IDs and redistribute the mesh among MPI ranks.
| [in] | logLevel | the log level |
| [in] | loadedMesh | the mesh that was loaded on one or several MPI ranks |
| [in] | namesToFractures | the fracture meshes |
| [in] | comm | the MPI communicator |
| [in] | method | the partitioning method |
| [in] | partitionRefinement | number of graph partitioning refinement cycles |
| [in] | useGlobalIds | controls whether global id arrays from the vtk input should be used |
| [in] | structuredIndexAttributeName | VTK array name for structured index attribute, if present |
| [in] | numPartZ | number of MPI partitions in Z direction (only if structuredIndexAttributeName is used) |