OGS
|
Namespaces | |
namespace | detail |
namespace | details |
namespace | IO |
namespace | views |
MeshLib specific, lazy, non-owning, non-mutating, composable range views. | |
Classes | |
class | CellRule |
class | CoordinateSystem |
Coordinate systems. More... | |
struct | CoordinateSystemType |
Coordinate system type. More... | |
class | EdgeRule |
class | Element |
class | ElementCoordinatesMappingLocal |
class | ElementSearch |
Element search class. More... | |
class | ElementStatus |
class | FaceRule |
class | HexRule |
class | HexRule20 |
class | HexRule8 |
struct | IntegrationPointMetaData |
struct | IntegrationPointWriter |
class | LinearEdgeReturn |
Returns linear order edge. More... | |
class | LineRule |
class | LineRule2 |
class | LineRule3 |
struct | Location |
class | Mesh |
class | MeshElementGrid |
class | MeshSubset |
A subset of nodes on a single mesh. More... | |
class | Node |
class | NodeAdjacencyTable |
class | NodePartitionedMesh |
A subdomain mesh. More... | |
class | NodeSearch |
Node search class. More... | |
class | NoEdgeReturn |
Returns always null pointer. More... | |
class | PointRule1 |
A 0d point element. More... | |
class | PrismRule |
class | PrismRule15 |
class | PrismRule6 |
class | Properties |
Property manager on mesh items. Class Properties manages scalar, vector or matrix properties. For instance in groundwater flow porosity is a scalar property and permeabilty can be stored as a tensor property. Properties are assigned to mesh items, i.e. Node or Element objects. The createNewPropertyVector() method first creates a PropertyVector of template type T (scalar, vector or matrix). This class stores the PropertyVector, accessible by a combination of the name and the type of the mesh item (Node or Element). More... | |
class | PropertyVector |
class | PropertyVector< T * > |
class | PropertyVectorBase |
class | PyramidRule |
class | PyramidRule13 |
class | PyramidRule5 |
class | QuadraticEdgeReturn |
Returns quadratic order edge. More... | |
class | QuadRule |
class | QuadRule4 |
class | QuadRule8 |
class | QuadRule9 |
class | TemplateElement |
class | TetRule |
class | TetRule10 |
class | TetRule4 |
class | TriRule |
class | TriRule3 |
class | TriRule6 |
class | VertexRule |
class | VtkMappedMeshSource |
class | VtkMeshConverter |
Converter for VtkUnstructured Grids to OGS meshes. More... | |
class | VtkMeshNodalCoordinatesTemplate |
Typedefs | |
using | RotationMatrix = Eigen::Matrix<double, 3u, 3u, Eigen::RowMajor> |
using | AllElementTypes |
using | Hex = TemplateElement<MeshLib::HexRule8> |
using | Hex20 = TemplateElement<MeshLib::HexRule20> |
using | Line = TemplateElement<MeshLib::LineRule2> |
using | Line3 = TemplateElement<MeshLib::LineRule3> |
using | Point = TemplateElement<PointRule1> |
using | Prism = TemplateElement<MeshLib::PrismRule6> |
using | Prism15 = TemplateElement<MeshLib::PrismRule15> |
using | Pyramid = TemplateElement<MeshLib::PyramidRule5> |
using | Pyramid13 = TemplateElement<MeshLib::PyramidRule13> |
using | Quad = TemplateElement<MeshLib::QuadRule4> |
using | Quad8 = TemplateElement<MeshLib::QuadRule8> |
using | Quad9 = TemplateElement<MeshLib::QuadRule9> |
using | Tet = TemplateElement<MeshLib::TetRule4> |
using | Tet10 = TemplateElement<MeshLib::TetRule10> |
using | Tri = TemplateElement<MeshLib::TriRule3> |
using | Tri6 = TemplateElement<MeshLib::TriRule6> |
Enumerations | |
enum class | MeshItemType { Node , Edge , Face , Cell , IntegrationPoint } |
enum class | MeshElemType { INVALID = 0 , POINT = 1 , LINE = 3 , QUAD = 9 , HEXAHEDRON = 12 , TRIANGLE = 5 , TETRAHEDRON = 10 , PRISM = 16 , PYRAMID = 14 } |
Types of mesh elements supported by OpenGeoSys. Values are from VTKCellType enum. More... | |
enum class | CellType { INVALID = 0 , POINT1 = 1 , LINE2 = 2 , LINE3 = 3 , TRI3 = 4 , TRI6 = 5 , QUAD4 = 6 , QUAD8 = 7 , QUAD9 = 8 , TET4 = 9 , TET10 = 10 , HEX8 = 11 , HEX20 = 12 , HEX27 = 13 , PRISM6 = 14 , PRISM15 = 15 , PRISM18 = 16 , PYRAMID5 = 17 , PYRAMID13 = 18 , enum_length } |
Types of mesh elements supported by OpenGeoSys. More... | |
enum class | MeshQualityType { INVALID = 0 , ELEMENTSIZE , SIZEDIFFERENCE , EDGERATIO , EQUIANGLESKEW , RADIUSEDGERATIO } |
Describes a mesh quality metric. More... | |
enum class | UseIntensityAs { ELEVATION , MATERIALS , DATAVECTOR , NONE } |
Selection of possible interpretations for intensities. More... | |
Functions | |
std::ostream & | operator<< (std::ostream &os, Element const &e) |
bool | areNeighbors (Element const *const element, Element const *const other) |
Returns true if elem is a neighbour of this element and false otherwise. | |
bool | hasZeroVolume (MeshLib::Element const &element) |
Returns true if the element has zero length/area/volume. | |
MathLib::Point3d | getCenterOfGravity (MeshLib::Element const &element) |
Calculates the center of gravity for the mesh element. | |
std::pair< double, double > | computeSqrNodeDistanceRange (MeshLib::Element const &element, bool const check_allnodes=true) |
Compute the minimum and maximum node distances for this element. | |
std::pair< double, double > | computeSqrEdgeLengthRange (Element const &element) |
Compute the minimum and maximum squared edge length for this element. | |
bool | isPointInElementXY (MathLib::Point3d const &p, Element const &e) |
unsigned | getNodeIDinElement (Element const &element, const Node *node) |
Returns the position of the given node in the node array of this element. | |
std::size_t | getNodeIndex (Element const &element, unsigned const idx) |
MathLib::Point3d | getBulkElementPoint (MeshLib::CellType const bulk_element_cell_type, std::size_t const bulk_face_id, MathLib::WeightedPoint const &point_on_face) |
MathLib::Point3d | getBulkElementPoint (MeshLib::Element const &bulk_element, std::size_t const bulk_face_id, MathLib::WeightedPoint const &point_on_face) |
Overload provided for convenience. | |
std::vector< Node * > | getBaseNodes (std::vector< Element * > const &elements) |
Eigen::Vector3d | calculateNormalizedSurfaceNormal (MeshLib::Element const &surface_element, MeshLib::Element const &bulk_element) |
std::vector< std::size_t > | findElementsWithinRadius (Element const &start_element, double const radius_squared) |
std::ostream & | operator<< (std::ostream &os, MeshItemType const &t) |
std::ostream & | operator<< (std::ostream &os, Location const &l) |
static constexpr char const * | toString (const MeshItemType t) |
Returns a char array for a specific MeshItemType. | |
bool | operator< (const Location &left, const Location &right) |
Lexicographic order of Location. | |
std::vector< std::vector< Element const * > > | findElementsConnectedToNodes (Mesh const &mesh) |
std::pair< double, double > | minMaxEdgeLength (std::vector< Element * > const &elements) |
Returns the minimum and maximum edge length for given elements. | |
PropertyVector< int > const * | materialIDs (Mesh const &mesh) |
PropertyVector< int > * | materialIDs (Mesh &mesh) |
PropertyVector< std::size_t > const * | bulkNodeIDs (Mesh const &mesh) |
PropertyVector< std::size_t > const * | bulkElementIDs (Mesh const &mesh) |
std::vector< std::vector< Node * > > | calculateNodesConnectedByElements (Mesh const &mesh) |
bool | isBaseNode (Node const &node, std::vector< Element const * > const &elements_connected_to_node) |
Mesh & | findMeshByName (std::vector< std::unique_ptr< Mesh > > const &meshes, std::string_view const name) |
bool | operator== (Mesh const &a, Mesh const &b) |
Meshes are equal if their id's are equal. | |
bool | operator!= (Mesh const &a, Mesh const &b) |
template<typename T > | |
bool | idsComparator (T const a, T const b) |
std::string | MeshElemType2String (const MeshElemType t) |
Given a MeshElemType this returns the appropriate string. | |
std::string | MeshElemType2StringShort (const MeshElemType t) |
Given a MeshElemType this returns the appropriate string with a short name. | |
MeshElemType | String2MeshElemType (const std::string &s) |
Given a string of the shortened name of the element type, this returns the corresponding MeshElemType. | |
std::vector< MeshElemType > | getMeshElemTypes () |
Returns a vector of all mesh element types. | |
std::vector< std::string > | getMeshElemTypeStringsShort () |
Returns a vector of strings of mesh element types. | |
std::string | CellType2String (const CellType t) |
Given a MeshElemType this returns the appropriate string. | |
std::string | MeshQualityType2String (const MeshQualityType t) |
MeshLib::MeshQualityType | String2MeshQualityType (std::string const &s) |
template<typename Container , typename Predicate > | |
std::vector< std::size_t > | filter (Container const &container, Predicate const &p) |
std::vector< Node * > | getUniqueNodes (std::vector< Element * > const &elements) |
Create a vector of unique nodes used by given elements. | |
std::vector< int > | getEndNodeIDRanks (std::size_t const n_global_nodes, std::vector< std::size_t > const &n_regular_base_nodes_at_rank, std::vector< std::size_t > const &n_regular_high_order_nodes_at_rank) |
template<typename Function > | |
void | applyToPropertyVectors (Properties const &properties, Function f) |
constexpr std::string_view | getBulkIDString (MeshItemType mesh_item_type) |
template<typename T > | |
void | addPropertyToMesh (Mesh &mesh, std::string_view name, MeshItemType item_type, std::size_t number_of_components, std::vector< T > const &values) |
std::unique_ptr< MeshLib::Mesh > | createMaterialIDsBasedSubMesh (MeshLib::Mesh const &mesh, std::vector< int > const &material_ids, std::string const &name_for_created_mesh) |
std::unique_ptr< MeshLib::Mesh > | createMeshFromElementSelection (std::string mesh_name, std::vector< MeshLib::Element * > const &elements) |
std::unique_ptr< Mesh > | createMeshFromElementSelection (std::string mesh_name, std::vector< Element * > const &elements) |
std::vector< Node * > | copyNodeVector (const std::vector< Node * > &nodes) |
Creates a deep copy of a Node vector. | |
std::vector< Element * > | copyElementVector (std::vector< Element * > const &elements, std::vector< Node * > const &new_nodes, std::vector< std::size_t > const *const node_id_map) |
template<typename E > | |
Element * | copyElement (Element const *const element, const std::vector< Node * > &nodes, std::vector< std::size_t > const *const id_map) |
Element * | copyElement (Element const *const element, const std::vector< Node * > &nodes, std::vector< std::size_t > const *const id_map) |
std::vector< Element * > | cloneElements (std::vector< Element * > const &elements) |
Clones a vector of elements using the Element::clone() function. | |
std::vector< Eigen::MatrixXd > | getElementRotationMatrices (int const space_dimension, int const mesh_dimension, std::vector< Element * > const &elements) |
Element rotation matrix computation. | |
std::vector< double > | getMaxiumElementEdgeLengths (std::vector< Element * > const &elements) |
Returns the maximum lengths of the edges for each element. | |
std::vector< MeshLib::Element * > | getMeshElementsForMaterialIDs (MeshLib::Mesh const &mesh, std::vector< int > const &selected_material_ids) |
template<typename T > | |
PropertyVector< T > * | getOrCreateMeshProperty (Mesh &mesh, std::string const &property_name, MeshItemType const item_type, int const number_of_components) |
int | getSpaceDimension (std::vector< Node * > const &nodes) |
Computes dimension of the embedding space containing the set of given points. | |
void | addIntegrationPointDataToMesh (MeshLib::Mesh &mesh, std::vector< std::unique_ptr< IntegrationPointWriter > > const &integration_point_writer) |
IntegrationPointMetaData | getIntegrationPointMetaData (MeshLib::Properties const &properties, std::string const &name) |
bool | is2DMeshOnRotatedVerticalPlane (Mesh const &mesh) |
void | scaleMeshPropertyVector (MeshLib::Mesh &mesh, std::string const &property_name, double factor) |
void | setMeshSpaceDimension (std::vector< std::unique_ptr< Mesh > > const &meshes) |
std::pair< std::vector< Node * >, std::vector< Element * > > | copyNodesAndElements (std::vector< Element * > const &input_elements) |
unsigned long | computeNumberOfRegularNodes (NodePartitionedMesh const *bulk_mesh, Mesh const *subdomain_mesh) |
std::vector< std::size_t > | computeRegularBaseNodeGlobalNodeIDsOfSubDomainPartition (NodePartitionedMesh const *bulk_mesh, Mesh const *subdomain_mesh) |
std::vector< std::size_t > | computeGhostBaseNodeGlobalNodeIDsOfSubDomainPartition (NodePartitionedMesh const *bulk_mesh, Mesh const *subdomain_mesh, std::vector< std::size_t > const &global_regular_base_node_ids) |
std::vector< std::size_t > | computeNumberOfRegularBaseNodesAtRank (Mesh const *subdomain_mesh) |
std::vector< std::size_t > | computeNumberOfRegularHigherOrderNodesAtRank (Mesh const *subdomain_mesh) |
std::vector< std::size_t > | computeGlobalNodeIDsOfSubDomainPartition (NodePartitionedMesh const *bulk_mesh, Mesh const *subdomain_mesh) |
unsigned long | getNumberOfGlobalNodes (Mesh const *subdomain_mesh) |
std::unique_ptr< NodePartitionedMesh > | transformMeshToNodePartitionedMesh (NodePartitionedMesh const *const bulk_mesh, Mesh const *const subdomain_mesh) |
vtkStandardNewMacro (VtkMappedMeshSource) void VtkMappedMeshSource | |
Variables | |
static constexpr char const * | mesh_item_type_strings [] |
Char array names for all of MeshItemType values. | |
using MeshLib::AllElementTypes |
A list of types listing all mesh element types supported by OGS.
This type alias is intended for template metaprogramming et al., not for direct use/instantiation.
Definition at line 32 of file Elements.h.
using MeshLib::Hex = TemplateElement<MeshLib::HexRule8> |
using MeshLib::Point = TemplateElement<PointRule1> |
using MeshLib::RotationMatrix = Eigen::Matrix<double, 3u, 3u, Eigen::RowMajor> |
Definition at line 24 of file ElementCoordinatesMappingLocal.h.
using MeshLib::Tet = TemplateElement<MeshLib::TetRule4> |
using MeshLib::Tri = TemplateElement<MeshLib::TriRule3> |
|
strong |
Types of mesh elements supported by OpenGeoSys.
Enumerator | |
---|---|
INVALID | |
POINT1 | |
LINE2 | |
LINE3 | |
TRI3 | |
TRI6 | |
QUAD4 | |
QUAD8 | |
QUAD9 | |
TET4 | |
TET10 | |
HEX8 | |
HEX20 | |
HEX27 | |
PRISM6 | |
PRISM15 | |
PRISM18 | |
PYRAMID5 | |
PYRAMID13 | |
enum_length |
Definition at line 42 of file MeshEnums.h.
|
strong |
Types of mesh elements supported by OpenGeoSys. Values are from VTKCellType enum.
Enumerator | |
---|---|
INVALID | |
POINT | |
LINE | |
QUAD | |
HEXAHEDRON | |
TRIANGLE | |
TETRAHEDRON | |
PRISM | |
PYRAMID |
Definition at line 26 of file MeshEnums.h.
|
strong |
Enumerator | |
---|---|
Node | |
Edge | |
Face | |
Cell | |
IntegrationPoint |
Definition at line 21 of file Location.h.
|
strong |
Describes a mesh quality metric.
Enumerator | |
---|---|
INVALID | |
ELEMENTSIZE | |
SIZEDIFFERENCE | |
EDGERATIO | |
EQUIANGLESKEW | |
RADIUSEDGERATIO |
Definition at line 69 of file MeshEnums.h.
|
strong |
Selection of possible interpretations for intensities.
Enumerator | |
---|---|
ELEVATION | |
MATERIALS | |
DATAVECTOR | |
NONE |
Definition at line 82 of file MeshEnums.h.
void MeshLib::addIntegrationPointDataToMesh | ( | MeshLib::Mesh & | mesh, |
std::vector< std::unique_ptr< IntegrationPointWriter > > const & | integration_point_writer ) |
Add integration point data the the mesh's properties.
Adds all integration point data arrays given by the input vector and the corresponding meta data as VTK's field data. Integration point data stored as field data (contrary to point or cell data), as plain double arrays. The data is supplemented with information in JSON format, which is stored as array of characters.
Definition at line 92 of file IntegrationPointWriter.cpp.
References addIntegrationPointData(), and addIntegrationPointMetaData().
void MeshLib::addPropertyToMesh | ( | Mesh & | mesh, |
std::string_view | name, | ||
MeshItemType | item_type, | ||
std::size_t | number_of_components, | ||
std::vector< T > const & | values ) |
Creates a new PropertyVector
in the given mesh and initializes it with the given data. A PropertyVector
with the same name must not exist.
mesh | A Mesh the new ProperyVector will be created in. |
name | A string that contains the name of the new PropertyVector . |
item_type | One of the values MeshLib::MeshItemType::Cell or shows the association of the property values either to Element's / cells or Node's |
number_of_components | the number of components of a property |
values | A vector containing the values that are used for initialization. |
Definition at line 34 of file addPropertyToMesh.h.
References Cell, MeshLib::Properties::createNewPropertyVector(), MeshLib::Mesh::getNumberOfElements(), MeshLib::Mesh::getNumberOfNodes(), MeshLib::Mesh::getProperties(), Node, and OGS_FATAL.
Referenced by MeshToolsLib::addBulkIDPropertiesToMesh(), convert(), createMeshFromElementSelection(), ParameterLib::createRandomFieldMeshElementParameter(), and main().
void MeshLib::applyToPropertyVectors | ( | Properties const & | properties, |
Function | f ) |
Applies a function of the form f(type, name) -> bool for each of the properties names. The type argument is used to call f<decltype(type)>(name). At least one of the functions must return the 'true' value, but at most one is executed.
Returns true if elem is a neighbour of this element and false otherwise.
Definition at line 106 of file Element.cpp.
References MeshLib::Element::getNeighbor(), and MeshLib::Element::getNumberOfNeighbors().
Referenced by MeshLib::Element::addNeighbor().
PropertyVector< std::size_t > const * MeshLib::bulkElementIDs | ( | Mesh const & | mesh | ) |
Definition at line 300 of file Mesh.cpp.
References Cell, getBulkIDString(), MeshLib::Mesh::getProperties(), and MeshLib::Properties::getPropertyVector().
Referenced by ProcessLib::ConstraintDirichletBoundaryCondition::ConstraintDirichletBoundaryCondition(), and ProcessLib::DeactivatedSubdomainDirichlet::getEssentialBCValues().
PropertyVector< std::size_t > const * MeshLib::bulkNodeIDs | ( | Mesh const & | mesh | ) |
Definition at line 292 of file Mesh.cpp.
References getBulkIDString(), MeshLib::Mesh::getProperties(), MeshLib::Properties::getPropertyVector(), and Node.
Referenced by ProcessLib::ConstraintDirichletBoundaryCondition::ConstraintDirichletBoundaryCondition(), computeGhostBaseNodeGlobalNodeIDsOfSubDomainPartition(), computeNumberOfRegularNodes(), computeRegularBaseNodeGlobalNodeIDsOfSubDomainPartition(), ProcessLib::extractInnerAndOuterNodes(), ProcessLib::DeactivatedSubdomainDirichlet::getEssentialBCValues(), NumLib::MeshComponentMap::getSubset(), anonymous_namespace{IdentifySubdomainMesh.cpp}::identifySubdomainMeshElements(), and main().
std::vector< std::vector< Node * > > MeshLib::calculateNodesConnectedByElements | ( | Mesh const & | mesh | ) |
Computes the element-connectivity of nodes. Two nodes i and j are connected if they are shared by an element.
Definition at line 308 of file Mesh.cpp.
References findElementsConnectedToNodes(), MeshLib::Mesh::getNodes(), and idsComparator().
Referenced by MeshLib::NodeAdjacencyTable::createTable(), MeshLib::NodePartitionedMesh::getMaximumNConnectedNodesToNode(), and main().
|
inline |
Definition at line 43 of file Utils.h.
References MathLib::Point3d::asEigenVector3d(), MeshLib::Element::getCellType(), MeshLib::Element::getDimension(), MeshLib::Element::getNode(), MeshLib::FaceRule::getSurfaceNormal(), LINE2, LINE3, and POINT1.
std::string MeshLib::CellType2String | ( | const CellType | t | ) |
Given a MeshElemType this returns the appropriate string.
Definition at line 157 of file MeshEnums.cpp.
References HEX20, HEX27, HEX8, LINE2, LINE3, POINT1, PRISM15, PRISM6, PYRAMID13, PYRAMID5, QUAD4, QUAD8, QUAD9, RETURN_CELL_TYPE_STR, TET10, TET4, TRI3, and TRI6.
Referenced by MeshToolsLib::computeElementVolumeNumerically(), computePointCloudNodes(), MeshToolsLib::convertToLinearMesh(), createElementCoordInterpolatorsForAllElementTypes(), createQuadraticElement(), getBulkElementPoint(), and MeshToolsLib::getNumberOfElementIntegrationPoints().
Clones a vector of elements using the Element::clone() function.
Definition at line 117 of file DuplicateMeshComponents.cpp.
References MeshLib::Element::clone().
Referenced by MeshGeoToolsLib::constructAdditionalMeshesFromGeometries(), copyNodesAndElements(), ProcessLib::createDeactivatedSubdomainMesh(), and createMaterialIDsBasedSubMesh().
std::vector< std::size_t > MeshLib::computeGhostBaseNodeGlobalNodeIDsOfSubDomainPartition | ( | NodePartitionedMesh const * | bulk_mesh, |
Mesh const * | subdomain_mesh, | ||
std::vector< std::size_t > const & | global_regular_base_node_ids ) |
Definition at line 158 of file transformMeshToNodePartitionedMesh.cpp.
References BaseLib::MPI::allgatherv(), BaseLib::MPI::allreduceInplace(), bulkNodeIDs(), DBUG(), MeshLib::NodePartitionedMesh::getGlobalNodeID(), MeshLib::Mesh::getName(), MeshLib::Mesh::getNodes(), MeshLib::views::ids, MeshLib::NodePartitionedMesh::isGhostNode(), BaseLib::MPI::Mpi::rank, and BaseLib::MPI::Mpi::size.
Referenced by computeGlobalNodeIDsOfSubDomainPartition().
std::vector< std::size_t > MeshLib::computeGlobalNodeIDsOfSubDomainPartition | ( | NodePartitionedMesh const * | bulk_mesh, |
Mesh const * | subdomain_mesh ) |
Definition at line 285 of file transformMeshToNodePartitionedMesh.cpp.
References computeGhostBaseNodeGlobalNodeIDsOfSubDomainPartition(), and computeRegularBaseNodeGlobalNodeIDsOfSubDomainPartition().
Referenced by transformMeshToNodePartitionedMesh().
std::vector< std::size_t > MeshLib::computeNumberOfRegularBaseNodesAtRank | ( | Mesh const * | subdomain_mesh | ) |
Definition at line 253 of file transformMeshToNodePartitionedMesh.cpp.
References BaseLib::MPI::allgather(), MeshLib::Mesh::computeNumberOfBaseNodes(), and BaseLib::sizesToOffsets().
Referenced by transformMeshToNodePartitionedMesh().
std::vector< std::size_t > MeshLib::computeNumberOfRegularHigherOrderNodesAtRank | ( | Mesh const * | subdomain_mesh | ) |
Definition at line 268 of file transformMeshToNodePartitionedMesh.cpp.
References BaseLib::MPI::allgather(), MeshLib::Mesh::computeNumberOfBaseNodes(), MeshLib::Mesh::getNumberOfNodes(), and BaseLib::sizesToOffsets().
Referenced by transformMeshToNodePartitionedMesh().
unsigned long MeshLib::computeNumberOfRegularNodes | ( | NodePartitionedMesh const * | bulk_mesh, |
Mesh const * | subdomain_mesh ) |
Definition at line 90 of file transformMeshToNodePartitionedMesh.cpp.
References bulkNodeIDs(), DBUG(), MeshLib::Mesh::getName(), MeshLib::Mesh::getNodes(), and MeshLib::views::ids.
Referenced by computeRegularBaseNodeGlobalNodeIDsOfSubDomainPartition(), and transformMeshToNodePartitionedMesh().
std::vector< std::size_t > MeshLib::computeRegularBaseNodeGlobalNodeIDsOfSubDomainPartition | ( | NodePartitionedMesh const * | bulk_mesh, |
Mesh const * | subdomain_mesh ) |
Definition at line 109 of file transformMeshToNodePartitionedMesh.cpp.
References BaseLib::MPI::allgather(), bulkNodeIDs(), computeNumberOfRegularNodes(), DBUG(), MeshLib::Mesh::getName(), MeshLib::Mesh::getNodes(), MeshLib::views::ids, BaseLib::MPI::Mpi::rank, and BaseLib::sizesToOffsets().
Referenced by computeGlobalNodeIDsOfSubDomainPartition().
std::pair< double, double > MeshLib::computeSqrEdgeLengthRange | ( | Element const & | element | ) |
Compute the minimum and maximum squared edge length for this element.
Definition at line 156 of file Element.cpp.
References MeshLib::Element::getEdgeNode(), MeshLib::Element::getNumberOfEdges(), and MathLib::sqrDist().
Referenced by getMaxiumElementEdgeLengths(), and minMaxEdgeLength().
std::pair< double, double > MeshLib::computeSqrNodeDistanceRange | ( | MeshLib::Element const & | element, |
bool const | check_allnodes ) |
Compute the minimum and maximum node distances for this element.
Definition at line 136 of file Element.cpp.
References MeshLib::Element::getNode(), MeshLib::Element::getNumberOfBaseNodes(), MeshLib::Element::getNumberOfNodes(), and MathLib::sqrDist().
Referenced by MeshGeoToolsLib::HeuristicSearchLength::HeuristicSearchLength(), and MeshGeoToolsLib::snapPointToElementNode().
Element * MeshLib::copyElement | ( | Element const *const | element, |
const std::vector< Node * > & | nodes, | ||
std::vector< std::size_t > const *const | id_map ) |
Copies an element without change, using the nodes vector from the result mesh.
Copies an element without change, using the nodes vector from the result mesh and an optional mapping from the nodes the 'old' elements.
Definition at line 50 of file DuplicateMeshComponents.cpp.
References MathLib::Point3dWithID::getID(), MeshLib::Element::getNode(), and MeshLib::Element::getNumberOfNodes().
Referenced by copyElement(), and MeshToolsLib::MeshRevision::simplifyMesh().
Element * MeshLib::copyElement | ( | Element const *const | element, |
const std::vector< Node * > & | nodes, | ||
std::vector< std::size_t > const *const | id_map = nullptr ) |
Copies an element without change, using the nodes vector from the result mesh and an optional mapping from the nodes the 'old' elements.
Definition at line 73 of file DuplicateMeshComponents.cpp.
References copyElement(), ERR(), MeshLib::Element::getCellType(), HEX20, HEX8, LINE2, LINE3, PRISM15, PRISM6, PYRAMID13, PYRAMID5, QUAD4, QUAD8, QUAD9, TET10, TET4, TRI3, and TRI6.
std::vector< Element * > MeshLib::copyElementVector | ( | std::vector< Element * > const & | elements, |
std::vector< Node * > const & | new_nodes, | ||
std::vector< std::size_t > const *const | node_id_map = nullptr ) |
Creates a deep copy of an element vector using the given Node vector.
elements | The element vector that should be duplicated. |
new_nodes | The new node vector used for the duplicated element vector. |
node_id_map | An optional mapping from the nodes the 'old' elements based on to the new nodes. This should be consistent with the original node vector. |
Definition at line 33 of file DuplicateMeshComponents.cpp.
Referenced by ProcessLib::LIE::PostProcessTool::PostProcessTool(), MeshToolsLib::addLayerToMesh(), MeshGeoToolsLib::appendLinesAlongPolylines(), LayeredVolume::createRasterLayers(), MeshToolsLib::BoundaryExtraction::getBoundaryElementsAsMesh(), MeshToolsLib::MeshSurfaceExtraction::getMeshSurface(), main(), MeshToolsLib::removeElements(), and MeshToolsLib::removeNodes().
std::pair< std::vector< Node * >, std::vector< Element * > > MeshLib::copyNodesAndElements | ( | std::vector< Element * > const & | input_elements | ) |
Definition at line 46 of file transformMeshToNodePartitionedMesh.cpp.
References cloneElements(), MathLib::Point3dWithID::getID(), and Node.
Referenced by transformMeshToNodePartitionedMesh().
Creates a deep copy of a Node vector.
Definition at line 21 of file DuplicateMeshComponents.cpp.
References Node.
Referenced by ProcessLib::LIE::PostProcessTool::PostProcessTool(), MeshToolsLib::addLayerToMesh(), MeshGeoToolsLib::appendLinesAlongPolylines(), MeshToolsLib::createQuadraticOrderMesh(), LayeredVolume::createRasterLayers(), main(), MeshToolsLib::removeElements(), and MeshToolsLib::removeNodes().
std::unique_ptr< MeshLib::Mesh > MeshLib::createMaterialIDsBasedSubMesh | ( | MeshLib::Mesh const & | mesh, |
std::vector< int > const & | material_ids, | ||
std::string const & | name_for_created_mesh ) |
Definition at line 24 of file createMaterialIDsBasedSubMesh.cpp.
References cloneElements(), createMeshFromElementSelection(), and getMeshElementsForMaterialIDs().
Referenced by parseOutputMeshConfig().
std::unique_ptr< Mesh > MeshLib::createMeshFromElementSelection | ( | std::string | mesh_name, |
std::vector< Element * > const & | elements ) |
Creates a new mesh from a vector of elements.
Definition at line 28 of file createMeshFromElementSelection.cpp.
References addPropertyToMesh(), Cell, DBUG(), getBulkIDString(), MathLib::Point3dWithID::getID(), MeshLib::views::ids, and Node.
Referenced by ProcessLib::createDeactivatedSubdomainMesh(), and createMaterialIDsBasedSubMesh().
std::unique_ptr< MeshLib::Mesh > MeshLib::createMeshFromElementSelection | ( | std::string | mesh_name, |
std::vector< Element * > const & | elements ) |
Creates a new mesh from a vector of elements.
Definition at line 28 of file createMeshFromElementSelection.cpp.
References addPropertyToMesh(), Cell, DBUG(), getBulkIDString(), MathLib::Point3dWithID::getID(), MeshLib::views::ids, and Node.
Referenced by ProcessLib::createDeactivatedSubdomainMesh(), and createMaterialIDsBasedSubMesh().
std::vector< std::size_t > MeshLib::filter | ( | Container const & | container, |
Predicate const & | p ) |
Definition at line 27 of file ElementSearch.cpp.
References MeshLib::views::ids.
Referenced by MeshLib::ElementSearch::searchByBoundingBox(), MeshLib::ElementSearch::searchByContent(), and MeshLib::ElementSearch::searchByElementType().
std::vector< std::vector< Element const * > > MeshLib::findElementsConnectedToNodes | ( | Mesh const & | mesh | ) |
Definition at line 45 of file Mesh.cpp.
References MeshLib::Mesh::getElements(), MeshLib::Mesh::getNodes(), and MeshLib::views::ids.
Referenced by MeshLib::Mesh::Mesh(), MeshLib::Mesh::Mesh(), and calculateNodesConnectedByElements().
std::vector< std::size_t > MeshLib::findElementsWithinRadius | ( | Element const & | start_element, |
double const | radius_squared ) |
Find neighbor elements in given radius of the element.
Definition at line 23 of file findElementsWithinRadius.cpp.
References MeshLib::Element::getID(), MeshLib::Element::getNode(), and MeshLib::Element::getNumberOfNodes().
Referenced by ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalLocalAssembler< ShapeFunction, DisplacementDim >::nonlocal().
Mesh & MeshLib::findMeshByName | ( | std::vector< std::unique_ptr< Mesh > > const & | meshes, |
std::string_view const | name ) |
Definition at line 364 of file Mesh.cpp.
References BaseLib::findElementOrError(), and OGS_FATAL.
Referenced by ParameterLib::createParameter(), ProcessLib::SurfaceFluxData::createSurfaceFluxData(), anonymous_namespace{ProcessVariable.cpp}::findMeshInConfig(), ProjectData::getMesh(), parseOutputMeshConfig(), ProjectData::parseProcessVariables(), and ProcessLib::Output::prepareSubmesh().
Returns a vector of node pointers containing the base nodes of the elements input vector.
Definition at line 26 of file Utils.h.
References idsComparator(), and BaseLib::makeVectorUnique().
Referenced by ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::constructDofTable(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::constructDofTable(), ProcessLib::StokesFlow::StokesFlowProcess< GlobalDim >::constructDofTable(), ProcessLib::TH2M::TH2MProcess< DisplacementDim >::constructDofTable(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::constructDofTable(), and ProcessLib::ThermoRichardsMechanics::ThermoRichardsMechanicsProcess< DisplacementDim, ConstitutiveTraits >::constructDofTable().
MathLib::Point3d MeshLib::getBulkElementPoint | ( | MeshLib::CellType const | bulk_element_cell_type, |
std::size_t const | bulk_face_id, | ||
MathLib::WeightedPoint const & | point_on_face ) |
Maps the given point_on_face
on the face a bulk element of type bulk_element_cell_type
to the given point in the bulk element.
The input and output coordinates are natural coordinates of the surface and bulk element, respectively. I.e., the output point has one coordinate more than the input point.
Definition at line 219 of file MapBulkElementPoint.cpp.
References CellType2String(), MathLib::WeightedPoint::getDimension(), HEX8, LINE2, OGS_FATAL, MathLib::ORIGIN, PRISM6, PYRAMID5, QUAD4, TET4, and TRI3.
Referenced by ProcessLib::ConstraintDirichletBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >::ConstraintDirichletBoundaryConditionLocalAssembler(), ProcessLib::HCNonAdvectiveFreeComponentFlowBoundaryConditionLocalAssembler< ShapeFunction, GlobalDim >::assemble(), getBulkElementPoint(), and ProcessLib::SurfaceFluxLocalAssembler< ShapeFunction, GlobalDim >::integrate().
|
inline |
Overload provided for convenience.
Definition at line 36 of file MapBulkElementPoint.h.
References getBulkElementPoint(), and MeshLib::Element::getCellType().
|
constexpr |
Returns the mapping MeshItemType -> bulk ID property name, i.e. MeshItemType::Node -> bulk_node_ids MeshItemType::Cell -> bulk_element_ids MeshItemType::Face -> bulk_face_ids
Definition at line 188 of file Properties.h.
References Cell, Edge, Face, IntegrationPoint, Node, and OGS_FATAL.
Referenced by ProcessLib::GenericNaturalBoundaryCondition< BoundaryConditionData, LocalAssemblerImplementation >::GenericNaturalBoundaryCondition(), ProcessLib::SurfaceFlux::SurfaceFlux(), ProcessLib::addBulkMeshPropertyToSubMesh(), MeshToolsLib::addLayerToMesh(), bulkElementIDs(), bulkNodeIDs(), anonymous_namespace{SubmeshResiduumOutputConfig.cpp}::checkBulkIDMappingsPresent(), ProcessLib::checkParametersOfDirichletBoundaryCondition(), ProcessLib::createHCNonAdvectiveFreeComponentFlowBoundaryCondition(), createMeshFromElementSelection(), ProcessLib::createSourceTerm(), MeshToolsLib::MeshValidation::detectHoles(), DirectConditionGenerator::directWithSurfaceIntegration(), extractBoundaries(), ProcessLib::extractElementsAlongOuterNodes(), getBulkNodeIdMapForPetscIfNecessary(), MeshGeoToolsLib::identifySubdomainMesh(), MeshLib::IO::isVariableAttribute(), main(), ApplicationUtils::NodeWiseMeshPartitioner::partitionOtherMesh(), and ApplicationUtils::NodeWiseMeshPartitioner::renumberBulkIdsProperty().
MathLib::Point3d MeshLib::getCenterOfGravity | ( | Element const & | element | ) |
Calculates the center of gravity for the mesh element.
Definition at line 124 of file Element.cpp.
References MathLib::Point3d::asEigenVector3d(), MeshLib::Element::getNode(), and MeshLib::Element::getNumberOfBaseNodes().
Referenced by MeshToolsLib::MeshGenerator::AddFaultToVoxelGrid::addFaultToVoxelGrid(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::initializeConcreteProcess(), anonymous_namespace{AddFaultToVoxelGrid.cpp}::markFaults(), LayeredVolume::removeCongruentElements(), FileIO::FEFLOWMeshInterface::setMaterialIDs(), setMaterialIDs(), MeshLib::CellRule::testElementNodeOrder(), and FileIO::TetGenInterface::write3dElements().
std::vector< Eigen::MatrixXd > MeshLib::getElementRotationMatrices | ( | int const | space_dimension, |
int const | mesh_dimension, | ||
std::vector< Element * > const & | elements ) |
Element rotation matrix computation.
This function returns a vector containing the rotation matrices of given elements. The rotation matrix of an element is used to map the local vector to the global coordinate system. If an element is not inclined, the identity matrix is used as its rotation matrix.
space_dimension | The space dimension. |
mesh_dimension | The mesh dimension. |
elements | The mesh elements. |
Definition at line 21 of file GetElementRotationMatrices.cpp.
References MeshLib::ElementCoordinatesMappingLocal::getRotationMatrixToGlobal().
Referenced by ProcessLib::ComponentTransport::createComponentTransportProcess(), ProcessLib::HT::createHTProcess(), and ProcessLib::LiquidFlow::createLiquidFlowProcess().
std::vector< int > MeshLib::getEndNodeIDRanks | ( | std::size_t const | n_global_nodes, |
std::vector< std::size_t > const & | n_regular_base_nodes_at_rank, | ||
std::vector< std::size_t > const & | n_regular_high_order_nodes_at_rank ) |
Definition at line 16 of file NodePartitionedMesh.cpp.
IntegrationPointMetaData MeshLib::getIntegrationPointMetaData | ( | MeshLib::Properties const & | properties, |
std::string const & | name ) |
Returns integration point meta data for the given field name.
The data is read from a JSON encoded string stored in field data array.
Definition at line 109 of file IntegrationPointWriter.cpp.
References MeshLib::Properties::existsPropertyVector(), extractIntegrationPointMetaData(), IntegrationPoint, and OGS_FATAL.
Referenced by ApplicationUtils::checkFieldPropertyVectorSize(), ApplicationUtils::copyFieldPropertyDataToPartitions(), createPropertyVector(), determineIntegrationOrder(), MeshToolsLib::getIntegrationPointDataOffsetsOfMeshElements(), and ApplicationUtils::setIntegrationPointNumberOfPartition().
std::vector< double > MeshLib::getMaxiumElementEdgeLengths | ( | std::vector< Element * > const & | elements | ) |
Returns the maximum lengths of the edges for each element.
Definition at line 19 of file getMaxiumElementEdgeLengths.cpp.
References computeSqrEdgeLengthRange(), and POINT.
Referenced by NumLib::createNumericalStabilization().
std::vector< MeshLib::Element * > MeshLib::getMeshElementsForMaterialIDs | ( | MeshLib::Mesh const & | mesh, |
std::vector< int > const & | selected_material_ids ) |
Definition at line 21 of file getMeshElementsForMaterialIDs.cpp.
References MeshLib::Mesh::getElements(), and materialIDs().
Referenced by createMaterialIDsBasedSubMesh().
std::vector< MeshElemType > MeshLib::getMeshElemTypes | ( | ) |
Returns a vector of all mesh element types.
Definition at line 132 of file MeshEnums.cpp.
References HEXAHEDRON, LINE, POINT, PRISM, PYRAMID, QUAD, TETRAHEDRON, and TRIANGLE.
Referenced by MeshModel::createMeshElemTypeMap(), and getMeshElemTypeStringsShort().
std::vector< std::string > MeshLib::getMeshElemTypeStringsShort | ( | ) |
Returns a vector of strings of mesh element types.
Definition at line 146 of file MeshEnums.cpp.
References getMeshElemTypes().
Referenced by main().
unsigned MeshLib::getNodeIDinElement | ( | Element const & | element, |
const MeshLib::Node * | node ) |
Returns the position of the given node in the node array of this element.
Definition at line 206 of file Element.cpp.
References MeshLib::Element::getNode(), and MeshLib::Element::getNumberOfNodes().
Referenced by isBaseNode().
std::size_t MeshLib::getNodeIndex | ( | Element const & | element, |
unsigned | idx ) |
Get the global node index of the node with the local index idx within the element. The index should be at most the number of nodes of the element.
element | The element object that will be searched for the index. |
idx | Local index of Node, at most the number of nodes of the element that you can obtain with Element::getNumberOfBaseNodes(). |
Definition at line 219 of file Element.cpp.
References ERR(), MathLib::Point3dWithID::getID(), MeshLib::Element::getNode(), and MeshLib::Element::getNumberOfNodes().
Referenced by anonymous_namespace{IdentifySubdomainMesh.cpp}::identifySubdomainMeshElements(), and MeshLib::NodeSearch::searchNodesConnectedToOnlyGivenElements().
unsigned long MeshLib::getNumberOfGlobalNodes | ( | Mesh const * | subdomain_mesh | ) |
Definition at line 316 of file transformMeshToNodePartitionedMesh.cpp.
References BaseLib::MPI::allreduce(), DBUG(), MeshLib::Mesh::getName(), and MeshLib::Mesh::getNodes().
Referenced by transformMeshToNodePartitionedMesh().
PropertyVector< T > * MeshLib::getOrCreateMeshProperty | ( | Mesh & | mesh, |
std::string const & | property_name, | ||
MeshItemType const | item_type, | ||
int const | number_of_components ) |
Definition at line 25 of file getOrCreateMeshProperty.h.
References Cell, MeshLib::Properties::existsPropertyVector(), MeshLib::Mesh::getNumberOfElements(), MeshLib::Mesh::getNumberOfNodes(), MeshLib::Mesh::getProperties(), IntegrationPoint, Node, and OGS_FATAL.
Referenced by ProcessLib::ComponentTransport::ComponentTransportProcess::ComponentTransportProcess(), ProcessLib::HeatConduction::HeatConductionProcess::HeatConductionProcess(), ProcessLib::LargeDeformation::LargeDeformationProcess< DisplacementDim >::LargeDeformationProcess(), ProcessLib::LiquidFlow::LiquidFlowProcess::LiquidFlowProcess(), ProcessLib::PhaseField::PhaseFieldProcess< DisplacementDim >::PhaseFieldProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::RichardsMechanicsProcess(), ProcessLib::SmallDeformationNonlocal::SmallDeformationNonlocalProcess< DisplacementDim >::SmallDeformationNonlocalProcess(), ProcessLib::SmallDeformation::SmallDeformationProcess< DisplacementDim >::SmallDeformationProcess(), ProcessLib::SolutionDependentDirichletBoundaryCondition::SolutionDependentDirichletBoundaryCondition(), ProcessLib::SurfaceFluxData::SurfaceFluxData(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::ThermoHydroMechanicsProcess(), ProcessLib::ThermoMechanics::ThermoMechanicsProcess< DisplacementDim >::ThermoMechanicsProcess(), ProcessLib::ThermoRichardsFlow::ThermoRichardsFlowProcess::ThermoRichardsFlowProcess(), ProcessLib::addBulkMeshPropertyToSubMesh(), FileIO::Gocad::GocadSGridReader::addGocadPropertiesToMesh(), addIntegrationPointData(), addIntegrationPointMetaData(), addOgsVersion(), addPrimaryVariablesToMesh(), FileIO::SwmmInterface::addResultsToMesh(), addSecondaryVariableNodes(), addSecondaryVariableResiduals(), ChemistryLib::PhreeqcIOData::createAqueousSolution(), ChemistryLib::PhreeqcIOData::createEquilibriumReactants(), ChemistryLib::PhreeqcKernelData::createEquilibriumReactants(), ChemistryLib::PhreeqcIOData::createExchange(), ChemistryLib::PhreeqcIOData::createKineticReactants(), ChemistryLib::PhreeqcKernelData::createKineticReactants(), ProcessLib::LIE::PostProcessTool::createProperty(), createPropertyVector(), anonymous_namespace{AssemblyMixin.cpp}::createResiduumVectors(), ChemistryLib::PhreeqcIOData::createSurface(), ChemistryLib::PhreeqcIOData::createUserPunch(), OGSMesh::getCellDataArray(), ProcessLib::CellAverageData::getOrCreatePropertyVector(), OGSMesh::getPointDataArray(), ProcessLib::ComponentTransport::ComponentTransportProcess::initializeConcreteProcess(), ProcessLib::HydroMechanics::HydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::initializeConcreteProcess(), ProcessLib::LIE::SmallDeformation::SmallDeformationProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::RichardsMechanics::RichardsMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::StokesFlow::StokesFlowProcess< GlobalDim >::initializeConcreteProcess(), ProcessLib::TH2M::TH2MProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermoHydroMechanics::ThermoHydroMechanicsProcess< DisplacementDim >::initializeConcreteProcess(), ProcessLib::ThermoRichardsFlow::ThermoRichardsFlowProcess::initializeConcreteProcess(), ProcessLib::ThermoRichardsMechanics::ThermoRichardsMechanicsProcess< DisplacementDim, ConstitutiveTraits >::initializeConcreteProcess(), ProcessLib::WellboreSimulator::WellboreSimulatorProcess::initializeConcreteProcess(), ProcessLib::SurfaceFluxData::integrate(), ProcessLib::LIE::HydroMechanics::HydroMechanicsProcess< GlobalDim >::postTimestepConcreteProcess(), MeshToolsLib::processPropertyVector(), MeshGeoToolsLib::resetMeshElementProperty(), OGSMesh::setCellDataArray(), and OGSMesh::setPointDataArray().
int MeshLib::getSpaceDimension | ( | std::vector< Node * > const & | nodes | ) |
Computes dimension of the embedding space containing the set of given points.
The space dimension is computed by accounting the non-zero norms of \(\mathbf x\), \(\mathbf y\), \(\mathbf z\), which are the coordinates of all nodes of the mesh. With this concept, the space dimension is:
Definition at line 23 of file GetSpaceDimension.cpp.
Referenced by ProcessLib::ComponentTransport::createComponentTransportProcess(), ProcessLib::HeatConduction::createHeatConductionProcess(), ProcessLib::HT::createHTProcess(), ProcessLib::LiquidFlow::createLiquidFlowProcess(), and setMeshSpaceDimension().
Create a vector of unique nodes used by given elements.
Definition at line 163 of file NodeSearch.cpp.
bool MeshLib::hasZeroVolume | ( | MeshLib::Element const & | element | ) |
Returns true if the element has zero length/area/volume.
Definition at line 119 of file Element.cpp.
References MeshLib::Element::getContent().
Referenced by MeshLib::HexRule::validate(), MeshLib::LineRule::validate(), MeshLib::PointRule1::validate(), MeshLib::PrismRule::validate(), MeshLib::PyramidRule::validate(), MeshLib::QuadRule::validate(), MeshLib::TetRule::validate(), and MeshLib::TriRule::validate().
bool MeshLib::idsComparator | ( | T const | a, |
T const | b ) |
Lexicographic comparison of ids of two objects of type T. T can be a pointer or a value type.
Definition at line 206 of file Mesh.h.
Referenced by calculateNodesConnectedByElements(), getBaseNodes(), ProcessLib::HeatTransportBHE::getBHEDataInMesh(), ProcessLib::LIE::getFractureMatrixDataInMesh(), and reorderNonlinearNodes().
bool MeshLib::is2DMeshOnRotatedVerticalPlane | ( | Mesh const & | mesh | ) |
Definition at line 24 of file Is2DMeshOnRotatedVerticalPlane.cpp.
References MeshLib::Mesh::getDimension(), MeshLib::Mesh::getElements(), MeshLib::Mesh::getName(), and OGS_FATAL.
Referenced by ProcessLib::HydroMechanics::createHydroMechanicsProcess().
bool MeshLib::isBaseNode | ( | Node const & | node, |
std::vector< Element const * > const & | elements_connected_to_node ) |
Returns true if the given node is a base node of a (first) element, or if it is not connected to any element i.e. an unconnected node.
Definition at line 346 of file Mesh.cpp.
References getNodeIDinElement().
Referenced by MeshGeoToolsLib::MeshNodesOnPoint::MeshNodesOnPoint(), MeshLib::Mesh::computeNumberOfBaseNodes(), NumLib::MeshComponentMap::createParallelMeshComponentMap(), and NumLib::MeshComponentMap::getSubset().
bool MeshLib::isPointInElementXY | ( | MathLib::Point3d const & | p, |
Element const & | e ) |
Let \(p'\) the orthogonal projection to the \(x\)- \(y\) plane of the point p
and \(e'\) the orthogonal projection to the \(x\)- \(y\) plane of the element e
. The method checks if \(p'\) is located in \(e'\).
p | MathLib::Point3d is the test point |
e | the element that is used for the request |
Definition at line 171 of file Element.cpp.
References MeshLib::Element::getGeomType(), MeshLib::Element::getNode(), MeshLib::Element::getNumberOfBaseNodes(), MathLib::isPointInTriangleXY(), MeshElemType2String(), QUAD, MathLib::sqrDist2d(), TRIANGLE, and WARN().
Referenced by MeshToolsLib::Mesh2MeshPropertyInterpolation::interpolatePropertiesForMesh().
PropertyVector< int > * MeshLib::materialIDs | ( | Mesh & | mesh | ) |
Definition at line 286 of file Mesh.cpp.
References materialIDs().
PropertyVector< int > const * MeshLib::materialIDs | ( | Mesh const & | mesh | ) |
Returns the material ids property vector defined on the mesh.
The material ids are always an int
property named "MaterialIDs". If the property does not exists (or is of different type), a nullptr is returned.
Definition at line 268 of file Mesh.cpp.
References Cell, MeshLib::Mesh::getProperties(), MeshLib::Properties::getPropertyVector(), and WARN().
Referenced by ProcessLib::HeatTransportBHE::HeatTransportBHEProcess::HeatTransportBHEProcess(), AddFaultsToVoxelGridDialog::accept(), ProcessLib::LIE::anonymous_namespace{MeshUtils.cpp}::findFracutreIntersections(), ProcessLib::HeatTransportBHE::getBHEDataInMesh(), MeshToolsLib::MeshInformation::getMaterialIDs(), getMeshElementsForMaterialIDs(), main(), anonymous_namespace{AddFaultToVoxelGrid.cpp}::markFaults(), markSpecificElements(), and materialIDs().
std::string MeshLib::MeshElemType2String | ( | const MeshElemType | t | ) |
Given a MeshElemType this returns the appropriate string.
Definition at line 21 of file MeshEnums.cpp.
References HEXAHEDRON, LINE, POINT, PRISM, PYRAMID, QUAD, TETRAHEDRON, and TRIANGLE.
Referenced by MeshModel::createMeshElemTypeMap(), MeshLib::TemplateElement< ELEMENT_RULE >::getNode(), MeshLib::TemplateElement< ELEMENT_RULE >::getNode(), isPointInElementXY(), ElementTreeModel::setMesh(), and MeshToolsLib::MeshInformation::writeAllNumbersOfElementTypes().
std::string MeshLib::MeshElemType2StringShort | ( | const MeshElemType | t | ) |
Given a MeshElemType this returns the appropriate string with a short name.
Definition at line 58 of file MeshEnums.cpp.
References HEXAHEDRON, LINE, POINT, PRISM, PYRAMID, QUAD, TETRAHEDRON, and TRIANGLE.
std::string MeshLib::MeshQualityType2String | ( | const MeshQualityType | t | ) |
Definition at line 186 of file MeshEnums.cpp.
References EDGERATIO, ELEMENTSIZE, EQUIANGLESKEW, RADIUSEDGERATIO, and SIZEDIFFERENCE.
std::pair< double, double > MeshLib::minMaxEdgeLength | ( | std::vector< Element * > const & | elements | ) |
Returns the minimum and maximum edge length for given elements.
Definition at line 189 of file Mesh.cpp.
References computeSqrEdgeLengthRange().
Lexicographic order of Location.
Definition at line 51 of file Location.h.
References MeshLib::Location::item_id, MeshLib::Location::item_type, and MeshLib::Location::mesh_id.
std::ostream & MeshLib::operator<< | ( | std::ostream & | os, |
Element const & | e ) |
Definition at line 88 of file Element.cpp.
std::ostream & MeshLib::operator<< | ( | std::ostream & | os, |
Location const & | l ) |
Definition at line 35 of file Location.cpp.
References MeshLib::Location::item_id, MeshLib::Location::item_type, and MeshLib::Location::mesh_id.
std::ostream & MeshLib::operator<< | ( | std::ostream & | os, |
MeshItemType const & | t ) |
Definition at line 17 of file Location.cpp.
References Cell, Edge, Face, IntegrationPoint, and Node.
Meshes are equal if their id's are equal.
Definition at line 174 of file Mesh.h.
References MeshLib::Mesh::getID().
void MeshLib::scaleMeshPropertyVector | ( | Mesh & | mesh, |
std::string const & | property_name, | ||
double | factor ) |
Scales the mesh property with name property_name
by given factor
.
Definition at line 18 of file scaleMeshPropertyVector.cpp.
References MeshLib::Properties::existsPropertyVector(), MeshLib::Mesh::getProperties(), MeshLib::Properties::getPropertyVector(), and WARN().
Referenced by main().
void MeshLib::setMeshSpaceDimension | ( | std::vector< std::unique_ptr< Mesh > > const & | meshes | ) |
In this function, the dimension of the space, which contains all nodes of the bulk mesh, is computed, and it is then set as a member of the elements of all meshes.
The space dimension is needed for the numerical simulations with a bulk mesh with elements with different dimensions. For example, in a bulk mesh for the numerical simulation of the liquid flow in the fractured porous media, the 1D or 2D elements can be used to represent the fractures, while the elements with higher dimension can be used to discretise the porous medium matrix domain.
meshes | All meshes include the bulk mesh and the meshes for boundary conditions. |
Definition at line 22 of file SetMeshSpaceDimension.cpp.
References getNodes(), and getSpaceDimension().
Referenced by anonymous_namespace{ProjectData.cpp}::readMeshes().
MeshElemType MeshLib::String2MeshElemType | ( | const std::string & | s | ) |
Given a string of the shortened name of the element type, this returns the corresponding MeshElemType.
Definition at line 95 of file MeshEnums.cpp.
References HEXAHEDRON, INVALID, LINE, POINT, PRISM, PYRAMID, QUAD, TETRAHEDRON, and TRIANGLE.
Referenced by MeshElementRemovalDialog::accept(), main(), and anonymous_namespace{MeshIO.cpp}::readElement().
MeshLib::MeshQualityType MeshLib::String2MeshQualityType | ( | std::string const & | s | ) |
Definition at line 211 of file MeshEnums.cpp.
References EDGERATIO, ELEMENTSIZE, EQUIANGLESKEW, INVALID, RADIUSEDGERATIO, and SIZEDIFFERENCE.
Referenced by main().
|
staticconstexpr |
Returns a char array for a specific MeshItemType.
Definition at line 28 of file Location.h.
References mesh_item_type_strings.
Referenced by MeshLib::IO::NodePartitionedMeshReader::readProperties().
std::unique_ptr< MeshLib::NodePartitionedMesh > MeshLib::transformMeshToNodePartitionedMesh | ( | NodePartitionedMesh const *const | bulk_mesh, |
Mesh const *const | subdomain_mesh ) |
Function computes all information necessary to transform the MeshLib::Mesh mesh into a NodePartitionedMesh subdomain mesh. Additional to the usual name, nodes and elements, the following information is computed:
Definition at line 326 of file transformMeshToNodePartitionedMesh.cpp.
References computeGlobalNodeIDsOfSubDomainPartition(), computeNumberOfRegularBaseNodesAtRank(), computeNumberOfRegularHigherOrderNodesAtRank(), computeNumberOfRegularNodes(), copyNodesAndElements(), DBUG(), MeshLib::Mesh::getElements(), MeshLib::Mesh::getName(), getNumberOfGlobalNodes(), and MeshLib::Mesh::getProperties().
Referenced by MeshGeoToolsLib::constructAdditionalMeshesFromGeometries(), and parseOutputMeshConfig().
MeshLib::vtkStandardNewMacro | ( | VtkMappedMeshSource | ) |
Definition at line 32 of file VtkMappedMeshSource.cpp.
References MeshLib::VtkMappedMeshSource::_mesh, and MeshLib::Mesh::getName().
|
staticconstexpr |
Char array names for all of MeshItemType values.
Definition at line 24 of file Location.h.
Referenced by toString().