![]() |
OGS
|
A subdomain mesh.
Definition at line 28 of file NodePartitionedMesh.h.
#include <NodePartitionedMesh.h>
Public Member Functions | |
| NodePartitionedMesh (const Mesh &mesh) | |
| NodePartitionedMesh (const std::string &name, const std::vector< Node * > &nodes, const std::vector< std::size_t > &glb_node_ids, const std::vector< Element * > &elements, Properties const &properties, const std::size_t n_global_base_nodes, const std::size_t n_global_nodes, const std::size_t n_regular_nodes, std::vector< std::size_t > &&n_regular_base_nodes_at_rank, std::vector< std::size_t > &&n_regular_high_order_nodes_at_rank) | |
| Constructor. | |
| std::size_t | getNumberOfGlobalBaseNodes () const |
| Get the number of nodes of the global mesh for linear elements. | |
| std::size_t | getNumberOfGlobalNodes () const |
| Get the number of all nodes of the global mesh. | |
| std::size_t | getGlobalNodeID (const std::size_t node_id) const |
| Get the global node ID of a node with its local ID. | |
| std::size_t | getNumberOfRegularNodes () const |
| Get the number of all regular nodes of the partition. | |
| bool | isGhostNode (const std::size_t node_id) const |
| Check whether a node with ID of node_id is a ghost node. | |
| std::size_t | getNumberOfRegularBaseNodesAtRank (int const partition_id) const |
| std::size_t | getNumberOfRegularHighOrderNodesAtRank (int const partition_id) const |
| std::size_t | getMaximumNConnectedNodesToNode () const |
| Get the maximum number of connected nodes to node. | |
| std::size_t | getPartitionID (const std::size_t global_node_id) const |
| int | getNumberOfPartitions () const |
| bool | isForSingleThread () const |
Public Member Functions inherited from MeshLib::Mesh | |
| Mesh (std::string name, std::vector< Node * > nodes, std::vector< Element * > elements, bool const compute_element_neighbors=false, Properties const &properties=Properties()) | |
| Mesh (const Mesh &mesh) | |
| Copy constructor. | |
| Mesh (Mesh &&mesh) | |
| Mesh & | operator= (const Mesh &mesh)=delete |
| Mesh & | operator= (Mesh &&mesh)=delete |
| virtual | ~Mesh () |
| Destructor. | |
| void | shallowClean () |
| void | addElement (Element *elem) |
| Add an element to the mesh. | |
| unsigned | getDimension () const |
| Returns the dimension of the mesh (determined by the maximum dimension over all elements). | |
| const Node * | getNode (std::size_t idx) const |
| Get the node with the given index. | |
| const Element * | getElement (std::size_t idx) const |
| Get the element with the given index. | |
| std::size_t | getNumberOfElements () const |
| Get the number of elements. | |
| std::size_t | getNumberOfNodes () const |
| Get the number of nodes. | |
| const std::string | getName () const |
| Get name of the mesh. | |
| std::vector< Node * > const & | getNodes () const |
| Get the nodes-vector for the mesh. | |
| std::vector< Element * > const & | getElements () const |
| Get the element-vector for the mesh. | |
| void | resetElementIDs () |
| Resets the IDs of all mesh-elements to their position in the element vector. | |
| void | resetNodeIDs () |
| Resets the IDs of all mesh-nodes to their position in the node vector. | |
| void | setName (const std::string &name) |
| Changes the name of the mesh. | |
| std::size_t | getID () const |
| Get id of the mesh. | |
| std::size_t | computeNumberOfBaseNodes () const |
| Get the number of base nodes. | |
| bool | hasNonlinearElement () const |
| Check if the mesh contains any nonlinear element. | |
| std::vector< Element const * > const & | getElementsConnectedToNode (std::size_t node_id) const |
| std::vector< Element const * > const & | getElementsConnectedToNode (Node const &node) const |
| Properties & | getProperties () |
| Properties const & | getProperties () const |
| bool | isAxiallySymmetric () const |
| void | setAxiallySymmetric (bool is_axial_symmetric) |
Private Attributes | |
| std::vector< std::size_t > | _global_node_ids |
| Global IDs of nodes of a partition. | |
| std::size_t | _n_global_base_nodes |
| Number of the nodes of the global mesh linear interpolations. | |
| std::size_t | _n_global_nodes |
| Number of all nodes of the global mesh. | |
| std::size_t | _n_regular_nodes |
| Number of the all regular nodes. | |
| std::vector< std::size_t > | _n_regular_base_nodes_at_rank |
| std::vector< std::size_t > | _n_regular_high_order_nodes_at_rank |
| Gathered numbers of the all regular high order nodes of all partitions. | |
| std::vector< int > | _end_node_id_at_rank |
| Gathered the end node id of each rank. | |
| const bool | _is_single_thread |
Additional Inherited Members | |
Protected Member Functions inherited from MeshLib::Mesh | |
| void | calcEdgeLengthRange () |
| Set the minimum and maximum length over the edges of the mesh. | |
| void | setDimension () |
| Sets the dimension of the mesh. | |
| void | setElementNeighbors () |
Protected Attributes inherited from MeshLib::Mesh | |
| std::size_t const | _id |
| unsigned | _mesh_dimension |
| std::pair< double, double > | _node_distance |
| The minimal and maximal distance of nodes within an element over all elements in the mesh. | |
| std::string | _name |
| std::vector< Node * > | _nodes |
| std::vector< Element * > | _elements |
| Properties | _properties |
| std::vector< std::vector< Element const * > > | _elements_connected_to_nodes |
| bool | _is_axially_symmetric = false |
| bool const | _compute_element_neighbors |
|
inlineexplicit |
Definition at line 34 of file NodePartitionedMesh.h.
References _global_node_ids, MeshLib::Mesh::_nodes, and MeshLib::Mesh::getID().
| MeshLib::NodePartitionedMesh::NodePartitionedMesh | ( | const std::string & | name, |
| const std::vector< Node * > & | nodes, | ||
| const std::vector< std::size_t > & | glb_node_ids, | ||
| const std::vector< Element * > & | elements, | ||
| Properties const & | properties, | ||
| const std::size_t | n_global_base_nodes, | ||
| const std::size_t | n_global_nodes, | ||
| const std::size_t | n_regular_nodes, | ||
| std::vector< std::size_t > && | n_regular_base_nodes_at_rank, | ||
| std::vector< std::size_t > && | n_regular_high_order_nodes_at_rank ) |
Constructor.
| name | Name assigned to the mesh. |
| nodes | Vector for nodes, which storage looks like: |regular base nodes|ghost base nodes| ... ... regular higher order nodes| ... ... ghost higher order nodes| |
| glb_node_ids | Global IDs of nodes of a partition. |
| elements | Vector for elements. Ghost elements are stored after regular (non-ghost) elements. |
| properties | Mesh property. |
| n_global_base_nodes | Number of the base nodes of the global mesh. |
| n_global_nodes | Number of all nodes of the global mesh. |
| n_regular_nodes | Number of all regular nodes. |
| n_regular_base_nodes_at_rank | Numbers of the regular base nodes of all previous ranks. |
| n_regular_high_order_nodes_at_rank | Numbers of the regular high order nodes of all previous ranks. |
Definition at line 33 of file NodePartitionedMesh.cpp.
|
inline |
Get the global node ID of a node with its local ID.
Definition at line 89 of file NodePartitionedMesh.h.
References _global_node_ids.
Referenced by MeshLib::computeGhostBaseNodeGlobalNodeIDsOfSubDomainPartition(), and NumLib::MeshComponentMap::createParallelMeshComponentMap().
| std::size_t MeshLib::NodePartitionedMesh::getMaximumNConnectedNodesToNode | ( | ) | const |
Get the maximum number of connected nodes to node.
Definition at line 65 of file NodePartitionedMesh.cpp.
References MeshLib::calculateNodesConnectedByElements().
|
inline |
Get the number of nodes of the global mesh for linear elements.
Definition at line 81 of file NodePartitionedMesh.h.
References _n_global_base_nodes.
Referenced by NumLib::MeshComponentMap::createParallelMeshComponentMap().
|
inline |
Get the number of all nodes of the global mesh.
Definition at line 87 of file NodePartitionedMesh.h.
References _n_global_nodes.
Referenced by NumLib::MeshComponentMap::createParallelMeshComponentMap().
|
inline |
Definition at line 116 of file NodePartitionedMesh.h.
References _n_regular_base_nodes_at_rank.
|
inline |
Definition at line 99 of file NodePartitionedMesh.h.
References _n_regular_base_nodes_at_rank.
Referenced by NumLib::getGlobalIndexWithTaylorHoodElement().
|
inline |
Definition at line 104 of file NodePartitionedMesh.h.
References _n_regular_high_order_nodes_at_rank.
Referenced by NumLib::getGlobalIndexWithTaylorHoodElement().
|
inline |
Get the number of all regular nodes of the partition.
Definition at line 95 of file NodePartitionedMesh.h.
References _n_regular_nodes.
| std::size_t MeshLib::NodePartitionedMesh::getPartitionID | ( | const std::size_t | global_node_id | ) | const |
Definition at line 77 of file NodePartitionedMesh.cpp.
References _end_node_id_at_rank.
Referenced by NumLib::getGlobalIndexWithTaylorHoodElement().
|
inline |
Definition at line 121 of file NodePartitionedMesh.h.
References _is_single_thread.
Referenced by NumLib::MeshComponentMap::MeshComponentMap().
| bool MeshLib::NodePartitionedMesh::isGhostNode | ( | const std::size_t | node_id | ) | const |
Check whether a node with ID of node_id is a ghost node.
Definition at line 60 of file NodePartitionedMesh.cpp.
References _n_regular_nodes.
Referenced by MeshLib::computeGhostBaseNodeGlobalNodeIDsOfSubDomainPartition(), NumLib::MeshComponentMap::createParallelMeshComponentMap(), and anonymous_namespace{transformMeshToNodePartitionedMesh.cpp}::isRegularNode().
|
private |
Gathered the end node id of each rank.
Definition at line 144 of file NodePartitionedMesh.h.
Referenced by getPartitionID().
|
private |
Global IDs of nodes of a partition.
Definition at line 125 of file NodePartitionedMesh.h.
Referenced by NodePartitionedMesh(), and getGlobalNodeID().
|
private |
Definition at line 146 of file NodePartitionedMesh.h.
Referenced by isForSingleThread().
|
private |
Number of the nodes of the global mesh linear interpolations.
Definition at line 128 of file NodePartitionedMesh.h.
Referenced by getNumberOfGlobalBaseNodes().
|
private |
Number of all nodes of the global mesh.
Definition at line 131 of file NodePartitionedMesh.h.
Referenced by getNumberOfGlobalNodes().
|
private |
Gathered numbers of the regular nodes for linear interpolations of all partitions.
Definition at line 138 of file NodePartitionedMesh.h.
Referenced by getNumberOfPartitions(), and getNumberOfRegularBaseNodesAtRank().
|
private |
Gathered numbers of the all regular high order nodes of all partitions.
Definition at line 141 of file NodePartitionedMesh.h.
Referenced by getNumberOfRegularHighOrderNodesAtRank().
|
private |
Number of the all regular nodes.
Definition at line 134 of file NodePartitionedMesh.h.
Referenced by getNumberOfRegularNodes(), and isGhostNode().