MAIA bb96820c
Multiphysics at AIA
Loading...
Searching...
No Matches
fvstructuredsolverwindowinfo.h
Go to the documentation of this file.
1// Copyright (C) 2024 The m-AIA AUTHORS
2//
3// This file is part of m-AIA (https://git.rwth-aachen.de/aia/m-AIA/m-AIA)
4//
5// SPDX-License-Identifier: LGPL-3.0-only
6
7#ifndef FVSOLVERSTRUCTWINDOWSINFO
8#define FVSOLVERSTRUCTWINDOWSINFO
9
10#include <cstring>
11#include <map>
12#include <set>
13#include <vector>
14#include "GRID/structuredgrid.h"
16#include "INCLUDE/maiatypes.h"
17#include "fvstructuredcomm.h"
19
20template <MInt nDim>
21struct pointType {
22 MInt BC[nDim]{};
24 MInt pos[nDim];
26};
27
29 public:
38 BC = -1;
39 blockId1 = -1;
40 blockId2 = -1;
41 nDim = _nDim;
42 for(MInt dim = 0; dim < nDim; dim++) {
43 pos1[dim] = -1;
44 pos2[dim] = -1;
45 }
46 Nstar = -1;
47 };
48
49 connectionNode(MInt a, MInt b1, MInt* p1, MInt b2, MInt* p2, MInt _nDim) {
50 BC = a;
51 blockId1 = b1;
52 blockId2 = b2;
53 nDim = _nDim;
54 for(MInt dim = 0; dim < nDim; dim++) {
55 pos1[dim] = p1[dim];
56 pos2[dim] = p2[dim];
57 }
58 Nstar = -1;
59 };
60
61 connectionNode(MInt a, MInt b1, MInt* p1, MInt b2, MInt* p2, MBool enableSwap, MInt _nDim) {
62 MBool swap = false;
63 nDim = _nDim;
64
65 if(enableSwap) {
66 // ensure a fixed order, i.e., lower blockId first or lower pos first if the blockIds match
67 if(b2 < b1) swap = true;
68 if(b1 == b2) {
69 for(MInt countDim = 0; countDim < nDim; ++countDim) {
70 if(p1[countDim] < p2[countDim]) break;
71 if(p1[countDim] > p2[countDim]) {
72 swap = true;
73 break;
74 }
75 }
76 }
77 }
78
79 if(swap) {
80 BC = a;
81 blockId1 = b2;
82 blockId2 = b1;
83 for(MInt dim = 0; dim < nDim; dim++) {
84 pos1[dim] = p2[dim];
85 pos2[dim] = p1[dim];
86 }
87 } else {
88 BC = a;
89 blockId1 = b1;
90 blockId2 = b2;
91 for(MInt dim = 0; dim < nDim; dim++) {
92 pos1[dim] = p1[dim];
93 pos2[dim] = p2[dim];
94 }
95 }
96 Nstar = -1;
97 };
98
99 void print() {
100 std::cout << "============================" << std::endl;
101 std::cout << BC << std::endl;
102 std::cout << blockId1;
103 for(MInt dim = 0; dim < nDim; dim++) {
104 std::cout << " " << pos1[dim];
105 }
106 std::cout << std::endl;
107 std::cout << blockId2;
108 for(MInt dim = 0; dim < nDim; dim++) {
109 std::cout << " " << pos2[dim];
110 }
111 std::cout << std::endl;
112 std::cout << "Nstar: " << Nstar << std::endl;
113 std::cout << "============================" << std::endl;
114 };
115 MBool operator<(const connectionNode& entry2) const {
116 if(BC < entry2.BC) {
117 return true;
118 }
119 if(BC > entry2.BC) {
120 return false;
121 }
122 if(blockId1 < entry2.blockId1) {
123 return true;
124 }
125 if(blockId1 > entry2.blockId1) {
126 return false;
127 }
128 if(blockId2 < entry2.blockId2) {
129 return true;
130 }
131 if(blockId2 > entry2.blockId2) {
132 return false;
133 }
134 for(MInt i = 0; i < nDim; ++i) {
135 if(pos1[i] < entry2.pos1[i]) {
136 return true;
137 }
138 if(pos1[i] > entry2.pos1[i]) {
139 return false;
140 }
141 if(pos2[i] < entry2.pos2[i]) {
142 return true;
143 }
144 if(pos2[i] > entry2.pos2[i]) {
145 return false;
146 }
147 }
148 return false;
149 };
150 MBool operator==(const connectionNode& entry2) const {
151 if(BC != entry2.BC) {
152 return false;
153 }
154 if(blockId1 != entry2.blockId1) {
155 return false;
156 }
157 if(blockId2 != entry2.blockId2) {
158 return false;
159 }
160 for(MInt i = 0; i < nDim; ++i) {
161 if(pos1[i] != entry2.pos1[i]) {
162 return false;
163 }
164 if(pos2[i] != entry2.pos2[i]) {
165 return false;
166 }
167 }
168 return true;
169 };
170};
171
172
173template <MInt nDim>
175 public:
182 MInt endindex[nDim]{};
184 MInt BC = -1;
187};
188
189
190class ParallelIoHdf5;
191
192template <MInt nDim>
194 template <MInt nDim_>
195 friend class FvStructuredSolver;
198 template <MInt nDim_>
199 friend class StructuredBndryCnd;
200 template <MInt nDim_>
202
203 public:
204 FvStructuredSolverWindowInfo(StructuredGrid<nDim>*, MPI_Comm, const MInt, const MInt, const MInt);
206 void readWindowInfo();
207 void mapCreate(MInt Id1, MInt* start1, MInt* end1, MInt* step1, MInt Id2, MInt* start2, MInt* end2, MInt* step2,
208 MInt* order, MInt BC, std::unique_ptr<StructuredWindowMap<nDim>>& output);
209
210 void setSpongeInformation(MInt noSpongeInfo, MFloat* beta, MFloat* sigma, MFloat* thickness, MInt* bcInfo,
211 MInt informationType);
212 void setWallInformation();
215
216 MBool mapCheck(std::unique_ptr<StructuredWindowMap<nDim>>& input);
217 MBool mapCheck0d(std::unique_ptr<StructuredWindowMap<nDim>>& input);
218 MBool mapCheck1d(std::unique_ptr<StructuredWindowMap<nDim>>& input);
219 MBool mapCheck3d(std::unique_ptr<StructuredWindowMap<nDim>>& input);
220 MBool mapCheck2d(std::unique_ptr<StructuredWindowMap<nDim>>& input);
221 MBool mapCheckWave(std::unique_ptr<StructuredWindowMap<nDim>>& input);
222 void mapPrint(const std::unique_ptr<StructuredWindowMap<nDim>>& input);
223 void mapPrintSimple(std::unique_ptr<StructuredWindowMap<nDim>>& input);
224 void mapZero(std::unique_ptr<StructuredWindowMap<nDim>>& output);
225 MInt mapCompare(std::unique_ptr<StructuredWindowMap<nDim>>& map1, std::unique_ptr<StructuredWindowMap<nDim>>& map2);
226 MInt mapCompare11(const std::unique_ptr<StructuredWindowMap<nDim>>& map1,
227 const std::unique_ptr<StructuredWindowMap<nDim>>& map2);
228 void mapInvert(std::unique_ptr<StructuredWindowMap<nDim>>& input, std::unique_ptr<StructuredWindowMap<nDim>>& output);
229 void mapInvert1(std::unique_ptr<StructuredWindowMap<nDim>>& output);
230 void mapNormalize1(std::unique_ptr<StructuredWindowMap<nDim>>& input,
231 std::unique_ptr<StructuredWindowMap<nDim>>& output);
232 void mapNormalize2(std::unique_ptr<StructuredWindowMap<nDim>>& input,
233 std::unique_ptr<StructuredWindowMap<nDim>>& output);
234 void mapNormalize3(std::unique_ptr<StructuredWindowMap<nDim>>& output);
235 void mapCombine11(std::unique_ptr<StructuredWindowMap<nDim>>& input1,
236 std::unique_ptr<StructuredWindowMap<nDim>>& input2,
237 std::unique_ptr<StructuredWindowMap<nDim>>& output);
238 void mapCombine12(std::unique_ptr<StructuredWindowMap<nDim>>& input1,
239 std::unique_ptr<StructuredWindowMap<nDim>>& input2,
240 std::unique_ptr<StructuredWindowMap<nDim>>& output);
241 void mapCombine21(std::unique_ptr<StructuredWindowMap<nDim>>& input1,
242 std::unique_ptr<StructuredWindowMap<nDim>>& input2,
243 std::unique_ptr<StructuredWindowMap<nDim>>& output);
244 void mapCombine22(std::unique_ptr<StructuredWindowMap<nDim>>& input1,
245 std::unique_ptr<StructuredWindowMap<nDim>>& input2,
246 std::unique_ptr<StructuredWindowMap<nDim>>& output);
247 void mapCombineWave(std::unique_ptr<StructuredWindowMap<nDim>>& input1,
248 std::unique_ptr<StructuredWindowMap<nDim>>& input2,
249 std::unique_ptr<StructuredWindowMap<nDim>>& output);
250 void mapCombineCell11(std::unique_ptr<StructuredWindowMap<nDim>>& input1,
251 std::unique_ptr<StructuredWindowMap<nDim>>& input2,
252 std::unique_ptr<StructuredWindowMap<nDim>>& output);
253 void mapCombineCell12(std::unique_ptr<StructuredWindowMap<nDim>>& input1,
254 std::unique_ptr<StructuredWindowMap<nDim>>& input2,
255 std::unique_ptr<StructuredWindowMap<nDim>>& output);
256 void mapCombineCell21(std::unique_ptr<StructuredWindowMap<nDim>>& input1,
257 std::unique_ptr<StructuredWindowMap<nDim>>& input2,
258 std::unique_ptr<StructuredWindowMap<nDim>>& output);
259 void mapCombineCell22(std::unique_ptr<StructuredWindowMap<nDim>>& input1,
260 std::unique_ptr<StructuredWindowMap<nDim>>& input2,
261 std::unique_ptr<StructuredWindowMap<nDim>>& output);
262
263 void mapCpy(std::unique_ptr<StructuredWindowMap<nDim>>& input, std::unique_ptr<StructuredWindowMap<nDim>>& output);
264 void readMapFromArray(std::unique_ptr<StructuredWindowMap<nDim>>& map, MInt* array);
265 void writeMapToArray(std::unique_ptr<StructuredWindowMap<nDim>>& map, MInt* array);
266
267 void initGlobals();
268 void writeConnectionWindowInformation3D(MFloat* periodicDisplacements);
269 void writeConnectionWindowInformation2D(MFloat* /*periodicDisplacements*/){};
270 void readConnectionWindowInformation3D(MFloat* periodicDisplacments);
271 void readConnectionWindowInformation2D(MFloat* /*periodicDisplacments*/){};
272 void createWindowMapping(MPI_Comm* channelIn, MPI_Comm* channelOut, MPI_Comm* channelWorld, MInt* channelRoots,
273 MPI_Comm* commStg, MInt* commStgRoot, MInt* commStgRootGlobal, MPI_Comm* commBC2600,
274 MInt* commBC2600Root, MInt* commBC2600RootGlobal, MPI_Comm* rescalingCommGrComm,
275 MInt* rescalingCommGrRoot, MInt* rescalingCommGrRootGlobal, MPI_Comm* commPerRotOne,
276 MPI_Comm* commPerRotTwo, MPI_Comm* commPerRotWorld, MInt* rotationRoots, MInt& perRotGroup,
277 SingularInformation* singularity, MInt* hasSingularity, MPI_Comm* plenumComm,
278 MInt* plenumRoots);
280 void createCommunicationExchangeFlags(std::vector<std::unique_ptr<StructuredComm<nDim>>>&,
281 std::vector<std::unique_ptr<StructuredComm<nDim>>>&, const MInt,
282 MFloat* const* const);
283 void createWaveCommunicationExchangeFlags(std::vector<std::unique_ptr<StructuredComm<nDim>>>&,
284 std::vector<std::unique_ptr<StructuredComm<nDim>>>&,
285 const MInt noVariables);
286 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> localStructuredBndryCndMaps;
287 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> channelSurfaceIndices;
288 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> plenumInletSurfaceIndices;
289 // for the sponge
290 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> m_spongeInfoMap;
291 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> m_wallDistInfoMap;
292 // zonal
293 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> m_zonalBCMaps;
295 //
296 void createAuxDataMap(const MInt, const MString, const std::vector<MInt>&, const std::vector<MInt>&, const MBool);
297
298
299 //=============================================================================================
300 // new functions and variables
301 void readWindowCoordinates(MFloat* periodicDisplacements);
302 void deleteDuplicateWindows(std::vector<std::unique_ptr<StructuredWindowMap<nDim>>>&,
303 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>>&);
305 void deleteDuplicateBCMaps(std::vector<std::unique_ptr<StructuredWindowMap<nDim>>>&);
306 void setBCsingular(std::unique_ptr<StructuredWindowMap<nDim>>&, std::unique_ptr<StructuredWindowMap<nDim>>&,
307 const MInt);
308 void periodicPointsChange(MFloat* pt, MInt type, MFloat* periodicDisplacements); // transform point coords
309
310 // for mutilsolver and periodic connections
311 MBool addConnection(MInt connectiontype, MInt b1, MInt* p1, MInt b2, MInt* p2);
314
315 // for special connecitons
316 MBool addConnection(MInt connectiontype, MInt b1, MInt* p1, MInt b2, MInt* p2, MInt Nstar);
321
322 std::multiset<connectionNode> connectionset; // CHANGE_SET
323 std::multiset<connectionNode> singularconnectionset; // CHANGE_SET
324 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> window2d;
325 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> window1d;
326 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> window0d;
327 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> singularwindow;
328 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> localSingularMap;
329 //==============================================================================================
330
331 // Position in globalStructuredBndryCndMaps and windowId of all windows for which auxData is requested according to
332 // property file
333 std::map<MInt, MInt> m_auxDataWindowIds;
334
335 private:
337
338 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> globalStructuredBndryCndMaps;
339 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> localStructuredDomainMaps;
340 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> localStructuredDomainBndryMaps;
341
342 // diagonal communication
343 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> m_partitionMapsWithGC;
344 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> m_partitionMapsWithoutGC;
345 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> rcvMap;
346 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> sndMap;
347 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> rcvMapPeriodic;
348 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> sndMapPeriodic;
349 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> physicalBCMap;
350 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> physicalAuxDataMap;
351 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> waveRcvMap;
352 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>> waveSndMap;
353 std::vector<std::unique_ptr<windowInformation<nDim>>> inputWindows;
357 std::unique_ptr<StructuredWindowMap<nDim>> m_myMapWithGC = nullptr;
358 std::unique_ptr<StructuredWindowMap<nDim>> m_myMapWithoutGC = nullptr;
359
360 // Communication related
361 MInt noDomains() const { return m_noDomains; }
362 MInt domainId() const { return m_domainId; }
363 MInt solverId() const { return m_solverId; }
364
372};
373
374#endif
2D structured solver class
3D structured solver class
Base class of the structured solver.
void mapPrintSimple(std::unique_ptr< StructuredWindowMap< nDim > > &input)
void writeConnectionWindowInformation3D(MFloat *periodicDisplacements)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > sndMap
void mapCombine12(std::unique_ptr< StructuredWindowMap< nDim > > &input1, std::unique_ptr< StructuredWindowMap< nDim > > &input2, std::unique_ptr< StructuredWindowMap< nDim > > &output)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > singularwindow
std::multiset< connectionNode > connectionset
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > window2d
void mapCombineCell22(std::unique_ptr< StructuredWindowMap< nDim > > &input1, std::unique_ptr< StructuredWindowMap< nDim > > &input2, std::unique_ptr< StructuredWindowMap< nDim > > &output)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > channelSurfaceIndices
void createAuxDataMap(const MInt, const MString, const std::vector< MInt > &, const std::vector< MInt > &, const MBool)
void createWaveCommunicationExchangeFlags(std::vector< std::unique_ptr< StructuredComm< nDim > > > &, std::vector< std::unique_ptr< StructuredComm< nDim > > > &, const MInt noVariables)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > localStructuredBndryCndMaps
MBool mapCheck0d(std::unique_ptr< StructuredWindowMap< nDim > > &input)
void mapNormalize2(std::unique_ptr< StructuredWindowMap< nDim > > &input, std::unique_ptr< StructuredWindowMap< nDim > > &output)
MInt mapCompare11(const std::unique_ptr< StructuredWindowMap< nDim > > &map1, const std::unique_ptr< StructuredWindowMap< nDim > > &map2)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > physicalAuxDataMap
void setBCsingular(std::unique_ptr< StructuredWindowMap< nDim > > &, std::unique_ptr< StructuredWindowMap< nDim > > &, const MInt)
MBool mapCheckWave(std::unique_ptr< StructuredWindowMap< nDim > > &input)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > m_wallDistInfoMap
void mapCombine22(std::unique_ptr< StructuredWindowMap< nDim > > &input1, std::unique_ptr< StructuredWindowMap< nDim > > &input2, std::unique_ptr< StructuredWindowMap< nDim > > &output)
void deleteDuplicateWindows(std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > &, std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > &)
void mapCombine11(std::unique_ptr< StructuredWindowMap< nDim > > &input1, std::unique_ptr< StructuredWindowMap< nDim > > &input2, std::unique_ptr< StructuredWindowMap< nDim > > &output)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > m_partitionMapsWithGC
std::multiset< connectionNode > singularconnectionset
void writeMapToArray(std::unique_ptr< StructuredWindowMap< nDim > > &map, MInt *array)
MBool mapCheck1d(std::unique_ptr< StructuredWindowMap< nDim > > &input)
void readConnectionWindowInformation3D(MFloat *periodicDisplacments)
void mapCombineCell11(std::unique_ptr< StructuredWindowMap< nDim > > &input1, std::unique_ptr< StructuredWindowMap< nDim > > &input2, std::unique_ptr< StructuredWindowMap< nDim > > &output)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > waveSndMap
std::vector< std::unique_ptr< windowInformation< nDim > > > inputWindows
void mapCreate(MInt Id1, MInt *start1, MInt *end1, MInt *step1, MInt Id2, MInt *start2, MInt *end2, MInt *step2, MInt *order, MInt BC, std::unique_ptr< StructuredWindowMap< nDim > > &output)
void readMapFromArray(std::unique_ptr< StructuredWindowMap< nDim > > &map, MInt *array)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > localSingularMap
void mapPrint(const std::unique_ptr< StructuredWindowMap< nDim > > &input)
MBool mapCheck2d(std::unique_ptr< StructuredWindowMap< nDim > > &input)
void setSpongeInformation(MInt noSpongeInfo, MFloat *beta, MFloat *sigma, MFloat *thickness, MInt *bcInfo, MInt informationType)
void mapCombineCell12(std::unique_ptr< StructuredWindowMap< nDim > > &input1, std::unique_ptr< StructuredWindowMap< nDim > > &input2, std::unique_ptr< StructuredWindowMap< nDim > > &output)
void deleteDuplicateBCMaps(std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > &)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > plenumInletSurfaceIndices
std::unique_ptr< StructuredWindowMap< nDim > > m_myMapWithGC
void mapZero(std::unique_ptr< StructuredWindowMap< nDim > > &output)
MBool checkZonalBCMaps(std::unique_ptr< StructuredWindowMap< nDim > > &, std::unique_ptr< StructuredWindowMap< nDim > > &)
void mapCombineWave(std::unique_ptr< StructuredWindowMap< nDim > > &input1, std::unique_ptr< StructuredWindowMap< nDim > > &input2, std::unique_ptr< StructuredWindowMap< nDim > > &output)
void createCommunicationExchangeFlags(std::vector< std::unique_ptr< StructuredComm< nDim > > > &, std::vector< std::unique_ptr< StructuredComm< nDim > > > &, const MInt, MFloat *const *const)
void mapCpy(std::unique_ptr< StructuredWindowMap< nDim > > &input, std::unique_ptr< StructuredWindowMap< nDim > > &output)
void mapNormalize3(std::unique_ptr< StructuredWindowMap< nDim > > &output)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > physicalBCMap
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > m_spongeInfoMap
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > rcvMapPeriodic
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > sndMapPeriodic
void mapNormalize1(std::unique_ptr< StructuredWindowMap< nDim > > &input, std::unique_ptr< StructuredWindowMap< nDim > > &output)
MInt mapCompare(std::unique_ptr< StructuredWindowMap< nDim > > &map1, std::unique_ptr< StructuredWindowMap< nDim > > &map2)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > localStructuredDomainMaps
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > window0d
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > rcvMap
MBool addConnection(MInt connectiontype, MInt b1, MInt *p1, MInt b2, MInt *p2)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > globalStructuredBndryCndMaps
void periodicPointsChange(MFloat *pt, MInt type, MFloat *periodicDisplacements)
void mapInvert(std::unique_ptr< StructuredWindowMap< nDim > > &input, std::unique_ptr< StructuredWindowMap< nDim > > &output)
void mapCombine21(std::unique_ptr< StructuredWindowMap< nDim > > &input1, std::unique_ptr< StructuredWindowMap< nDim > > &input2, std::unique_ptr< StructuredWindowMap< nDim > > &output)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > waveRcvMap
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > localStructuredDomainBndryMaps
void mapInvert1(std::unique_ptr< StructuredWindowMap< nDim > > &output)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > m_zonalBCMaps
void createWindowMapping(MPI_Comm *channelIn, MPI_Comm *channelOut, MPI_Comm *channelWorld, MInt *channelRoots, MPI_Comm *commStg, MInt *commStgRoot, MInt *commStgRootGlobal, MPI_Comm *commBC2600, MInt *commBC2600Root, MInt *commBC2600RootGlobal, MPI_Comm *rescalingCommGrComm, MInt *rescalingCommGrRoot, MInt *rescalingCommGrRootGlobal, MPI_Comm *commPerRotOne, MPI_Comm *commPerRotTwo, MPI_Comm *commPerRotWorld, MInt *rotationRoots, MInt &perRotGroup, SingularInformation *singularity, MInt *hasSingularity, MPI_Comm *plenumComm, MInt *plenumRoots)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > m_partitionMapsWithoutGC
void mapCombineCell21(std::unique_ptr< StructuredWindowMap< nDim > > &input1, std::unique_ptr< StructuredWindowMap< nDim > > &input2, std::unique_ptr< StructuredWindowMap< nDim > > &output)
void readWindowCoordinates(MFloat *periodicDisplacements)
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > window1d
std::unique_ptr< StructuredWindowMap< nDim > > m_myMapWithoutGC
MBool mapCheck(std::unique_ptr< StructuredWindowMap< nDim > > &input)
MBool mapCheck3d(std::unique_ptr< StructuredWindowMap< nDim > > &input)
Base class of the structured boundary conditions.
Class for the decomposition (partition) of structured grids.
Structured grid class.
MBool operator<(const connectionNode &entry2) const
connectionNode(MInt a, MInt b1, MInt *p1, MInt b2, MInt *p2, MBool enableSwap, MInt _nDim)
connectionNode(MInt a, MInt b1, MInt *p1, MInt b2, MInt *p2, MInt _nDim)
MBool operator==(const connectionNode &entry2) const
int32_t MInt
Definition: maiatypes.h:62
std::basic_string< char > MString
Definition: maiatypes.h:55
double MFloat
Definition: maiatypes.h:52
bool MBool
Definition: maiatypes.h:58
Definition: contexttypes.h:19