    

 ## On this page

  

 

 # SurfaceMesh

 Last update: 17.07.2025 

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

<a id="l00002" name="l00002"></a> 2 \* Copyright 2023 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\#include &lt;string&gt;

<a id="l00016" name="l00016"></a> 16 

<a id="l00017" name="l00017"></a> 17namespace sysc {

<a id="l00018" name="l00018"></a> 18 

<a id="l00027" name="l00027"></a>[ 27](classsysc_1_1SurfaceMesh.xhtml)class SYSTEM_COUPLING_PARTICIPANT_DLL [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml) {

<a id="l00028" name="l00028"></a> 28public:

<a id="l00030" name="l00030"></a>[ 30](classsysc_1_1SurfaceMesh.xhtml#aa0399097b006a460acab8136f5b546c8) std::int64_t connectivityStamp{0};

<a id="l00031" name="l00031"></a> 31 

<a id="l00033" name="l00033"></a>[ 33](classsysc_1_1SurfaceMesh.xhtml#a26e8d40282423e06168eb558359e6b4f) std::int64_t coordinatesStamp{0};

<a id="l00034" name="l00034"></a> 34 

<a id="l00036" name="l00036"></a>[ 36](classsysc_1_1SurfaceMesh.xhtml#a5a697ca4a8e2276ddd7fcb5a63cae622) std::int64_t partitioningStamp{0};

<a id="l00037" name="l00037"></a> 37 

<a id="l00039" name="l00039"></a>[ 39](classsysc_1_1SurfaceMesh.xhtml#ae8dbea460cf8d1076a09229dc8b84c8c) [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml#ae8dbea460cf8d1076a09229dc8b84c8c)(

<a id="l00040" name="l00040"></a> 40 [NodeData](structsysc_1_1NodeData.xhtml) nodes,

<a id="l00041" name="l00041"></a> 41 [FaceData](structsysc_1_1FaceData.xhtml) faces);

<a id="l00042" name="l00042"></a> 42 

<a id="l00043" name="l00043"></a> 43 [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml)() = default; /\* \\brief Provide a default constructor. \*/

<a id="l00044" name="l00044"></a> 44 

<a id="l00046" name="l00046"></a>[ 46](classsysc_1_1SurfaceMesh.xhtml#ac8acf16ad4e8f6c4788bf81a284af87d) [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml#ac8acf16ad4e8f6c4788bf81a284af87d)(const [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml)&amp;) = default;

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

<a id="l00049" name="l00049"></a>[ 49](classsysc_1_1SurfaceMesh.xhtml#a6ce8618c7363d5c62ad8df814d37e484) [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml#a6ce8618c7363d5c62ad8df814d37e484)([SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml)&amp;&amp;) = default;

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

<a id="l00052" name="l00052"></a>[ 52](classsysc_1_1SurfaceMesh.xhtml#ae18eff97aefb42316e863bf2b0ec8b25) [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml)&amp; [operator=](classsysc_1_1SurfaceMesh.xhtml#ae18eff97aefb42316e863bf2b0ec8b25)(const [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml)&amp;) = default;

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

<a id="l00055" name="l00055"></a>[ 55](classsysc_1_1SurfaceMesh.xhtml#ae3797ab22396f3abeb6e599a9fd05b31) [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml)&amp; [operator=](classsysc_1_1SurfaceMesh.xhtml#ae3797ab22396f3abeb6e599a9fd05b31)([SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml)&amp;&amp;) = default;

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

<a id="l00058" name="l00058"></a>[ 58](classsysc_1_1SurfaceMesh.xhtml#a7355d25d6a0781aaf2e6c522d0559735) const [NodeData](structsysc_1_1NodeData.xhtml)&amp; [getNodeData](classsysc_1_1SurfaceMesh.xhtml#a7355d25d6a0781aaf2e6c522d0559735)() const noexcept;

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

<a id="l00061" name="l00061"></a>[ 61](classsysc_1_1SurfaceMesh.xhtml#aef926cfcfcfd2b5f7be919c816745337) const [FaceData](structsysc_1_1FaceData.xhtml)&amp; getFaceData() const noexcept;

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

<a id="l00064" name="l00064"></a>[ 64](classsysc_1_1SurfaceMesh.xhtml#a79ad7197266d3814f477f7326e6dc04a) std::size\_t getNumNodes() const;

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

<a id="l00067" name="l00067"></a>[ 67](classsysc_1_1SurfaceMesh.xhtml#a0f3aa7623beead3c2925dcc89f451360) std::size\_t getNumElems() const;

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

<a id="l00070" name="l00070"></a>[ 70](classsysc_1_1SurfaceMesh.xhtml#a9d34d5c3fa3c6d87f12e94642fadeb91) [OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml) getNodeIds() const;

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

<a id="l00073" name="l00073"></a>[ 73](classsysc_1_1SurfaceMesh.xhtml#a9e5add5718e83f6144004bacc2650d14) [OutputVectorData](classsysc_1_1OutputVectorData.xhtml) getNodeCoords() const;

<a id="l00074" name="l00074"></a> 74 

<a id="l00076" name="l00076"></a>[ 76](classsysc_1_1SurfaceMesh.xhtml#aa4e1d85cc62dc422100a8f6c9180eead) [OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml) getElemTypes() const;

<a id="l00077" name="l00077"></a> 77 

<a id="l00079" name="l00079"></a>[ 79](classsysc_1_1SurfaceMesh.xhtml#a477d04741fd375efcc702c785e0136dd) [OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml) getElemNodeCounts() const;

<a id="l00080" name="l00080"></a> 80 

<a id="l00082" name="l00082"></a>[ 82](classsysc_1_1SurfaceMesh.xhtml#a891d7359d0536c58984e1c521a367e86) [OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml) getElemNodeIds() const;

<a id="l00083" name="l00083"></a> 83 

<a id="l00085" name="l00085"></a>[ 85](classsysc_1_1SurfaceMesh.xhtml#ad86260da5f6d2980105280f5408cdad7) [FaceCellConnectivityData](structsysc_1_1FaceCellConnectivityData.xhtml) getFaceCellConnectivity() const noexcept;

<a id="l00086" name="l00086"></a> 86 

<a id="l00095" name="l00095"></a>[ 95](classsysc_1_1SurfaceMesh.xhtml#a08e683009bed220d25e4848b24d92a39) void setSide0(const [RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d)&amp; regionName);

<a id="l00096" name="l00096"></a> 96 

<a id="l00105" name="l00105"></a>[ 105](classsysc_1_1SurfaceMesh.xhtml#a15fb1ea02b021107f995e50ec4b35237) void setSide1(const [RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d)&amp; regionName);

<a id="l00106" name="l00106"></a> 106 

<a id="l00108" name="l00108"></a>[ 108](classsysc_1_1SurfaceMesh.xhtml#a504afae8d069ededcc257e430b66d635) bool hasSide0() const noexcept;

<a id="l00109" name="l00109"></a> 109 

<a id="l00111" name="l00111"></a>[ 111](classsysc_1_1SurfaceMesh.xhtml#a73d353dd486f22a5e17b11fcab360df7) bool hasSide1() const noexcept;

<a id="l00112" name="l00112"></a> 112 

<a id="l00114" name="l00114"></a>[ 114](classsysc_1_1SurfaceMesh.xhtml#a62577f866c16065c3b948a960f08d06e) const [RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d)&amp; getSide0() const;

<a id="l00115" name="l00115"></a> 115 

<a id="l00117" name="l00117"></a>[ 117](classsysc_1_1SurfaceMesh.xhtml#a050a5d12be25ca97bf456c5b0e9ace0a) const [RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d)&amp; getSide1() const;

<a id="l00118" name="l00118"></a> 118 

<a id="l00124" name="l00124"></a>[ 124](classsysc_1_1SurfaceMesh.xhtml#a786a6cbbf2ab08214207b4fe38f0f013) [MeshValidityStatus](structsysc_1_1MeshValidityStatus.xhtml) checkMeshValidity() const;

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

<a id="l00127" name="l00127"></a>[ 127](classsysc_1_1SurfaceMesh.xhtml#a76a9ff65458582744b60e5eb7bbcd13a) [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml)(

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

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

<a id="l00130" name="l00130"></a> 130 [ElementNodeCountData](structsysc_1_1ElementNodeCountData.xhtml) elemNodeCounts,

<a id="l00131" name="l00131"></a> 131 [ElementNodeConnectivityData](structsysc_1_1ElementNodeConnectivityData.xhtml) elemNodeIds,

<a id="l00132" name="l00132"></a> 132 [FaceCellConnectivityData](structsysc_1_1FaceCellConnectivityData.xhtml) faceCellConnectivity);

<a id="l00133" name="l00133"></a> 133 

<a id="l00135" name="l00135"></a>[ 135](classsysc_1_1SurfaceMesh.xhtml#a87991fd2bb3260b835c6872d860e4f74) [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml)(

<a id="l00136" name="l00136"></a> 136 [NodeData](structsysc_1_1NodeData.xhtml) nodes,

<a id="l00137" name="l00137"></a> 137 [ElementTypeData](structsysc_1_1ElementTypeData.xhtml) elementTypes,

<a id="l00138" name="l00138"></a> 138 [ElementNodeConnectivityData](structsysc_1_1ElementNodeConnectivityData.xhtml) elementNodeIds);

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

<a id="l00141" name="l00141"></a>[ 141](classsysc_1_1SurfaceMesh.xhtml#a1f062afae5b75dfce4d4a60c6e3a60d0) [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml)(

<a id="l00142" name="l00142"></a> 142 [NodeData](structsysc_1_1NodeData.xhtml) meshNodes,

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

<a id="l00144" name="l00144"></a> 144 [ElementNodeConnectivityData](structsysc_1_1ElementNodeConnectivityData.xhtml) faceNodeIds);

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

<a id="l00147" name="l00147"></a>[ 147](classsysc_1_1SurfaceMesh.xhtml#a39dd2b26100e08bd41e00a9d9373bd3a) [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml)(

<a id="l00148" name="l00148"></a> 148 [NodeData](structsysc_1_1NodeData.xhtml) meshNodes,

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

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

<a id="l00151" name="l00151"></a> 151 [FaceCellConnectivityData](structsysc_1_1FaceCellConnectivityData.xhtml) faceCellConnectivity);

<a id="l00152" name="l00152"></a> 152 

<a id="l00153" name="l00153"></a> 153 /\* Deprecated - do not use. \*/

<a id="l00154" name="l00154"></a> 154 [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml)(

<a id="l00155" name="l00155"></a> 155 [OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml) nodeIds,

<a id="l00156" name="l00156"></a> 156 [OutputVectorData](classsysc_1_1OutputVectorData.xhtml) nodeCoords,

<a id="l00157" name="l00157"></a> 157 [OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml) elemNodeCounts,

<a id="l00158" name="l00158"></a> 158 [OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml) elemNodeIds);

<a id="l00159" name="l00159"></a> 159 

<a id="l00160" name="l00160"></a> 160 /\* Deprecated - do not use. \*/

<a id="l00161" name="l00161"></a> 161 [SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml)(

<a id="l00162" name="l00162"></a> 162 [OutputVectorData](classsysc_1_1OutputVectorData.xhtml) nodeCoords,

<a id="l00163" name="l00163"></a> 163 [OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml) elemNodeCounts,

<a id="l00164" name="l00164"></a> 164 [OutputIntegerData](classsysc_1_1OutputIntegerData.xhtml) elemNodeIds);

<a id="l00165" name="l00165"></a> 165 

<a id="l00166" name="l00166"></a> 166private:

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

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

<a id="l00169" name="l00169"></a> 169 

<a id="l00170" name="l00170"></a> 170 [RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d) m_side0;

<a id="l00171" name="l00171"></a> 171 [RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d) m_side1;

<a id="l00172" name="l00172"></a> 172};

<a id="l00173" name="l00173"></a> 173 

<a id="l00174" name="l00174"></a> 174} // 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::SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml)

Provide a surface mesh access class.

**Definition:** [SurfaceMesh.hpp:27](SurfaceMesh_8hpp_source.xhtml#l00027)



[sysc::SurfaceMesh::SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml#a6ce8618c7363d5c62ad8df814d37e484)

SurfaceMesh(SurfaceMesh &amp;&amp;)=default

Provide a move-constructor.



[sysc::SurfaceMesh::getNodeData](classsysc_1_1SurfaceMesh.xhtml#a7355d25d6a0781aaf2e6c522d0559735)

const NodeData &amp; getNodeData() const noexcept

Get node data.



[sysc::SurfaceMesh::SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml#ac8acf16ad4e8f6c4788bf81a284af87d)

SurfaceMesh(const SurfaceMesh &amp;)=default

Provide a copy-constructor.



[sysc::SurfaceMesh::operator=](classsysc_1_1SurfaceMesh.xhtml#ae18eff97aefb42316e863bf2b0ec8b25)

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

Provide a copy-assign operator.



[sysc::SurfaceMesh::operator=](classsysc_1_1SurfaceMesh.xhtml#ae3797ab22396f3abeb6e599a9fd05b31)

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

Provide a move-assign operator.



[sysc::SurfaceMesh::SurfaceMesh](classsysc_1_1SurfaceMesh.xhtml#ae8dbea460cf8d1076a09229dc8b84c8c)

SurfaceMesh(NodeData nodes, FaceData faces)

Constructor.



[sysc::RegionName](group__SystemCouplingParticipantAPIs.xhtml#gad700042fb75659f4591c4dae6560a62d)

std::string RegionName

**Definition:** [CommonTypes.hpp:222](CommonTypes_8hpp_source.xhtml#l00222)



[sysc::ElementNodeConnectivityData](structsysc_1_1ElementNodeConnectivityData.xhtml)

Describes element-to-node connectivity.

**Definition:** [MeshDefinition.hpp:106](MeshDefinition_8hpp_source.xhtml#l00106)



[sysc::ElementNodeCountData](structsysc_1_1ElementNodeCountData.xhtml)

Describes element node counts.

**Definition:** [MeshDefinition.hpp:79](MeshDefinition_8hpp_source.xhtml#l00079)



[sysc::ElementTypeData](structsysc_1_1ElementTypeData.xhtml)

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

**Definition:** [MeshDefinition.hpp:51](MeshDefinition_8hpp_source.xhtml#l00051)



[sysc::FaceCellConnectivityData](structsysc_1_1FaceCellConnectivityData.xhtml)

Describes face-to-cell connectivity.

**Definition:** [MeshDefinition.hpp:132](MeshDefinition_8hpp_source.xhtml#l00132)



[sysc::FaceData](structsysc_1_1FaceData.xhtml)

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

**Definition:** [MeshDefinition.hpp:227](MeshDefinition_8hpp_source.xhtml#l00227)



[sysc::MeshValidityStatus](structsysc_1_1MeshValidityStatus.xhtml)

Provide a struct that contains information about mesh validity.

**Definition:** [CommonTypes.hpp:191](CommonTypes_8hpp_source.xhtml#l00191)



[sysc::NodeData](structsysc_1_1NodeData.xhtml)

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

**Definition:** [MeshDefinition.hpp:190](MeshDefinition_8hpp_source.xhtml#l00190)