33 #ifndef IOSS_Iogn_DashSurfaceMesh_h 34 #define IOSS_Iogn_DashSurfaceMesh_h 65 throw std::exception();
93 const std::vector<std::vector<int>> elemBlockConnectivity,
94 const std::vector<int> globalNumOfElemsInBlock,
95 const std::vector<int> localNumOfElemsInBlock,
96 const std::vector<Topology> blockTopoData,
int globalNumNodes,
97 const std::vector<int> globalIdsOfLocalElems,
98 const std::vector<int> globalIdsLocalNodes,
99 std::vector<std::vector<int>> sidesetConn = std::vector<std::vector<int>>(),
100 std::vector<std::vector<std::string>> sidesetBlocks =
101 std::vector<std::vector<std::string>>())
102 : coordinates(coords), elementBlockConnectivity(elemBlockConnectivity),
103 globalNumberOfElementsInBlock(globalNumOfElemsInBlock),
104 localNumberOfElementsInBlock(localNumOfElemsInBlock), blockTopologicalData(blockTopoData),
105 globalNumberOfNodes(globalNumNodes), globalIdsOfLocalElements(globalIdsOfLocalElems),
106 globalIdsOfLocalNodes(globalIdsLocalNodes), sidesetConnectivity(
std::move(sidesetConn)),
107 sidesetTouchingBlocks(
std::move(sidesetBlocks))
118 int globalNumberOfNodes{};
119 int globalNumberOfElements{};
121 int globalNumberOfElementsSurface1{};
122 int globalNumberOfElementsSurface2{};
129 DashSurfaceData(
const std::vector<double> &coords,
const std::vector<int> &connectivity1,
130 const std::vector<int> &connectivity2)
131 : coordinates(coords), surfaceAConnectivity(connectivity1),
132 surfaceBConnectivity(connectivity2)
134 this->setSerialDefaults();
144 globalNumberOfElements = globalNumberOfElementsSurface1 + globalNumberOfElementsSurface2;
146 globalIdsOfLocalElements.resize(globalNumberOfElements);
147 globalIdsOfLocalNodes.resize(globalNumberOfNodes);
149 for (
size_t i = 0; i < globalIdsOfLocalElements.size(); i++) {
150 globalIdsOfLocalElements[i] = i + 1;
153 for (
size_t i = 0; i < globalIdsOfLocalNodes.size(); i++) {
154 globalIdsOfLocalNodes[i] = i + 1;
168 int64_t node_count()
const override;
169 int64_t node_count_proc()
const override;
171 int64_t element_count()
const override;
172 int64_t element_count(int64_t surfaceNumber)
const override;
173 int64_t element_count_proc()
const override;
174 int64_t element_count_proc(int64_t block_number)
const override;
176 int64_t block_count()
const override;
178 int64_t nodeset_count()
const override;
179 int64_t nodeset_node_count_proc(int64_t
id)
const override;
181 int64_t sideset_count()
const override;
182 int64_t sideset_side_count_proc(int64_t
id)
const override;
184 int64_t communication_node_count_proc()
const override;
186 void coordinates(
double *coord)
const override;
187 void coordinates(std::vector<double> &coord)
const override;
188 void coordinates(
int component, std::vector<double> &xyz)
const override;
189 void coordinates(std::vector<double> &x, std::vector<double> &y,
190 std::vector<double> &z)
const override;
192 void connectivity(int64_t block_number,
int *connect)
const override;
194 std::pair<std::string, int> topology_type(int64_t block_number)
const override;
196 void sideset_elem_sides(int64_t setId, std::vector<int64_t> &elem_sides)
const override;
198 void nodeset_nodes(int64_t nset_id, std::vector<int64_t> &nodes)
const override;
200 void node_communication_map(std::vector<int64_t> &map, std::vector<int> &proc)
override;
202 void node_map(std::vector<int> &map)
const override;
203 void node_map(std::vector<int64_t> &map)
const override;
205 void element_map(int64_t block_number, std::vector<int> &map)
const override;
206 void element_map(int64_t block_number, std::vector<int64_t> &map)
const override;
207 void element_map(std::vector<int64_t> &map)
const override;
208 void element_map(std::vector<int> &map)
const override;
221 int64_t node_count()
const override;
222 int64_t node_count_proc()
const override;
224 int64_t element_count()
const override;
225 int64_t element_count(int64_t blockNumber)
const override;
226 int64_t element_count_proc()
const override;
227 int64_t element_count_proc(int64_t blockNumber)
const override;
229 int64_t block_count()
const override;
231 int64_t nodeset_count()
const override;
232 int64_t nodeset_node_count_proc(int64_t
id)
const override;
234 int64_t sideset_count()
const override;
235 int64_t sideset_side_count_proc(int64_t
id)
const override;
237 int64_t communication_node_count_proc()
const override;
239 void coordinates(
double *coord)
const override;
240 void coordinates(std::vector<double> &coord)
const override;
241 void coordinates(
int component, std::vector<double> &xyz)
const override;
242 void coordinates(std::vector<double> &x, std::vector<double> &y,
243 std::vector<double> &z)
const override;
245 void connectivity(int64_t blockNumber,
int *connectivityForBlock)
const override;
247 std::pair<std::string, int> topology_type(int64_t blockNumber)
const override;
249 void sideset_elem_sides(int64_t setId, std::vector<int64_t> &elem_sides)
const override;
251 std::vector<std::string> sideset_touching_blocks(int64_t setId)
const override;
253 void nodeset_nodes(int64_t nset_id, std::vector<int64_t> &nodes)
const override;
255 void node_communication_map(std::vector<int64_t> &map, std::vector<int> &proc)
override;
257 void node_map(std::vector<int> &map)
const override;
258 void node_map(std::vector<int64_t> &map)
const override;
260 void element_map(int64_t blockNumber, std::vector<int> &map)
const override;
261 void element_map(int64_t blockNumber, std::vector<int64_t> &map)
const override;
262 void element_map(std::vector<int64_t> &map)
const override;
263 void element_map(std::vector<int> &map)
const override;
int64_t mGlobalNumberOfElements
Definition: Iogn_DashSurfaceMesh.h:266
ExodusData()
Definition: Iogn_DashSurfaceMesh.h:91
Definition: Iogn_DashSurfaceMesh.h:57
std::vector< double > coordinates
Definition: Iogn_DashSurfaceMesh.h:70
const std::vector< int > globalIdsOfLocalNodes
Definition: Iogn_DashSurfaceMesh.h:79
int64_t mLocalNumberOfElements
Definition: Iogn_DashSurfaceMesh.h:267
DashSurfaceData(const std::vector< double > &coords, const std::vector< int > &connectivity1, const std::vector< int > &connectivity2)
Definition: Iogn_DashSurfaceMesh.h:129
std::vector< int > globalIdsOfLocalElements
Definition: Iogn_DashSurfaceMesh.h:124
Definition: Iogn_DashSurfaceMesh.h:112
int procId
Definition: Iogn_DashSurfaceMesh.h:54
Definition: Iogn_DashSurfaceMesh.h:214
const std::vector< std::vector< int > > elementBlockConnectivity
Definition: Iogn_DashSurfaceMesh.h:71
const std::vector< int > surfaceAConnectivity
Definition: Iogn_DashSurfaceMesh.h:115
SharedNode()
Definition: Iogn_DashSurfaceMesh.h:52
std::vector< SharedNode > sharedNodes
Definition: Iogn_DashSurfaceMesh.h:127
const std::vector< int > surfaceBConnectivity
Definition: Iogn_DashSurfaceMesh.h:116
const int globalNumberOfNodes
Definition: Iogn_DashSurfaceMesh.h:76
const std::vector< int > globalNumberOfElementsInBlock
Definition: Iogn_DashSurfaceMesh.h:72
std::vector< std::vector< int > > sidesetConnectivity
Definition: Iogn_DashSurfaceMesh.h:88
Definition: Iogn_DashSurfaceMesh.h:159
void setSerialDefaults()
Definition: Iogn_DashSurfaceMesh.h:138
const std::vector< int > globalIdsOfLocalElements
Definition: Iogn_DashSurfaceMesh.h:78
std::string getTopologyName(Topology topology)
Definition: Iogn_DashSurfaceMesh.h:59
int nodeId
Definition: Iogn_DashSurfaceMesh.h:53
DashSurfaceData mDashSurfaceData
Definition: Iogn_DashSurfaceMesh.h:211
Definition: Iogn_GeneratedMesh.h:48
const std::vector< int > localNumberOfElementsInBlock
Definition: Iogn_DashSurfaceMesh.h:73
A namespace for the generated database format.
Definition: Iogn_DashSurfaceMesh.C:38
Definition: Iogn_DashSurfaceMesh.h:48
const std::vector< double > coordinates
Definition: Iogn_DashSurfaceMesh.h:114
Definition: Iogn_DashSurfaceMesh.h:48
Definition: Iogn_DashSurfaceMesh.h:48
Definition: Iogn_DashSurfaceMesh.h:48
Definition: Iogn_DashSurfaceMesh.h:68
const std::vector< Topology > blockTopologicalData
Definition: Iogn_DashSurfaceMesh.h:74
Definition: Iogn_DashSurfaceMesh.h:57
std::vector< int > globalIdsOfLocalNodes
Definition: Iogn_DashSurfaceMesh.h:125
const ExodusData & mExodusData
Definition: Iogn_DashSurfaceMesh.h:269
std::vector< std::vector< std::string > > sidesetTouchingBlocks
Definition: Iogn_DashSurfaceMesh.h:89
Definition: Iogn_DashSurfaceMesh.h:50
std::vector< SharedNode > sharedNodes
Definition: Iogn_DashSurfaceMesh.h:81
const std::string & name() const
Definition: Ioss_ElementTopology.h:83
Topology
Definition: Iogn_DashSurfaceMesh.h:57
DashSurfaceMesh(DashSurfaceData &dashSurfaceData)
Definition: Iogn_DashSurfaceMesh.h:162
std::vector< int64_t > mElementOffsetForBlock
Definition: Iogn_DashSurfaceMesh.h:270
ExodusData(const std::vector< double > coords, const std::vector< std::vector< int >> elemBlockConnectivity, const std::vector< int > globalNumOfElemsInBlock, const std::vector< int > localNumOfElemsInBlock, const std::vector< Topology > blockTopoData, int globalNumNodes, const std::vector< int > globalIdsOfLocalElems, const std::vector< int > globalIdsLocalNodes, std::vector< std::vector< int >> sidesetConn=std::vector< std::vector< int >>(), std::vector< std::vector< std::string >> sidesetBlocks=std::vector< std::vector< std::string >>())
Definition: Iogn_DashSurfaceMesh.h:92