Skip to main content

System Coupling C++ library 2025 R1

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 
17 namespace sysc {
18 
27 class SYSTEM_COUPLING_PARTICIPANT_DLL SurfaceMesh {
28 public:
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 
49  SurfaceMesh(SurfaceMesh&&) = default;
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. */
154  SurfaceMesh(
155  OutputIntegerData nodeIds,
156  OutputVectorData nodeCoords,
157  OutputIntegerData elemNodeCounts,
158  OutputIntegerData elemNodeIds);
159 
160  /* Deprecated - do not use. */
161  SurfaceMesh(
162  OutputVectorData nodeCoords,
163  OutputIntegerData elemNodeCounts,
164  OutputIntegerData elemNodeIds);
165 
166 private:
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.
Definition: SurfaceMesh.hpp:27
SurfaceMesh & operator=(SurfaceMesh &&)=default
Provide a move-assign operator.
const NodeData & getNodeData() const noexcept
Get node data.
SurfaceMesh(SurfaceMesh &&)=default
Provide a move-constructor.
SurfaceMesh & operator=(const SurfaceMesh &)=default
Provide a copy-assign operator.
SurfaceMesh(const SurfaceMesh &)=default
Provide a copy-constructor.
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