7#ifndef FVSOLVERSTRUCTWINDOWSINFO
8#define FVSOLVERSTRUCTWINDOWSINFO
42 for(
MInt dim = 0; dim <
nDim; dim++) {
54 for(
MInt dim = 0; dim <
nDim; dim++) {
67 if(b2 < b1) swap =
true;
69 for(
MInt countDim = 0; countDim <
nDim; ++countDim) {
70 if(p1[countDim] < p2[countDim])
break;
71 if(p1[countDim] > p2[countDim]) {
83 for(
MInt dim = 0; dim <
nDim; dim++) {
91 for(
MInt dim = 0; dim <
nDim; dim++) {
100 std::cout <<
"============================" << std::endl;
101 std::cout <<
BC << std::endl;
103 for(
MInt dim = 0; dim <
nDim; dim++) {
104 std::cout <<
" " <<
pos1[dim];
106 std::cout << std::endl;
108 for(
MInt dim = 0; dim <
nDim; dim++) {
109 std::cout <<
" " <<
pos2[dim];
111 std::cout << std::endl;
112 std::cout <<
"Nstar: " <<
Nstar << std::endl;
113 std::cout <<
"============================" << std::endl;
151 if(
BC != entry2.
BC) {
194 template <MInt nDim_>
198 template <MInt nDim_>
200 template <MInt nDim_>
211 MInt informationType);
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,
285 const MInt noVariables);
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;
345 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>>
rcvMap;
346 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>>
sndMap;
351 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>>
waveRcvMap;
352 std::vector<std::unique_ptr<StructuredWindowMap<nDim>>>
waveSndMap;
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 removeConnection(connectionNode a)
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
void createWaveWindowMapping(MInt)
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
MPI_Comm m_StructuredComm
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 setWallInformation()
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 readConnectionWindowInformation2D(MFloat *)
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 writeConnectionWindowInformation2D(MFloat *)
void mapCombineWave(std::unique_ptr< StructuredWindowMap< nDim > > &input1, std::unique_ptr< StructuredWindowMap< nDim > > &input2, std::unique_ptr< StructuredWindowMap< nDim > > &output)
void setLocalWallInformation()
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
MInt noInputWindowInformation
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > m_spongeInfoMap
MInt noInputWindowConnections
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > rcvMapPeriodic
void multiBlockAssembling()
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)
void singularityAssembling()
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > localStructuredDomainMaps
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > window0d
void deleteDuplicateCommMaps()
std::vector< std::unique_ptr< StructuredWindowMap< nDim > > > rcvMap
StructuredGrid< nDim > * m_grid
~FvStructuredSolverWindowInfo()
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::map< MInt, MInt > m_auxDataWindowIds
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
MBool findConnection(connectionNode a)
void setZonalBCInformation()
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.
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)
connectionNode(MInt _nDim)
MBool operator==(const connectionNode &entry2) const
std::basic_string< char > MString