Skip to main content

System Coupling C++ library 2024 R2

SurfaceMesh

Last update: 17.07.2025
1/*
2 * Copyright ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.
3 */
4
5#pragma once
6
7#include "SystemCouplingParticipant/LibraryType.hpp"
8
9#include "SystemCouplingParticipant/CommonTypes.hpp"
10#include "SystemCouplingParticipant/MeshDefinition.hpp"
11#include "SystemCouplingParticipant/OutputIntegerData.hpp"
12#include "SystemCouplingParticipant/OutputVectorData.hpp"
13
14#include <cstddef>
15#include <string>
16
17namespace sysc {
18
27class SYSTEM_COUPLING_PARTICIPANT_DLL SurfaceMesh {
28public:
30 std::int64_t connectivityStamp{0};
31
33 std::int64_t coordinatesStamp{0};
34
36 std::int64_t partitioningStamp{0};
37
40 NodeData nodes,
41 FaceData faces);
42
43 SurfaceMesh() = default; /* \brief Provide a default constructor. */
44
46 SurfaceMesh(const SurfaceMesh&) = default;
47
50
52 SurfaceMesh& operator=(const SurfaceMesh&) = default;
53
56
58 const NodeData& getNodeData() const noexcept;
59
61 const FaceData& getFaceData() const noexcept;
62
64 std::size_t getNumNodes() const;
65
67 std::size_t getNumElems() const;
68
70 OutputIntegerData getNodeIds() const;
71
73 OutputVectorData getNodeCoords() const;
74
76 OutputIntegerData getElemTypes() const;
77
79 OutputIntegerData getElemNodeCounts() const;
80
82 OutputIntegerData getElemNodeIds() const;
83
85 FaceCellConnectivityData getFaceCellConnectivity() const noexcept;
86
95 void setSide0(const RegionName& regionName);
96
105 void setSide1(const RegionName& regionName);
106
108 bool hasSide0() const noexcept;
109
111 bool hasSide1() const noexcept;
112
114 const RegionName& getSide0() const;
115
117 const RegionName& getSide1() const;
118
124 MeshValidityStatus checkMeshValidity() const;
125
128 NodeData nodes,
129 ElementTypeData elemTypes,
130 ElementNodeCountData elemNodeCounts,
131 ElementNodeConnectivityData elemNodeIds,
132 FaceCellConnectivityData faceCellConnectivity);
133
136 NodeData nodes,
137 ElementTypeData elementTypes,
138 ElementNodeConnectivityData elementNodeIds);
139
142 NodeData meshNodes,
143 ElementNodeCountData faceNodeCounts,
144 ElementNodeConnectivityData faceNodeIds);
145
148 NodeData meshNodes,
149 ElementNodeCountData faceNodeCounts,
150 ElementNodeConnectivityData faceNodeIds,
151 FaceCellConnectivityData faceCellConnectivity);
152
153 /* Deprecated - do not use. */
155 OutputIntegerData nodeIds,
156 OutputVectorData nodeCoords,
157 OutputIntegerData elemNodeCounts,
158 OutputIntegerData elemNodeIds);
159
160 /* Deprecated - do not use. */
162 OutputVectorData nodeCoords,
163 OutputIntegerData elemNodeCounts,
164 OutputIntegerData elemNodeIds);
165
166private:
167 NodeData m_nodes;
168 FaceData m_faces;
169
170 RegionName m_side0;
171 RegionName m_side1;
172};
173
174} // namespace sysc
Provide a class for output integer data.
Provide a class for output vector data.
Provide a surface mesh access class.
SurfaceMesh(SurfaceMesh &&)=default
Provide a move-constructor.
const NodeData & getNodeData() const noexcept
Get node data.
SurfaceMesh(const SurfaceMesh &)=default
Provide a copy-constructor.
SurfaceMesh & operator=(const SurfaceMesh &)=default
Provide a copy-assign operator.
SurfaceMesh & operator=(SurfaceMesh &&)=default
Provide a move-assign operator.
SurfaceMesh(NodeData nodes, FaceData faces)
Constructor.
std::string RegionName
Describes element-to-node connectivity.
Describes element node counts.
Element types access struct, provides read-only access to the mesh element types.
Describes face-to-cell connectivity.
Face data access struct, provides read-only access to the mesh faces.
Provide a struct that contains information about mesh validity.
Node data access struct, provides read-only access to the mesh nodes.

Connect with Ansys