    

 ## On this page

  

 

 # VolumeMesh

 Last update: 17.07.2025 

<a id="l00001" name="l00001"></a> 1/\*

<a id="l00002" name="l00002"></a> 2 \* Copyright ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.

<a id="l00003" name="l00003"></a> 3 \*/

<a id="l00004" name="l00004"></a> 4 

<a id="l00005" name="l00005"></a> 5\#pragma once

<a id="l00006" name="l00006"></a> 6 

<a id="l00007" name="l00007"></a> 7\#include "SystemCouplingParticipant/LibraryType.hpp"

<a id="l00008" name="l00008"></a> 8 

<a id="l00009" name="l00009"></a> 9\#include "SystemCouplingParticipant/CommonTypes.hpp"

<a id="l00010" name="l00010"></a> 10\#include "SystemCouplingParticipant/MeshDefinition.hpp"

<a id="l00011" name="l00011"></a> 11\#include "SystemCouplingParticipant/OutputIntegerData.hpp"

<a id="l00012" name="l00012"></a> 12\#include "SystemCouplingParticipant/OutputVectorData.hpp"

<a id="l00013" name="l00013"></a> 13 

<a id="l00014" name="l00014"></a> 14\#include &lt;cstddef&gt;

<a id="l00015" name="l00015"></a> 15 

<a id="l00016" name="l00016"></a> 16namespace sysc {

<a id="l00017" name="l00017"></a> 17 

<a id="l00026" name="l00026"></a>[ 26](classsysc_1_1VolumeMesh.xhtml)class SYSTEM_COUPLING_PARTICIPANT_DLL [VolumeMesh](classsysc_1_1VolumeMesh.xhtml) {

<a id="l00027" name="l00027"></a> 27public:

<a id="l00029" name="l00029"></a>[ 29](classsysc_1_1VolumeMesh.xhtml#adbab9e5317965d98b0e6b02c6ccce7b5) std::int64_t connectivityStamp{0};

<a id="l00030" name="l00030"></a> 30 

<a id="l00032" name="l00032"></a>[ 32](classsysc_1_1VolumeMesh.xhtml#a6415bcc1a32f7374c51d4894d68e338e) std::int64_t coordinatesStamp{0};

<a id="l00033" name="l00033"></a> 33 

<a id="l00035" name="l00035"></a>[ 35](classsysc_1_1VolumeMesh.xhtml#a9cf06f19acd1b0c3d0003f56ba7df89a) std::int64_t partitioningStamp{0};

<a id="l00036" name="l00036"></a> 36 

<a id="l00038" name="l00038"></a>[ 38](classsysc_1_1VolumeMesh.xhtml#ab01007a2dcb32f1a91b0ca7a26c94afb) [VolumeMesh](classsysc_1_1VolumeMesh.xhtml#ab01007a2dcb32f1a91b0ca7a26c94afb)(

<a id="l00039" name="l00039"></a> 39 [NodeData](structsysc_1_1NodeData.xhtml) nodeData,

<a id="l00040" name="l00040"></a> 40 [CellData](structsysc_1_1CellData.xhtml) cellData);

<a id="l00041" name="l00041"></a> 41 

<a id="l00043" name="l00043"></a>[ 43](classsysc_1_1VolumeMesh.xhtml#abb0f3e38d18bdfe8128e71da0dcf235f) [VolumeMesh](classsysc_1_1VolumeMesh.xhtml#abb0f3e38d18bdfe8128e71da0dcf235f)(

<a id="l00044" name="l00044"></a> 44 [NodeData](structsysc_1_1NodeData.xhtml) nodeData,

<a id="l00045" name="l00045"></a> 45 [FaceData](structsysc_1_1FaceData.xhtml) faceData,

<a id="l00046" name="l00046"></a> 46 [CellData](structsysc_1_1CellData.xhtml) cellData);

<a id="l00047" name="l00047"></a> 47 

<a id="l00049" name="l00049"></a>[ 49](classsysc_1_1VolumeMesh.xhtml#a714cfafbfb04be14720a195cc7590470) [VolumeMesh](classsysc_1_1VolumeMesh.xhtml#a714cfafbfb04be14720a195cc7590470)() = default;

<a id="l00050" name="l00050"></a> 50 

<a id="l00052" name="l00052"></a>[ 52](classsysc_1_1VolumeMesh.xhtml#ab3261c84e62bdcf25d92b69cbefb1cba) [VolumeMesh](classsysc_1_1VolumeMesh.xhtml#ab3261c84e62bdcf25d92b69cbefb1cba)(const [VolumeMesh](classsysc_1_1VolumeMesh.xhtml)&amp;) = default;

<a id="l00053" name="l00053"></a> 53 

<a id="l00055" name="l00055"></a>[ 55](classsysc_1_1VolumeMesh.xhtml#af2f6fc62a27f5d69af987a82a8154e45) [VolumeMesh](classsysc_1_1VolumeMesh.xhtml#af2f6fc62a27f5d69af987a82a8154e45)([VolumeMesh](classsysc_1_1VolumeMesh.xhtml)&amp;&amp;) = default;

<a id="l00056" name="l00056"></a> 56 

<a id="l00058" name="l00058"></a>[ 58](classsysc_1_1VolumeMesh.xhtml#a2d10ecc188f06130c0b5a5182654a3af) [VolumeMesh](classsysc_1_1VolumeMesh.xhtml)&amp; [operator=](classsysc_1_1VolumeMesh.xhtml#a2d10ecc188f06130c0b5a5182654a3af)(const [VolumeMesh](classsysc_1_1VolumeMesh.xhtml)&amp;) = default;

<a id="l00059" name="l00059"></a> 59 

<a id="l00061" name="l00061"></a>[ 61](classsysc_1_1VolumeMesh.xhtml#a8095db508df29f9ccfcefaf52bc6862d) [VolumeMesh](classsysc_1_1VolumeMesh.xhtml)&amp; [operator=](classsysc_1_1VolumeMesh.xhtml#a8095db508df29f9ccfcefaf52bc6862d)([VolumeMesh](classsysc_1_1VolumeMesh.xhtml)&amp;&amp;) = default;

<a id="l00062" name="l00062"></a> 62 

<a id="l00064" name="l00064"></a>[ 64](classsysc_1_1VolumeMesh.xhtml#a9dfa2f51dd8aed09b662c67209db9ad0) const [NodeData](structsysc_1_1NodeData.xhtml)&amp; [getNodeData](classsysc_1_1VolumeMesh.xhtml#a9dfa2f51dd8aed09b662c67209db9ad0)() const noexcept;

<a id="l00065" name="l00065"></a> 65 

<a id="l00067" name="l00067"></a>[ 67](classsysc_1_1VolumeMesh.xhtml#a89489cae5c428a3dd28256e726767080) const [FaceData](structsysc_1_1FaceData.xhtml)&amp; getFaceData() const noexcept;

<a id="l00068" name="l00068"></a> 68 

<a id="l00070" name="l00070"></a>[ 70](classsysc_1_1VolumeMesh.xhtml#a3666e81d303c3e6cb007a763e72ee462) const [CellData](structsysc_1_1CellData.xhtml)&amp; getCellData() const noexcept;

<a id="l00071" name="l00071"></a> 71 

<a id="l00077" name="l00077"></a>[ 77](classsysc_1_1VolumeMesh.xhtml#aca7d146a22e72f8eca520ef69ea6858a) [MeshValidityStatus](structsysc_1_1MeshValidityStatus.xhtml) checkMeshValidity() const;

<a id="l00078" name="l00078"></a> 78 

<a id="l00080" name="l00080"></a>[ 80](classsysc_1_1VolumeMesh.xhtml#ad901c126ab7372df0928446c7a5bede7) [VolumeMesh](classsysc_1_1VolumeMesh.xhtml)(

<a id="l00081" name="l00081"></a> 81 [NodeData](structsysc_1_1NodeData.xhtml) nodeData,

<a id="l00082" name="l00082"></a> 82 [ElementTypeData](structsysc_1_1ElementTypeData.xhtml) faceTypeData,

<a id="l00083" name="l00083"></a> 83 [ElementNodeCountData](structsysc_1_1ElementNodeCountData.xhtml) faceNodeCountData,

<a id="l00084" name="l00084"></a> 84 [ElementNodeConnectivityData](structsysc_1_1ElementNodeConnectivityData.xhtml) faceNodeConnectivityData,

<a id="l00085" name="l00085"></a> 85 [FaceCellConnectivityData](structsysc_1_1FaceCellConnectivityData.xhtml) faceCellConnectivityData,

<a id="l00086" name="l00086"></a> 86 [CellIdData](structsysc_1_1CellIdData.xhtml) cellIdData,

<a id="l00087" name="l00087"></a> 87 [ElementTypeData](structsysc_1_1ElementTypeData.xhtml) cellTypeData,

<a id="l00088" name="l00088"></a> 88 [ElementNodeConnectivityData](structsysc_1_1ElementNodeConnectivityData.xhtml) cellNodeConnectivityData);

<a id="l00089" name="l00089"></a> 89 

<a id="l00091" name="l00091"></a>[ 91](classsysc_1_1VolumeMesh.xhtml#ab30f9a87cf0cc2c5d12f6ddf05e99fca) std::size\_t getNumNodes() const noexcept;

<a id="l00092" name="l00092"></a> 92 

<a id="l00094" name="l00094"></a>[ 94](classsysc_1_1VolumeMesh.xhtml#a941931c2e13bc9b40a19637d1d7d3dcd) std::size\_t getNumCells() const noexcept;

<a id="l00095" name="l00095"></a> 95 

<a id="l00097" name="l00097"></a>[ 97](classsysc_1_1VolumeMesh.xhtml#a15835b560adaabcc1c73da43d7d25f3e) [OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml) getNodeIds() const noexcept;

<a id="l00098" name="l00098"></a> 98 

<a id="l00100" name="l00100"></a>[ 100](classsysc_1_1VolumeMesh.xhtml#a4307321266d855dd7ba48023e0b23f4e) [OutputVectorData](classsysc_1_1OutputVectorData.xhtml) getNodeCoords() const noexcept;

<a id="l00101" name="l00101"></a> 101 

<a id="l00103" name="l00103"></a>[ 103](classsysc_1_1VolumeMesh.xhtml#a7cd6df532799ff7878c5a3b30cf0ffe5) [ElementTypeData](structsysc_1_1ElementTypeData.xhtml) getFaceTypes() const noexcept;

<a id="l00104" name="l00104"></a> 104 

<a id="l00106" name="l00106"></a>[ 106](classsysc_1_1VolumeMesh.xhtml#a66ec70482e4fd44bc9edaa910e0abaf2) [OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml) getFaceNodeCounts() const noexcept;

<a id="l00107" name="l00107"></a> 107 

<a id="l00109" name="l00109"></a>[ 109](classsysc_1_1VolumeMesh.xhtml#a3a7635141a02711f1dcdacf848c157ab) [OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml) getFaceNodeIds() const noexcept;

<a id="l00110" name="l00110"></a> 110 

<a id="l00112" name="l00112"></a>[ 112](classsysc_1_1VolumeMesh.xhtml#a417e50bee9c019e45cbedd39fd5bc6cb) [OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml) getCell0Ids() const noexcept;

<a id="l00113" name="l00113"></a> 113 

<a id="l00115" name="l00115"></a>[ 115](classsysc_1_1VolumeMesh.xhtml#a1591d15487420143b463ef86835f1874) [OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml) getCell1Ids() const noexcept;

<a id="l00116" name="l00116"></a> 116 

<a id="l00118" name="l00118"></a>[ 118](classsysc_1_1VolumeMesh.xhtml#a798c79c54b8425b7e8b3060016547ea7) [CellIdData](structsysc_1_1CellIdData.xhtml) getCellIds() const noexcept;

<a id="l00119" name="l00119"></a> 119 

<a id="l00121" name="l00121"></a>[ 121](classsysc_1_1VolumeMesh.xhtml#a159cf62afda4022acfbd2f5cbccfca7c) [ElementTypeData](structsysc_1_1ElementTypeData.xhtml) getCellTypes() const noexcept;

<a id="l00122" name="l00122"></a> 122 

<a id="l00124" name="l00124"></a>[ 124](classsysc_1_1VolumeMesh.xhtml#a3bb98664fc0827d3ea1317ca034f493c) [ElementNodeConnectivityData](structsysc_1_1ElementNodeConnectivityData.xhtml) getCellNodeConnectivity() const noexcept;

<a id="l00125" name="l00125"></a> 125 

<a id="l00127" name="l00127"></a>[ 127](classsysc_1_1VolumeMesh.xhtml#ac048cda48c16766a7e04688d62203a70) [VolumeMesh](classsysc_1_1VolumeMesh.xhtml)(

<a id="l00128" name="l00128"></a> 128 [NodeData](structsysc_1_1NodeData.xhtml) nodeData,

<a id="l00129" name="l00129"></a> 129 [ElementTypeData](structsysc_1_1ElementTypeData.xhtml) cellTypes,

<a id="l00130" name="l00130"></a> 130 [ElementNodeConnectivityData](structsysc_1_1ElementNodeConnectivityData.xhtml) cellNodeIds);

<a id="l00131" name="l00131"></a> 131 

<a id="l00133" name="l00133"></a>[ 133](classsysc_1_1VolumeMesh.xhtml#a2dfff826766714e9e95227bbc64336a3) [VolumeMesh](classsysc_1_1VolumeMesh.xhtml)(

<a id="l00134" name="l00134"></a> 134 [NodeData](structsysc_1_1NodeData.xhtml) nodeData,

<a id="l00135" name="l00135"></a> 135 [ElementNodeCountData](structsysc_1_1ElementNodeCountData.xhtml) faceNodeCounts,

<a id="l00136" name="l00136"></a> 136 [ElementNodeConnectivityData](structsysc_1_1ElementNodeConnectivityData.xhtml) faceNodeIds,

<a id="l00137" name="l00137"></a> 137 [FaceCellConnectivityData](structsysc_1_1FaceCellConnectivityData.xhtml) faceToCellConnectivity,

<a id="l00138" name="l00138"></a> 138 [CellIdData](structsysc_1_1CellIdData.xhtml) cellIds);

<a id="l00139" name="l00139"></a> 139 

<a id="l00140" name="l00140"></a> 140private:

<a id="l00141" name="l00141"></a> 141 [NodeData](structsysc_1_1NodeData.xhtml) m_nodes;

<a id="l00142" name="l00142"></a> 142 [FaceData](structsysc_1_1FaceData.xhtml) m_faces;

<a id="l00143" name="l00143"></a> 143 [CellData](structsysc_1_1CellData.xhtml) m_cells;

<a id="l00144" name="l00144"></a> 144};



<a id="l00145" name="l00145"></a> 145 

<a id="l00146" name="l00146"></a> 146} // namespace sysc

[sysc::OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml)

Provide a class for output integer data.

**Definition** [OutputIntegerData.hpp:25](OutputIntegerData_8hpp_source.xhtml#l00025)



[sysc::OutputVectorData](classsysc_1_1OutputVectorData.xhtml)

Provide a class for output vector data.

**Definition** [OutputVectorData.hpp:27](OutputVectorData_8hpp_source.xhtml#l00027)



[sysc::VolumeMesh](classsysc_1_1VolumeMesh.xhtml)

Provide a volume mesh access class.

**Definition** [VolumeMesh.hpp:26](VolumeMesh_8hpp_source.xhtml#l00026)



[sysc::VolumeMesh::operator=](classsysc_1_1VolumeMesh.xhtml#a2d10ecc188f06130c0b5a5182654a3af)

VolumeMesh &amp; operator=(const VolumeMesh &amp;)=default

Provide a copy-assign operator.



[sysc::VolumeMesh::VolumeMesh](classsysc_1_1VolumeMesh.xhtml#a714cfafbfb04be14720a195cc7590470)

VolumeMesh()=default

Provide a default constructor.



[sysc::VolumeMesh::operator=](classsysc_1_1VolumeMesh.xhtml#a8095db508df29f9ccfcefaf52bc6862d)

VolumeMesh &amp; operator=(VolumeMesh &amp;&amp;)=default

Provide a move-assign operator.



[sysc::VolumeMesh::getNodeData](classsysc_1_1VolumeMesh.xhtml#a9dfa2f51dd8aed09b662c67209db9ad0)

const NodeData &amp; getNodeData() const noexcept

Get node data.



[sysc::VolumeMesh::VolumeMesh](classsysc_1_1VolumeMesh.xhtml#ab01007a2dcb32f1a91b0ca7a26c94afb)

VolumeMesh(NodeData nodeData, CellData cellData)

Provide a constructor for element-based volume mesh.



[sysc::VolumeMesh::VolumeMesh](classsysc_1_1VolumeMesh.xhtml#ab3261c84e62bdcf25d92b69cbefb1cba)

VolumeMesh(const VolumeMesh &amp;)=default

Provide a copy-constructor.



[sysc::VolumeMesh::VolumeMesh](classsysc_1_1VolumeMesh.xhtml#abb0f3e38d18bdfe8128e71da0dcf235f)

VolumeMesh(NodeData nodeData, FaceData faceData, CellData cellData)

Provide a constructor for face-based volume mesh.



[sysc::VolumeMesh::VolumeMesh](classsysc_1_1VolumeMesh.xhtml#af2f6fc62a27f5d69af987a82a8154e45)

VolumeMesh(VolumeMesh &amp;&amp;)=default

Provide a move-constructor.



[sysc::CellData](structsysc_1_1CellData.xhtml)

Cell data access struct, provides read-only access to the mesh cells.

**Definition** [MeshDefinition.hpp:369](MeshDefinition_8hpp_source.xhtml#l00369)



[sysc::CellIdData](structsysc_1_1CellIdData.xhtml)

Cell ids struct, provides read-only access to the mesh cell ids.

**Definition** [MeshDefinition.hpp:164](MeshDefinition_8hpp_source.xhtml#l00164)



[sysc::ElementNodeConnectivityData](structsysc_1_1ElementNodeConnectivityData.xhtml)

Describes element-to-node connectivity.

**Definition** [MeshDefinition.hpp:110](MeshDefinition_8hpp_source.xhtml#l00110)



[sysc::ElementNodeCountData](structsysc_1_1ElementNodeCountData.xhtml)

Describes element node counts.

**Definition** [MeshDefinition.hpp:83](MeshDefinition_8hpp_source.xhtml#l00083)



[sysc::ElementTypeData](structsysc_1_1ElementTypeData.xhtml)

Element types access struct, provides read-only access to the mesh element types.

**Definition** [MeshDefinition.hpp:55](MeshDefinition_8hpp_source.xhtml#l00055)



[sysc::FaceCellConnectivityData](structsysc_1_1FaceCellConnectivityData.xhtml)

Describes face-to-cell connectivity.

**Definition** [MeshDefinition.hpp:136](MeshDefinition_8hpp_source.xhtml#l00136)



[sysc::FaceData](structsysc_1_1FaceData.xhtml)

Face data access struct, provides read-only access to the mesh faces.

**Definition** [MeshDefinition.hpp:231](MeshDefinition_8hpp_source.xhtml#l00231)



[sysc::MeshValidityStatus](structsysc_1_1MeshValidityStatus.xhtml)

Provide a struct that contains information about mesh validity.

**Definition** [CommonTypes.hpp:199](CommonTypes_8hpp_source.xhtml#l00199)



[sysc::NodeData](structsysc_1_1NodeData.xhtml)

Node data access struct, provides read-only access to the mesh nodes.

**Definition** [MeshDefinition.hpp:194](MeshDefinition_8hpp_source.xhtml#l00194)