MAIA bb96820c
Multiphysics at AIA
|
#include <cartesiangrid.h>
Classes | |
struct | azimuthalBbox |
Public Types | |
using | MInt_dyn_array = MInt * |
using | Tree = maia::grid::tree::Tree< nDim > |
using | Cell = typename Tree::Cell |
Public Member Functions | |
MBool | hasCutOff () const |
Returns weather the grid has a cutOff. More... | |
MLong & | a_parentId (const MInt cellId) |
Returns the parent of the cell cellId . More... | |
MLong | a_parentId (const MInt cellId) const |
Returns the parent of the cell cellId . More... | |
MLong | a_parentId (const MInt cellId, const MInt solverId) const |
Returns the parent of the cell cellId . More... | |
MBool | a_hasParent (const MInt cellId) const |
Returns if the cell cellId has a parent. More... | |
MBool | a_hasParent (const MInt cellId, const MInt solverId) const |
Returns if the cell cellId has a parent. More... | |
MLong & | a_childId (const MInt cellId, const MInt pos) |
Returns the child id of the cell cellId at position pos . More... | |
MLong | a_childId (const MInt cellId, const MInt pos) const |
Returns the child id of the cell cellId at position pos . More... | |
MLong | a_childId (const MInt cellId, const MInt pos, const MInt solverId) const |
Returns the child id of the cell cellId at position pos . More... | |
MLong | noPartitionCellsGlobal () const |
MInt & | a_level (const MInt cellId) |
Returns the level of the cell cellId . More... | |
MInt | a_level (const MInt cellId) const |
Returns the level of the cell cellId . More... | |
MFloat | a_workload (const MInt cellId) const |
Returns the workload of the cell cellId . More... | |
MFloat & | a_workload (const MInt cellId) |
Returns the workload of the cell cellId . More... | |
MInt | a_noOffsprings (const MInt cellId) const |
Returns the noOffsprings of the cell . More... | |
MInt & | a_noOffsprings (const MInt cellId) |
Returns the noOffsprings of the cell . More... | |
MLong & | a_globalId (const MInt cellId) |
Returns the globalId of the cell cellId in collector cells_ . More... | |
MLong | a_globalId (const MInt cellId) const |
Returns the globalId of the cell cellId in collector cells_ . More... | |
MFloat & | a_weight (const MInt cellId) |
Returns the weight of the cell cellId . More... | |
MFloat | a_weight (const MInt cellId) const |
Returns the weight of the cell cellId . More... | |
MInt | a_noChildren (const MInt cellId) const |
Returns the no. of children of the cell cellId . More... | |
MInt | a_hasChildren (const MInt cellId) const |
Returns if the cell cellId has children. More... | |
MInt | a_hasChildren (const MInt cellId, const MInt solverId) const |
Returns if the cell cellId has children. More... | |
MInt | a_hasChild (const MInt cellId, const MInt pos) const |
Returns if the cell cellId has a child at position pos . More... | |
MInt | a_hasChild (const MInt cellId, const MInt pos, const MInt solverId) const |
Returns if the cell cellId has a child at position pos . More... | |
maia::grid::cell::BitsetType::reference | a_isToDelete (const MInt cellId) |
Returns the delete of the cell cellId . More... | |
MBool | a_isToDelete (const MInt cellId) const |
Returns the delete of the cell cellId . More... | |
MLong & | a_neighborId (const MInt cellId, const MInt dir) |
Returns the neighbor id of the cell cellId dir . More... | |
MLong | a_neighborId (const MInt cellId, const MInt dir) const |
Returns the neighbor id of the cell cellId dir . More... | |
MLong | a_neighborId (const MInt cellId, const MInt dir, const MInt solverId) const |
Returns the neighbor id of the cell cellId dir . More... | |
MFloat & | a_coordinate (const MInt cellId, const MInt dir) |
Returns the coordinate of the cell cellId for direction dir . More... | |
MFloat | a_coordinate (const MInt cellId, const MInt dir) const |
Returns the coordinate of the cell cellId for direction dir . More... | |
template<class U > | |
MFloat | a_coordinate (Collector< U > *NotUsed(cells_), const MInt cellId, const MInt dir) const |
Returns the coordinate of the cell cellId in collector cells_ for direction dir . More... | |
MBool | a_isLeafCell (const MInt cellId) const |
Returns whether cell is leaf cellId . More... | |
maia::grid::tree::SolverBitsetType::reference | a_isLeafCell (const MInt cellId, const MInt solverId) |
Returns whether cell is leaf cellId . More... | |
MBool | a_isLeafCell (const MInt cellId, const MInt solverId) const |
Returns whether cell is leaf cellId . More... | |
MBool | a_hasNeighbor (const MInt cellId, const MInt dir) const |
Returns noNeighborIds of the cell CellId . More... | |
MBool | a_hasNeighbor (const MInt cellId, const MInt dir, const MInt solverId) const |
Returns noNeighborIds of the cell CellId . More... | |
void | a_resetProperties (const MInt cellId) |
Returns property p of the cell cellId . More... | |
void | a_copyProperties (const MInt fromCellId, const MInt toCellId) |
Returns property p of the cell cellId . More... | |
maia::grid::cell::BitsetType::reference | a_hasProperty (const MInt cellId, const Cell p) |
Returns property p of the cell cellId . More... | |
MBool | a_hasProperty (const MInt cellId, const Cell p) const |
Returns property p of the cell cellId . More... | |
MString | a_propertiesToString (const MInt cellId) |
MBool | a_isHalo (const MInt cellId) const |
Returns property p of the cell cellId . More... | |
maia::grid::tree::SolverBitsetType::reference | a_solver (const MInt cellId, const MInt solverId) |
Returns if cell cellId is used by solver solverId . More... | |
void | setSolver (const MInt cellId, const MInt solverId, MBool flag) |
Sets if cell is used by solver. More... | |
MBool | addSolverToGrid () |
MBool | wasAdapted () const |
MBool | wasBalanced () const |
MBool | wasBalancedAtLeastOnce () const |
template<class F > | |
MInt | reduceToLevel (const MInt reductionLevel, F interpolateToParentCells) |
Reduces the current grid to a certain level. More... | |
MFloat | cellLengthAtLevel (const MInt level) const |
Returns cell length at cell level level . More... | |
MFloat | cellLengthAtCell (const MInt cellId) const |
Returns the cell length of cell cellId . More... | |
MFloat | halfCellLength (const MInt cellId) const |
Returns the half cell length of cell cellId . More... | |
MFloat | cellVolumeAtLevel (const MInt level) const |
void | boundingBox (MFloat *const box) const |
const MFloat * | globalBoundingBox () const |
return global Bounding box More... | |
void | centerOfGravity (MFloat *const center) const |
MFloat | lengthLevel0 () const |
Return the length of the level 0 cell. More... | |
MInt | noInternalCells () const |
Return number of internal cells (i.e., excluding halo cells) More... | |
MInt | noNeighborDomains () const |
Return number of neighbor domains. More... | |
const MInt & | neighborDomain (const MInt id) const |
Return neighbor domain. More... | |
const std::vector< MInt > & | neighborDomains () const |
Return vector of neighbor domains. More... | |
const MLong & | domainOffset (const MInt id) const |
Return domain offset. More... | |
MInt | noHaloCells (const MInt domainId) const |
Return number of halo cells for given domain. More... | |
constexpr MBool | paraViewPlugin () const |
MInt | haloCell (const MInt domainId, const MInt cellId) const |
Return halo cell id. More... | |
const std::vector< std::vector< MInt > > & | haloCells () const |
MInt | noWindowCells (const MInt domainId) const |
Return number of window cells for given domain. More... | |
MInt | windowCell (const MInt domainId, const MInt cellId) const |
Return window cell id. More... | |
const std::vector< std::vector< MInt > > & | windowCells () const |
MInt | windowLayer (const MInt domainId, const MInt cellId, const MInt solverId) const |
MBool | isSolverWindowCell (const MInt domainId, const MInt cellId, const MInt solverId) const |
MInt | noSolverWindowCells (const MInt domainId, const MInt solverId) const |
MInt | noSolverHaloCells (const MInt domainId, const MInt solverId, const MBool periodicCells) const |
MInt | noAzimuthalNeighborDomains () const |
Return number of azimuthal neighbor domains. More... | |
const MInt & | azimuthalNeighborDomain (const MInt id) const |
Return azimuthal neighbor domain. More... | |
const std::vector< MInt > & | azimuthalNeighborDomains () const |
Return vector of azimuthal neighbor domains. More... | |
MInt | noAzimuthalHaloCells (const MInt domainId) const |
Return number of azimuthal Halo cells for given domain. More... | |
MInt | azimuthalHaloCell (const MInt domainId, const MInt cellId) const |
Return azimuthal Halo cell id. More... | |
const std::vector< std::vector< MInt > > & | azimuthalHaloCells () const |
MInt | noAzimuthalUnmappedHaloCells () const |
MInt | azimuthalUnmappedHaloCell (const MInt cellId) const |
MInt | azimuthalUnmappedHaloDomain (const MInt cellId) const |
MInt | noAzimuthalWindowCells (const MInt domainId) const |
Return number of azimuthal window cells for given domain. More... | |
MInt | azimuthalWindowCell (const MInt domainId, const MInt cellId) const |
Return azimuthal window cell id. More... | |
const std::vector< std::vector< MInt > > & | azimuthalWindowCells () const |
MString | gridInputFileName () const |
Return grid file name. More... | |
MInt | maxUniformRefinementLevel () const |
Return maximum homogeneously-refined level. More... | |
MFloat | reductionFactor () const |
Return the reductionFactor. More... | |
MInt | maxRefinementLevel () const |
Return maximum possible refinement level. More... | |
MInt | centerOfGravity (MInt dir) const |
Return the center of gravity. More... | |
MInt | noMinCells () const |
Return the number of Cells on the minLevel. More... | |
MInt | minCell (const MInt id) const |
Return min-level cell id. More... | |
MLong | noCellsGlobal () const |
Return the Global-noCells. More... | |
MInt | noHaloLayers () const |
Return noHalo-a_noHaloLayers. More... | |
constexpr MInt | noHaloLayers (const MInt solverId) const |
MInt | haloMode () const |
MLong | localPartitionCellOffsets (const MInt index) const |
MInt | periodicCartesianDir (const MInt dir) const |
MFloat | periodicCartesianLength (const MInt dir) const |
MFloat | gridCellVolume (const MInt level) const |
MBool | checkOutsideAzimuthalDomain (MFloat *) |
void | tagAzimuthalHigherLevelExchangeCells (std::vector< MLong > &, std::vector< MLong > &, MInt) |
Tag azimuthal halo cells for refinement. More... | |
void | tagAzimuthalUnmappedHaloCells (std::vector< std::vector< MLong > > &, std::vector< MLong > &, std::vector< MInt > &, MInt) |
Tag azimuthal halo cells for refinement. More... | |
void | correctAzimuthalSolverBits () |
Corrects solver bits on azimuthal halo cells Ensure that azimuthal halo cells have all children or are not refined at all. Further ensure that parent cells have solverBit = true. More... | |
MInt | localPartitionCellLocalIds (const MInt id) const |
constexpr MInt | noPartitionCells () const |
constexpr MBool | allowInterfaceRefinement () const |
void | gridSanityChecks () |
Perform grid sanity checks. More... | |
void | checkWindowHaloConsistency (const MBool fullCheck=false, const MString a="") |
Checks consistency of window/halo cells. More... | |
void | checkAzimuthalWindowHaloConsistency () |
Checks consistency of aimuthal window/halo cells. More... | |
void | dumpCellData (const MString name) |
Write the cell data of the local tree to some file for debugging purposes. More... | |
MBool | updatedPartitionCells () const |
void | setUpdatedPartitionCells (const MBool flag) |
CartesianGrid (MInt maxCells, const MFloat *const bBox, const MPI_Comm comm, const MString &fileName="") | |
~CartesianGrid () | |
Tree & | treeb () |
Full access to tree (for now) More... | |
const Tree & | treeb () const |
MInt | maxLevel () const |
MInt | minLevel () const |
MInt | targetGridMinLevel () const |
MInt | maxPartitionLevelShift () const |
MInt | maxNoCells () const |
MPI_Comm | mpiComm () const |
Return the MPI communicator used by this grid. More... | |
MLong | bitOffset () const |
Return the 32-BitOffset. More... | |
template<MBool t_correct = false> | |
MInt | findContainingPartitionCell (const MFloat *const coord, const MInt solverId=-1, std::function< MFloat *(MInt, MFloat *const)> correctCellCoord=nullptr) |
Return the cell Id of the partition cell containing the coords. More... | |
MInt | intersectingWithPartitioncells (MFloat *const center, MFloat const radius) |
MInt | intersectingWithHaloCells (MFloat *const center, MFloat const radius, MInt domainId, MBool onlyPartition) |
MBool | intersectingWithLocalBoundingBox (MFloat *const center, MFloat const radius) |
MBool | boxSphereIntersection (const MFloat *bMin, const MFloat *bMax, const MFloat *const sphereCenter, MFloat const radius) |
MBool | hollowBoxSphereIntersection (const MFloat *bMin, const MFloat *bMax, const MFloat *const sphereCenter, MFloat const radius) |
MInt | ancestorPartitionCellId (const MInt cellId) const |
Return the cell Id of the partition cell that has the given cellId as a descendant. More... | |
MInt | findContainingHaloPartitionCell (const MFloat *const coors, const MInt solverId=-1) |
Return the cell id of the halo partition cell containing the coords. More... | |
template<MBool t_correct = false> | |
MInt | findContainingHaloCell (const MFloat *const coord, const MInt solverId, MInt domainId, MBool onlyPartitionCells, std::function< MFloat *(MInt, MFloat *const)> correctCellCoord=nullptr) |
Return the cell id of the halo partition cell containing the coords. More... | |
template<MBool t_correct = false> | |
MInt | findContainingLeafCell (const MFloat *coord, std::function< MFloat *(MInt, MFloat *const)> correctCellCoord=nullptr, const MInt solverId=-1) |
Return the cell Id of the leaf cell containing the coords. More... | |
template<MBool t_correct = false> | |
MInt | findContainingLeafCell (const std::array< MFloat, nDim > &coord, const MInt startId, std::function< MFloat *(MInt, MFloat *const)> *correctCellCoord=nullptr, const MInt solverId=-1, const MBool allowNonLeafHalo=false) |
template<MBool t_correct = false> | |
MInt | findContainingLeafCell (const MFloat *const coord, const MInt startId, std::function< MFloat *(MInt, MFloat *const)> correctCellCoord=nullptr, const MInt solverId=-1, const MBool allowNonLeafHalo=false) |
template<MBool t_correct = false, MBool insideLimit> | |
MBool | pointWthCell (const std::array< MFloat, nDim > &coord, const MInt cellId, std::function< MFloat *(MInt, MFloat *const)> correctCellCoord=nullptr) const |
template<MBool t_correct = false, MBool insideLimit> | |
MBool | pointWthCell (const MFloat *const coord, const MInt cellId, std::function< MFloat *(MInt, MFloat *const)> correctCellCoord=nullptr) const |
MFloat * | dummyCorrect (const MInt cellId, MFloat *coords) |
void | computeLocalBoundingBox (MFloat *const bbox) |
Compute the bounding box of all local cells. More... | |
MBool | pointInLocalBoundingBox (const MFloat *coord) |
Check if the given point lies in the local bounding box. More... | |
void | propagateDistance (std::vector< MInt > &list, MIntScratchSpace &distMem, MInt dist) |
propagates a given distance from a given list of cells on equal level neighbours More... | |
void | propagationStep (MInt cellId, MInt dist, MInt *distMem, MInt endDist) |
starts the propagation on a cell and continues calling the function for the neighbours More... | |
template<typename DATATYPE > | |
void | exchangeNotInPlace (DATATYPE *exchangeVar, DATATYPE *recvMem) |
communicates a variable from windows to halos but does not overwrite halo values. Window values are stored in a buffer. More... | |
template<typename DATATYPE > | |
void | generalExchange (MInt noVars, const MInt *vars, DATATYPE **exchangeVar, MInt noDomSend, MInt *domSend, const MInt *noCellsSendPerDom, const MInt *cellIdsSend, MInt noDomRecv, MInt *domRecv, const MInt *noCellsRecvPerDom, const MInt *cellIdsRecv) |
void | createGridSlice (const MString &axis, const MFloat intercept, const MString &fileName) |
Overload method of createGridSlice to provide usage with or without return of cellIds which are in the slice. More... | |
void | createGridSlice (const MString &axis, const MFloat intercept, const MString &fileName, const MInt solverId, MInt *const noSliceCellIds, MInt *const sliceCellIds, MInt *const noSliceHilbertIds=nullptr, MInt *const sliceHilbertInfo=nullptr, MInt *const noSliceContHilbertIds=nullptr, MInt *const sliceContiguousHilbertInfo=nullptr) |
Create a valid 2D grid which represents a slice from a 3D grid. More... | |
void | computeGlobalIds () |
Update number of internal cells, recalculate domain offsets, recalculate global ids for all internal cells and update global ids of all halo cells. More... | |
void | localToGlobalIds () |
Convert parent ids, neighbor ids, and child ids from local to global cell ids. More... | |
void | descendNoOffsprings (const MLong cellId, const MLong offset=0) |
void | storeMinLevelCells (const MBool updateMinlevel=false) |
Store cell ids of all min-level cells. More... | |
void | computeLeafLevel () |
Compute distance to leaf level. More... | |
void | determineNoPartitionCellsAndOffsets (MLong *const noPartitionCells, MLong *const partitionCellOffsets) |
Determine the number of partition cells on each domain and the corresponding offsets. More... | |
void | determinePartLvlAncestorHaloWindowCells (std::vector< std::vector< MInt > > &partLvlAncestorHaloCells, std::vector< std::vector< MInt > > &partLvlAncestorWindowCells) |
Store partition level ancestor window/halo cells. More... | |
void | balance (const MInt *const noCellsToReceiveByDomain, const MInt *const noCellsToSendByDomain, const MInt *const sortedCellId, const MLong *const offset, const MLong *const globalIdOffsets) |
Balance the grid according to the given cell send/recv counts. More... | |
MBool | updatePartitionCells (MInt offspringThreshold, MFloat workloadThreshold) |
Determine new partition cells (i.e. in/decrease the partition level shifts) and change the grid accordingly such that these partition cells are used for load balancing. More... | |
MLong | generateHilbertIndex (const MInt cellId, const MInt targetMinLevel) |
void | saveGrid (const MChar *, const std::vector< std::vector< MInt > > &, const std::vector< std::vector< MInt > > &, const std::vector< std::vector< MInt > > &, const std::vector< MInt > &, const std::vector< std::vector< MInt > > &, MInt *recalcIdTree=nullptr) |
void | saveGrid (const MChar *, MInt *recalcIdTree) |
void | savePartitionFile () |
Save current grid partitioning to file. More... | |
void | loadPartitionFile (const MString &partitionFileName, MLong *partitionCellOffsets) |
Load a grid partitioning from a file. More... | |
void | savePartitionCellWorkloadsGridFile () |
Update the partition cell workloads in the grid file. More... | |
void | deletePeriodicConnection (const MBool=true) |
Delete the Connection of periodic-Halo-Cells at the bounding box. More... | |
void | restorePeriodicConnection () |
Delete the Connection of periodic-Halo-Cells at the bounding box. More... | |
MInt | findNeighborDomainId (const MLong globalId) |
MInt | findNeighborDomainId (const MLong globalId, const MInt noDomains, const MLong *domainOffsets) |
Find domain id containing a given global cell id. More... | |
void | createLeafCellMapping (const MInt donorSolverId, const MInt gridCellId, std::vector< MInt > &mappedLeafCells, MBool allChilds=false) |
Identify all leaf cells of one solver which are mapped to a given grid cell. More... | |
MInt | globalIdToLocalId (const MLong &globalId, const MBool termIfNotExisting=false) |
Global to local id mapping. More... | |
MInt | noDomains () const |
MInt | domainId () const |
Return the domainId (rank) More... | |
void | cartesianToCylindric (const MFloat *, MFloat *) |
Transform cartesian cell coordinate to cylindrcal coordinats using the / using the azimuthal periodic center. More... | |
void | rotateCartesianCoordinates (MFloat *, MFloat) |
Rotate caresian coordinates by angle. Azimuthal periodic center is used. More... | |
template<MBool t_correct> | |
MInt | findContainingPartitionCell (const MFloat *const coord, const MInt solverId, function< MFloat *(MInt, MFloat *const)> correctCellCoord) |
Find the partition cell containing a given coordinate (if any). If a valid solverId is given it is also checked that the found partition cell belongs to this solver. More... | |
template<MBool t_correct> | |
MInt | findContainingHaloCell (const MFloat *const coord, const MInt solverId, MInt domainId, MBool onlyPartitionCells, function< MFloat *(MInt, MFloat *const)> correctCellCoord) |
template<MBool t_correct> | |
MInt | findContainingLeafCell (const MFloat *coord, function< MFloat *(MInt, MFloat *const)> correctCellCoord, const MInt solverId) |
returns the local id of the leaf cell (global or for solver) containing some coordinates p More... | |
template<MBool t_correct> | |
MInt | findContainingLeafCell (const MFloat *const coord, const MInt startId, function< MFloat *(MInt, MFloat *const)> correctCellCoord, const MInt solverId, const MBool allowNonLeafHalo) |
returns the local id of the leaf cell (global or for solver) containing some coordinates p based on a given startId NOTE: also cells on the same rank, but far away from the startId are considered! More... | |
Static Public Member Functions | |
static constexpr MInt | nDim_ () |
Static Public Attributes | |
static constexpr MInt | m_maxNoSensors = 64 |
Private Member Functions | |
void | createGlobalToLocalIdMapping () |
Create the mapping from global to local cell ids. More... | |
void | changeGlobalToLocalIds () |
Change global child/neighbor/parent cell ids into local cell ids. Requires that m_globalToLocalId contains the current mapping from global to local cell ids (see createGlobalToLocalIdMapping()). More... | |
void | descendStoreGlobalId (MInt cellId, MInt &localCnt) |
Recursively descend subtree to reset global id for internal cells. More... | |
void | refineCell (const MInt cellId, const MLong *const refineChildIds=nullptr, const MBool mayHaveChildren=false, const std::vector< std::function< MInt(const MFloat *, const MInt, const MInt)> > &=std::vector< std::function< MInt(const MFloat *, const MInt, const MInt)> >(), const std::bitset< maia::grid::tree::Tree< nDim >::maxNoSolvers()> refineFlag=std::bitset< maia::grid::tree::Tree< nDim >::maxNoSolvers()>(1ul)) |
void | removeChilds (const MInt cellId) |
removes the children of the given cell More... | |
template<MBool removeChilds> | |
void | removeCell (const MInt cellId) |
removes the children of the given cell More... | |
MInt | deleteCell (const MInt cellId) |
Deletes a cell (without collector fragmentation) and returns new collector size. More... | |
void | createPaths () |
Necessary for extractPointIdsFromGrid function. More... | |
void | setLevel () |
Set minimum und maximum cell levels. More... | |
void | updatePartitionCellInformation () |
Update the partition cell local/global ids and the partition cell global offsets. More... | |
void | setGridInputFilename (MBool=false) |
Read grid file name from properties or restart files. More... | |
void | loadGridFile (const MInt, const MInt) |
Load grid from disk and setup communication. More... | |
MLong | hilbertIndexGeneric (const MFloat *const coords, const MFloat *const center, const MFloat length0, const MInt baseLevel) const |
Return the hilbert index for the given coordinates in 2D/3D. More... | |
MLong | hilbertIndexGeneric (const MFloat *const coords) const |
MLong | generateHilbertIndex (const MInt cellId) |
template<class ITERATOR , typename U > | |
MInt | findIndex (ITERATOR, ITERATOR, const U &) |
Find index in array [first,last) with matching entry 'val'. More... | |
template<typename TA , typename TB , typename TC > | |
MInt | setNeighborDomainIndex (const MInt, std::vector< TA > &, std::vector< TB > &, std::vector< TC > &) |
Find neighbor domain index or create new if not existing. More... | |
template<typename TA , typename TB > | |
MInt | setNeighborDomainIndex (const MInt, std::vector< TA > &, std::vector< TB > &) |
Find neighbor domain index or create new if not existing. More... | |
MInt | setAzimuthalNeighborDomainIndex (const MInt, std::vector< std::vector< MInt > > &, std::vector< std::vector< MInt > > &) |
Find azimuthal neighbor domain index or create new if not existing. More... | |
MInt | setAzimuthalNeighborDomainIndex (const MInt, std::vector< std::vector< MInt > > &, std::vector< std::vector< MLong > > &) |
Find azimuthal neighbor domain index or create new if not existing. More... | |
template<std::size_t N> | |
void | exchangeSolverBitset (std::bitset< N > *const data, const MBool defaultVal=false) |
void | checkWindowLayer (const MString a) |
Checks variable m_windowLayer_. More... | |
void | loadGrid (const MString &fileName) |
Load a grid file writen with saveGridDomainPar. More... | |
void | resetCell (const MInt &cellId) |
Reset cell to default values. More... | |
void | initGridMap () |
void | createGridMap (const MString &donorGridFileName, const MString &gridMapFileName) |
Create file that contains mapping from donor to target cell. More... | |
void | saveDonorGridPartition (const MString &gridMapFileName, const MString &gridPartitionFileName) |
Create and store donor grid partition for volume-coupled simulations. More... | |
void | loadDonorGridPartition (const MLong *const partitionCellsId, const MInt noPartitionCells) |
Return partition cell offsets based on grid partition file. More... | |
void | savePartitionFile (const MString &partitionFileNameBase, const MLong partitionCellOffset) |
Save given partitioning to file. More... | |
template<typename CELLTYPE > | |
void | calculateNoOffspringsAndWorkload (Collector< CELLTYPE > *input_cells, MInt input_noCells) |
Caluclate the number of offsprings and the workload for each cell. More... | |
void | partitionParallel (const MInt tmpCount, const MLong tmpOffset, const MFloat *const partitionCellsWorkload, const MLong *const partitionCellsGlobalId, const MFloat totalWorkload, MLong *partitionCellOffsets, MLong *globalIdOffsets, MBool computeOnlyPartition=false) |
void | updateHaloCellCollectors () |
Fill m_nghbrDomains, m_haloCells and m_windowCells with data from temporary buffers. More... | |
void | tagActiveWindows (std::vector< MLong > &, MInt) |
Flag m_noHaloLayers layers of halo cells adjacent to internal cells on this domain. More... | |
void | tagActiveWindows2_ (std::vector< MLong > &, const MInt) |
NOTE: Actually the most clever way of tagging is to go from highest level to lower levels, but that means quite some work to do! More... | |
void | tagActiveWindowsOnLeafLvl3 (const MInt maxLevel, const MBool duringMeshAdaptation, const std::vector< std::function< void(const MInt)> > &=std::vector< std::function< void(const MInt)> >()) |
Don't touch this function, because you don't know what you are doing NOTE: Actually the most clever way of tagging is to go from highest level to lower levels (if we want to have the predefined number of halo layers on leaf level), but that means quite some work to do! More... | |
void | tagActiveWindowsAtMinLevel (const MInt) |
Actually the most clever way of tagging is to go from highest level to lower levels, but that means quite some work to do! More... | |
MInt | getAdjacentGridCells (MInt, MIntScratchSpace &, MInt, MBool diagonalNeighbors=true) |
Retrieves all direct and diagonal neighboring cells of the given cell on the child level if available. More... | |
template<MBool finer, MBool coarser> | |
MInt | getAdjacentGridCells5 (const MInt, MInt *const, const MInt level=-1, const MBool diagonalNeighbors=true) |
template<MBool finer, MBool coarser> | |
void | getAdjacentGridCells1d5 (std::set< MInt > &, const MInt, const MInt, const MInt dimNext=-1, const MInt dimNextNext=-1, const uint_fast8_t childCodes=(uint_fast8_t)~0) |
void | setupWindowHaloCellConnectivity () |
Create window and halo cell connectivity between domains. More... | |
void | createMinLevelExchangeCells () |
Create window-halo-connectivity based on hilbertIndex matching for regular and periodic exchange cells. More... | |
void | createHigherLevelExchangeCells (const MInt onlyLevel=-1, const MBool duringMeshAdaptation=false, const std::vector< std::function< void(const MInt)> > &=std::vector< std::function< void(const MInt)> >(), const std::vector< std::function< void(const MInt)> > &=std::vector< std::function< void(const MInt)> >(), const MBool forceLeafLvlCorrection=false) |
Iteratively create window and halo cells on levels m_minLevel+1...m_maxLevel, starting from m_minLevel exchange cells. More... | |
void | createHigherLevelExchangeCells_old (const MInt onlyLevel=-1, const std::vector< std::function< void(const MInt)> > &=std::vector< std::function< void(const MInt)> >()) |
Iteratively create window and halo cells on levels m_minLevel+1...m_maxLevel, starting from m_minLevel exchange cells. More... | |
MInt | createAdjacentHaloCell (const MInt, const MInt, const MLong *, std::unordered_multimap< MLong, MInt > &, const MFloat *, MInt *const, std::vector< std::vector< MInt > > &, std::vector< std::vector< MLong > > &) |
Create a new halo cell (candidate) as neighbor of cellId in direction dir and find matching neighbor domain from hilbertIndex. More... | |
MInt | createAzimuthalHaloCell (const MInt, const MInt, const MLong *, std::unordered_multimap< MLong, MInt > &, const MFloat *, MInt *const, std::vector< std::vector< MInt > > &, std::vector< std::vector< MLong > > &) |
Create a new azimuthal halo cell as neighbor of cellId in direction dir and find matching neighbor domain from hilbertIndex. More... | |
void | meshAdaptation (std::vector< std::vector< MFloat > > &, std::vector< MFloat > &, std::vector< std::bitset< 64 > > &, std::vector< MInt > &, const std::vector< std::function< void(const MInt)> > &, const std::vector< std::function< void(const MInt)> > &, const std::vector< std::function< void(const MInt)> > &, const std::vector< std::function< void(const MInt, const MInt)> > &, const std::vector< std::function< MInt(const MFloat *, const MInt, const MInt)> > &, const std::vector< std::function< void()> > &) |
void | meshAdaptationLowMem (std::vector< std::vector< MFloat > > &, std::vector< MFloat > &, std::vector< std::bitset< 64 > > &, std::vector< MInt > &, const std::vector< std::function< void(const MInt)> > &, const std::vector< std::function< void(const MInt)> > &, const std::vector< std::function< void(const MInt)> > &, const std::vector< std::function< void(const MInt, const MInt)> > &, const std::vector< std::function< MInt(const MFloat *, const MInt, const MInt)> > &, const std::vector< std::function< void()> > &) |
Performs mesh adaptation and continuously updates the window/halo cells. More... | |
void | meshAdaptationDefault (std::vector< std::vector< MFloat > > &, std::vector< MFloat > &, std::vector< std::bitset< 64 > > &, std::vector< MInt > &, const std::vector< std::function< void(const MInt)> > &, const std::vector< std::function< void(const MInt)> > &, const std::vector< std::function< void(const MInt)> > &, const std::vector< std::function< void(const MInt, const MInt)> > &, const std::vector< std::function< MInt(const MFloat *, const MInt, const MInt)> > &, const std::vector< std::function< void()> > &) |
Performs mesh adaptation and continuously updates the window/halo cells. More... | |
void | compactCells (const std::vector< std::function< void(const MInt, const MInt)> > &=std::vector< std::function< void(const MInt, const MInt)> >()) |
Removes all holes in the cell collector and moves halo cells to the back of the collector. More... | |
void | swapCells (const MInt cellId, const MInt otherId) |
swap two cells; the window/halo cell arrays have to be update elsewhere for performance reasons More... | |
MBool | refineCheck (const MInt cellId, const MInt solverId, const std::vector< std::function< MInt(const MFloat *, const MInt, const MInt)> > &cellOutsideSolver) |
checks if the given cell may be refined More... | |
MBool | coarsenCheck (const MInt cellId, const MInt solverId) |
checks if the given cell's children may be removed More... | |
void | exchangeProperties () |
Exchange properties of window/halo cells. More... | |
void | setChildSolverFlag (const MInt cellId, const MInt solver, const std::function< MInt(const MFloat *, const MInt, const MInt)> &cellOutsideSolver) |
MBool | isMpiRoot () const |
Return true if this is domain zero (a.k.a. as the root domain) More... | |
Static Private Attributes | |
static constexpr const auto | WINDOWLAYER_MAX = decltype(m_windowLayer_)::value_type::mapped_type::MAX |
static constexpr MInt | m_noDirs = 2 * nDim |
static constexpr MInt | m_maxNoChilds = IPOW2(nDim) |
Friends | |
template<MInt nDim_, class SysEqn > | |
class | FvCartesianSolverXD |
template<MInt nDim_> | |
class | LsCartesianSolver |
template<MInt nDim_, class SysEqn > | |
class | FvBndryCnd2D |
template<MInt nDim_, class SysEqn > | |
class | FvBndryCnd3D |
template<MInt nDim_, class SysEqn > | |
class | FvMbCartesianSolverXD |
template<MInt nDim_> | |
class | LbSolver |
template<MInt nDim_, class SysEqn > | |
class | DgCartesianSolver |
class | maia::grid::Controller< nDim > |
class | maia::grid::IO< CartesianGrid< nDim > > |
template<MInt nDim_, class SysEqn > | |
class | FvCartesianSolverXD |
Template class for the operations and data structures of the grid
Definition at line 47 of file cartesiangrid.h.
using CartesianGrid< nDim >::Cell = typename Tree::Cell |
Definition at line 80 of file cartesiangrid.h.
using CartesianGrid< nDim >::MInt_dyn_array = MInt* |
Definition at line 76 of file cartesiangrid.h.
using CartesianGrid< nDim >::Tree = maia::grid::tree::Tree<nDim> |
Definition at line 77 of file cartesiangrid.h.
CartesianGrid< nDim >::CartesianGrid | ( | MInt | maxCells, |
const MFloat *const | bBox, | ||
const MPI_Comm | comm, | ||
const MString & | fileName = "" |
||
) |
CartesianGrid< nDim >::~CartesianGrid |
Destructor
Definition at line 699 of file cartesiangrid.cpp.
|
inline |
Definition at line 108 of file cartesiangrid.h.
|
inline |
Definition at line 111 of file cartesiangrid.h.
|
inline |
Definition at line 114 of file cartesiangrid.h.
|
inline |
Definition at line 198 of file cartesiangrid.h.
|
inline |
Definition at line 191 of file cartesiangrid.h.
|
inline |
Definition at line 194 of file cartesiangrid.h.
|
inline |
Definition at line 232 of file cartesiangrid.h.
|
inline |
Definition at line 141 of file cartesiangrid.h.
|
inline |
Definition at line 144 of file cartesiangrid.h.
|
inline |
Definition at line 162 of file cartesiangrid.h.
|
inline |
Definition at line 156 of file cartesiangrid.h.
|
inline |
Definition at line 159 of file cartesiangrid.h.
|
inline |
Definition at line 215 of file cartesiangrid.h.
|
inline |
Definition at line 218 of file cartesiangrid.h.
|
inline |
Definition at line 100 of file cartesiangrid.h.
|
inline |
Definition at line 103 of file cartesiangrid.h.
|
inline |
Definition at line 238 of file cartesiangrid.h.
|
inline |
Definition at line 243 of file cartesiangrid.h.
|
inline |
Definition at line 248 of file cartesiangrid.h.
|
inline |
Definition at line 204 of file cartesiangrid.h.
|
inline |
Definition at line 207 of file cartesiangrid.h.
|
inline |
Definition at line 212 of file cartesiangrid.h.
|
inline |
Definition at line 170 of file cartesiangrid.h.
|
inline |
Definition at line 175 of file cartesiangrid.h.
|
inline |
Definition at line 123 of file cartesiangrid.h.
|
inline |
Definition at line 126 of file cartesiangrid.h.
|
inline |
Definition at line 178 of file cartesiangrid.h.
|
inline |
Definition at line 181 of file cartesiangrid.h.
|
inline |
Definition at line 153 of file cartesiangrid.h.
|
inline |
Definition at line 138 of file cartesiangrid.h.
|
inline |
Definition at line 135 of file cartesiangrid.h.
|
inline |
Definition at line 89 of file cartesiangrid.h.
|
inline |
Definition at line 92 of file cartesiangrid.h.
|
inline |
|
inline |
Definition at line 245 of file cartesiangrid.h.
|
inline |
Definition at line 229 of file cartesiangrid.h.
|
inline |
Definition at line 251 of file cartesiangrid.h.
|
inline |
Definition at line 147 of file cartesiangrid.h.
|
inline |
Definition at line 150 of file cartesiangrid.h.
|
inline |
Definition at line 132 of file cartesiangrid.h.
|
inline |
Definition at line 129 of file cartesiangrid.h.
|
inline |
Definition at line 258 of file cartesiangrid.h.
|
inlineconstexpr |
Definition at line 579 of file cartesiangrid.h.
|
inline |
Definition at line 10874 of file cartesiangrid.cpp.
|
inline |
Definition at line 512 of file cartesiangrid.h.
|
inline |
Definition at line 517 of file cartesiangrid.h.
|
inline |
Definition at line 503 of file cartesiangrid.h.
|
inline |
Definition at line 506 of file cartesiangrid.h.
|
inline |
Definition at line 523 of file cartesiangrid.h.
|
inline |
Definition at line 526 of file cartesiangrid.h.
|
inline |
Definition at line 532 of file cartesiangrid.h.
|
inline |
Definition at line 537 of file cartesiangrid.h.
void CartesianGrid< nDim >::balance | ( | const MInt *const | noCellsToReceiveByDomain, |
const MInt *const | noCellsToSendByDomain, | ||
const MInt *const | sortedCellId, | ||
const MLong *const | partitionCellOffsets, | ||
const MLong *const | globalIdOffsets | ||
) |
Definition at line 10348 of file cartesiangrid.cpp.
|
inline |
Definition at line 803 of file cartesiangrid.h.
|
inline |
Store the grid bounding box.
[out] | box | Location where bounding box information is to be stored. Must be at least of size 2 * dim. |
The bounding box is stored as follows: 2D: min_x | min_y | max_x | max_y 3D: min_x | min_y | min_z | max_x | max_y | max_z
Definition at line 406 of file cartesiangrid.h.
MBool CartesianGrid< nDim >::boxSphereIntersection | ( | const MFloat * | bMin, |
const MFloat * | bMax, | ||
const MFloat *const | sphereCenter, | ||
MFloat const | radius | ||
) |
Definition at line 10767 of file cartesiangrid.cpp.
|
private |
in] T Cell type
Definition at line 10700 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::cartesianToCylindric | ( | const MFloat * | coords, |
MFloat * | coordsCyl | ||
) |
Definition at line 13717 of file cartesiangrid.cpp.
|
inline |
Definition at line 388 of file cartesiangrid.h.
|
inline |
Note cell length h = h_0 / 2^level where h_0 is the length of the grid's root cell.
Definition at line 386 of file cartesiangrid.h.
|
inline |
Definition at line 391 of file cartesiangrid.h.
|
inline |
Store center of gravity coordinates.
[out] | center | Location where coordinates are to be stored. Must be at least of size nDim. |
Definition at line 418 of file cartesiangrid.h.
|
inline |
Definition at line 551 of file cartesiangrid.h.
|
private |
Definition at line 9926 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::checkAzimuthalWindowHaloConsistency |
Definition at line 14595 of file cartesiangrid.cpp.
MBool CartesianGrid< nDim >::checkOutsideAzimuthalDomain | ( | MFloat * | ) |
void CartesianGrid< nDim >::checkWindowHaloConsistency | ( | const MBool | fullCheck = false , |
const MString | a = "" |
||
) |
TODO labels:GRID copied/adapted from gridproxy, generalize to avoid duplicate code?
Definition at line 13056 of file cartesiangrid.cpp.
|
private |
Definition at line 14780 of file cartesiangrid.cpp.
|
private |
The check is performed by:
[in] | cellId | the cell id to check |
[in] | solver | the solver id |
Definition at line 8660 of file cartesiangrid.cpp.
|
private |
Definition at line 8397 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::computeGlobalIds |
Definition at line 10012 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::computeLeafLevel |
Definition at line 10293 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::computeLocalBoundingBox | ( | MFloat *const | bbox | ) |
Compute the local bounding box of all internal cells.
Definition at line 12880 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::correctAzimuthalSolverBits |
Definition at line 14703 of file cartesiangrid.cpp.
|
private |
Definition at line 3984 of file cartesiangrid.cpp.
|
private |
Definition at line 14174 of file cartesiangrid.cpp.
|
private |
Definition at line 9893 of file cartesiangrid.cpp.
|
private |
[in] | donorGridFileName | Name of the original (donor) grid file. |
[in] | gridMapFileName | Name of the file where grid map should be stored. |
The grid map file contains an array 'cellIds' with a value for each cell of the loaded grid file. The value is either -1 if no corresponding cell exists in the donor grid, or the corresponding cell id (global id). Additionally, there is an array 'noOffspring' that contains the number of mapped donor cell offspring for each target cell. This value is 0 if either a target cell has zero or only one donor cell. Otherwise, for a target cell without children it contains the number of offspring of the donor cell, i.e. the number of all smaller cells contained in this cell on the donor grid that are mapped to this target cell.
Note: Currently only one-to-one and multiple-to-one mappings are allowed, multiple-to-one mappings are not supported yet. That is, the donor cells must be smaller or at the same level as the target cells, while coarser donor cells are not allowed yet.
const MBool hasDiff = any_of(partitionCellsLvlDiff.cbegin(),
Definition at line 9272 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::createGridSlice | ( | const MString & | axis, |
const MFloat | intercept, | ||
const MString & | fileName | ||
) |
Definition at line 11363 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::createGridSlice | ( | const MString & | axis, |
const MFloat | intercept, | ||
const MString & | fileName, | ||
const MInt | solverId, | ||
MInt *const | noSliceCellIds, | ||
MInt *const | sliceCellIds, | ||
MInt *const | noSliceHilbertIds = nullptr , |
||
MInt *const | sliceHilbertInfo = nullptr , |
||
MInt *const | noSliceContHilbertIds = nullptr , |
||
MInt *const | sliceContiguousHilbertInfo = nullptr |
||
) |
[in] | axis | Axis to which the slice should be orthogonal ("x", "y", or "z"). |
[in] | intercept | Absolute value of the axis position for the slice. |
[in] | fileName | File name (including output directory path) to which the slice grid should be written. |
[out] | noSliceCellIds | Stores the number of cells in the slice from this domain. If nullptr is given, no data is stored. |
[out] | sliceCellIds | Stores a list of all cells that are in the slice. Thus, a pointer to storage of size >= m_noInternalCells should be provided. If nullptr is given, no data is stored. |
[out] | noSliceHilbertIds | Stores the number of hilbertIds in the slice from this domain. If nullptr is given, no data is stored. |
[out] | sliceHilbertIds | Stores a list of all hilbertIds of the slice. Thus, a pointer of the storage of size >= m_noInternalCells * 3 should be provided. If nullptr is given, no data is stored. |
This method is structured in 4 parts: Step 1: Identify cells in slice and sort them by their sliceHilbertId. First the data is saved a collector and after identification sorted. Then the data is distrubted into single arrays. Step 2: Create MPI communicator only for domains with slice cells Step 3: Gather all data for slice grid file. First the hilbertId information is exchanged globally. Then the global offsets for the local data can be determined on every domain. It is important to understand, that the number of hilbertIds is different on every domain and that they can be distributed in in any order, since a slice of a 3D hilbert curve is performed. After that the neighbor domains are determined to exchange cellIds to determine the cell mapping to slice globalId completly. At the end the data arrays are determined. Step 4: Write grid file with slice data. Since the data is sorted by slice HilbertId, the data writing is done in data chunks with the same hilbertId. If a domain has less hilbertIds than others, then dummy calls a performed.
Definition at line 11406 of file cartesiangrid.cpp.
|
private |
— PartLvlShift (*) — ///
— PartLvlShift Ends — ///
Definition at line 1848 of file cartesiangrid.cpp.
|
private |
Definition at line 3053 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::createLeafCellMapping | ( | const MInt | donorSolverId, |
const MInt | gridCellId, | ||
std::vector< MInt > & | mappedLeafCells, | ||
MBool | allChilds = false |
||
) |
[in] | donorSolverId | Donor solver id. |
[in] | gridCellId | Grid cell to create mapping for. |
[out] | mappedLeafCells | Vector of all mapped leaf cells of the donor solver. |
Definition at line 12655 of file cartesiangrid.cpp.
|
private |
Definition at line 1167 of file cartesiangrid.cpp.
|
private |
This function creates all possible paths from a cell to its adjacent neighbors (in a uniform grid) and saves them. Of course the possible paths could also be hardcoded but I'm too lazy, so feel free to take the output of this function and to hardcode it into a fixed array.
Definition at line 6107 of file cartesiangrid.cpp.
|
private |
Definition at line 8950 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::deletePeriodicConnection | ( | const MBool | saveBackup = true | ) |
Definition at line 10618 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::descendNoOffsprings | ( | const MLong | cellId, |
const MLong | offset = 0 |
||
) |
Recursively update noOffsprings and workLoad for all descendants of cellId
NOTE: this will not work properly for partition level ancestors in case of partition level shifts, use calculateNoOffspringsAndWorkload() instead
Definition at line 10208 of file cartesiangrid.cpp.
|
private |
Note: This algorithm only makes sense if called in-order for all local min cells /// or /// in case of a partition level shift starting with the min-level halo partition level ancestor whos offspring is the first local partition cell and the called in-order for all local min-level cells
Definition at line 10185 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::determineNoPartitionCellsAndOffsets | ( | MLong *const | noPartitionCells, |
MLong *const | partitionCellOffsets | ||
) |
[out] | noPartitionCells | Pointer to storage of size noDomains() that will hold the number of partition cells on each domain. |
[out] | partitionCellOffsets | Pointer to storage of size noDomains()+1 that will hold the partition cell offsets for all domains and the total number of partition cells as the last entry. |
Definition at line 12723 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::determinePartLvlAncestorHaloWindowCells | ( | std::vector< std::vector< MInt > > & | partLvlAncestorHaloCells, |
std::vector< std::vector< MInt > > & | partLvlAncestorWindowCells | ||
) |
Definition at line 13655 of file cartesiangrid.cpp.
|
inline |
Definition at line 1057 of file cartesiangrid.h.
|
inline |
Definition at line 441 of file cartesiangrid.h.
|
inline |
Definition at line 861 of file cartesiangrid.h.
void CartesianGrid< nDim >::dumpCellData | ( | const MString | name | ) |
Definition at line 13386 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::exchangeNotInPlace | ( | DATATYPE * | exchangeVar, |
DATATYPE * | recvMem | ||
) |
[in] | variable | to exchange |
[in] | buffer | memory |
Definition at line 11292 of file cartesiangrid.cpp.
|
private |
Definition at line 8369 of file cartesiangrid.cpp.
|
private |
Definition at line 3917 of file cartesiangrid.cpp.
template MInt CartesianGrid< nDim >::findContainingHaloCell< true > | ( | const MFloat *const | coord, |
const MInt | solverId, | ||
MInt | domainId, | ||
MBool | onlyPartitionCells, | ||
function< MFloat *(MInt, MFloat *const)> | correctCellCoord | ||
) |
Definition at line 10930 of file cartesiangrid.cpp.
MInt CartesianGrid< nDim >::findContainingHaloCell | ( | const MFloat *const | coord, |
const MInt | solverId, | ||
MInt | domainId, | ||
MBool | onlyPartitionCells, | ||
std::function< MFloat *(MInt, MFloat *const)> | correctCellCoord = nullptr |
||
) |
|
inline |
Definition at line 10889 of file cartesiangrid.cpp.
MInt CartesianGrid< nDim >::findContainingLeafCell | ( | const MFloat *const | coord, |
const MInt | startId, | ||
function< MFloat *(MInt, MFloat *const)> | correctCellCoord, | ||
const MInt | solverId, | ||
const MBool | allowNonLeafHalo | ||
) |
The algorithm does the following:
[in] | coordinates | of the point |
[in] | cellId | from which to start searching |
[in] | allowNonLeafHalo | option to return the non-leaf halo cell which contains the coordiante instead of returning -1 as not found! Thus the neighbor-Domain which contains the leaf cell is known and can be used for communication! |
[out] | local | cell Id, -1 if not found |
Definition at line 11048 of file cartesiangrid.cpp.
MInt CartesianGrid< nDim >::findContainingLeafCell | ( | const MFloat *const | coord, |
const MInt | startId, | ||
std::function< MFloat *(MInt, MFloat *const)> | correctCellCoord = nullptr , |
||
const MInt | solverId = -1 , |
||
const MBool | allowNonLeafHalo = false |
||
) |
MInt CartesianGrid< nDim >::findContainingLeafCell | ( | const MFloat * | coord, |
function< MFloat *(MInt, MFloat *const)> | correctCellCoord, | ||
const MInt | solverId | ||
) |
The algorithm does the following:
[in] | coordinates | of the point |
[out] | local | cell Id, -1 if not in domain |
Definition at line 10980 of file cartesiangrid.cpp.
template MInt CartesianGrid< nDim >::findContainingLeafCell< true > | ( | const MFloat * | coord, |
std::function< MFloat *(MInt, MFloat *const)> | correctCellCoord = nullptr , |
||
const MInt | solverId = -1 |
||
) |
|
inline |
Definition at line 841 of file cartesiangrid.h.
template MInt CartesianGrid< nDim >::findContainingPartitionCell< true > | ( | const MFloat *const | coord, |
const MInt | solverId, | ||
function< MFloat *(MInt, MFloat *const)> | correctCellCoord | ||
) |
Definition at line 10734 of file cartesiangrid.cpp.
MInt CartesianGrid< nDim >::findContainingPartitionCell | ( | const MFloat *const | coord, |
const MInt | solverId = -1 , |
||
std::function< MFloat *(MInt, MFloat *const)> | correctCellCoord = nullptr |
||
) |
|
private |
|
inline |
Definition at line 962 of file cartesiangrid.h.
MInt CartesianGrid< nDim >::findNeighborDomainId | ( | const MLong | globalId, |
const MInt | noDomains, | ||
const MLong * | domainOffsets | ||
) |
[in] | globalId | global cell id |
Note: this function utilized a linear search before, which was quite inefficient for large cases on O(100000) cores and e.g. slowed down the window/halo cell generation significantly
Definition at line 884 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::generalExchange | ( | MInt | noVars, |
const MInt * | vars, | ||
DATATYPE ** | exchangeVar, | ||
MInt | noDomSend, | ||
MInt * | domSend, | ||
const MInt * | noCellsSendPerDom, | ||
const MInt * | cellIdsSend, | ||
MInt | noDomRecv, | ||
MInt * | domRecv, | ||
const MInt * | noCellsRecvPerDom, | ||
const MInt * | cellIdsRecv | ||
) |
Definition at line 11299 of file cartesiangrid.cpp.
|
inlineprivate |
Definition at line 935 of file cartesiangrid.h.
|
inline |
Definition at line 903 of file cartesiangrid.h.
|
private |
Definition at line 5626 of file cartesiangrid.cpp.
|
inlineprivate |
(childCodes_ & (1<<child))
Definition at line 5750 of file cartesiangrid.cpp.
|
inlineprivate |
Definition at line 5703 of file cartesiangrid.cpp.
|
inline |
Definition at line 409 of file cartesiangrid.h.
|
inline |
Definition at line 9129 of file cartesiangrid.cpp.
|
inline |
Definition at line 571 of file cartesiangrid.h.
|
inline |
Definition at line 539 of file cartesiangrid.h.
void CartesianGrid< nDim >::gridSanityChecks |
Definition at line 12929 of file cartesiangrid.cpp.
|
inline |
Definition at line 390 of file cartesiangrid.h.
|
inline |
Definition at line 448 of file cartesiangrid.h.
|
inline |
Definition at line 451 of file cartesiangrid.h.
|
inline |
Definition at line 566 of file cartesiangrid.h.
|
inline |
Definition at line 83 of file cartesiangrid.h.
|
inlineprivate |
Definition at line 931 of file cartesiangrid.h.
|
private |
This function normalizes the cell coordinates and calls the hilbertIndex function.
IMPORTANT: The baseLevel
is the normal refinement level - 1 (e.g. if your refinement level is 3, base level is 2). NOTE: this IMPORTANT information seems to be outdated!
Definition at line 8983 of file cartesiangrid.cpp.
MBool CartesianGrid< nDim >::hollowBoxSphereIntersection | ( | const MFloat * | bMin, |
const MFloat * | bMax, | ||
const MFloat *const | sphereCenter, | ||
MFloat const | radius | ||
) |
Definition at line 10784 of file cartesiangrid.cpp.
|
private |
MInt CartesianGrid< nDim >::intersectingWithHaloCells | ( | MFloat *const | center, |
MFloat const | radius, | ||
MInt | domainId, | ||
MBool | onlyPartition | ||
) |
Definition at line 10832 of file cartesiangrid.cpp.
MBool CartesianGrid< nDim >::intersectingWithLocalBoundingBox | ( | MFloat *const | center, |
MFloat const | radius | ||
) |
Definition at line 10865 of file cartesiangrid.cpp.
MInt CartesianGrid< nDim >::intersectingWithPartitioncells | ( | MFloat *const | center, |
MFloat const | radius | ||
) |
Definition at line 10805 of file cartesiangrid.cpp.
|
inlineprivate |
Definition at line 1067 of file cartesiangrid.h.
|
inline |
Definition at line 467 of file cartesiangrid.h.
|
inline |
Definition at line 426 of file cartesiangrid.h.
|
private |
[in] | gridPartitionFileName | Name of grid partition file to use. |
[in] | partitionCellsId | Point to list of partition cells ids. |
[in] | noPartitionCells | Number of partition cells. |
[out] | offsets | Resulting offsets. |
This method is a drop-in replacement for maia::grid::partition(...). It is intended for coupled multi-solver simulations, where both solvers need to exchange volume data and thus corresponding partition cells and their subtrees must end up on the same MPI rank.
Definition at line 9794 of file cartesiangrid.cpp.
|
private |
Definition at line 9116 of file cartesiangrid.cpp.
|
private |
Definition at line 840 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::loadPartitionFile | ( | const MString & | partitionFileName, |
MLong * | partitionCellOffsets | ||
) |
Definition at line 12794 of file cartesiangrid.cpp.
|
inline |
Definition at line 577 of file cartesiangrid.h.
|
inline |
Definition at line 568 of file cartesiangrid.h.
void CartesianGrid< nDim >::localToGlobalIds |
Definition at line 9984 of file cartesiangrid.cpp.
|
inline |
Definition at line 789 of file cartesiangrid.h.
|
inline |
Definition at line 797 of file cartesiangrid.h.
|
inline |
Definition at line 793 of file cartesiangrid.h.
|
inline |
Definition at line 548 of file cartesiangrid.h.
|
inline |
Definition at line 542 of file cartesiangrid.h.
|
private |
Wrapper function to choose between two different adaptation modes based on m_lowMemAdaptation True: uses a new adaptation procedure in which information of partition level ancestors is exchanged serially for every neighbor domain. This avoids vast allocations of memory but is potentially slower False: uses the old adpatation procedure in which information of partition level ancestors in exchanged for all domains at once. This can require large amounts of memory for high numbers of neighbor domains
Definition at line 6216 of file cartesiangrid.cpp.
|
private |
[in] | sensors | Holds the mesh refinement sensor(s) for each cell |
[in] | sensorWeight | Weighting of this sensor in relation to other sensors if greater than zero, otherwise indicating a true/false-type sensor |
[in] | sensorCellFlag | Indicator whether a sensor was set for this particular cell |
[out] | oldCellId | Mapping from new grid cells to their original cellId, or -1 if they did not exist previously |
[out] | oldNoCells | Number of cells in the map |
Definition at line 7316 of file cartesiangrid.cpp.
|
private |
[in] | sensors | Holds the mesh refinement sensor(s) for each cell |
[in] | sensorWeight | Weighting of this sensor in relation to other sensors if greater than zero, otherwise indicating a true/false-type sensor |
[in] | sensorCellFlag | Indicator whether a sensor was set for this particular cell |
[out] | oldCellId | Mapping from new grid cells to their original cellId, or -1 if they did not exist previously |
[out] | oldNoCells | Number of cells in the map |
Definition at line 6249 of file cartesiangrid.cpp.
|
inline |
Definition at line 557 of file cartesiangrid.h.
|
inline |
Definition at line 790 of file cartesiangrid.h.
|
inline |
Definition at line 800 of file cartesiangrid.h.
|
inlinestaticconstexpr |
Definition at line 75 of file cartesiangrid.h.
|
inline |
Definition at line 435 of file cartesiangrid.h.
|
inline |
Definition at line 438 of file cartesiangrid.h.
|
inline |
Definition at line 509 of file cartesiangrid.h.
|
inline |
Definition at line 500 of file cartesiangrid.h.
|
inline |
Definition at line 520 of file cartesiangrid.h.
|
inline |
Definition at line 529 of file cartesiangrid.h.
|
inline |
Definition at line 560 of file cartesiangrid.h.
|
inline |
Return the total number of domains (total number of ranks in current MPI communicator)
Definition at line 1054 of file cartesiangrid.h.
|
inline |
Definition at line 444 of file cartesiangrid.h.
|
inline |
Definition at line 563 of file cartesiangrid.h.
|
inlineconstexpr |
Definition at line 564 of file cartesiangrid.h.
|
inline |
Definition at line 429 of file cartesiangrid.h.
|
inline |
Definition at line 554 of file cartesiangrid.h.
|
inline |
Definition at line 432 of file cartesiangrid.h.
|
inlineconstexpr |
Definition at line 578 of file cartesiangrid.h.
|
inline |
Definition at line 120 of file cartesiangrid.h.
|
inline |
Definition at line 489 of file cartesiangrid.h.
|
inline |
Definition at line 477 of file cartesiangrid.h.
|
inline |
Definition at line 454 of file cartesiangrid.h.
|
inlineconstexpr |
Definition at line 445 of file cartesiangrid.h.
|
private |
Definition at line 10719 of file cartesiangrid.cpp.
|
inline |
Definition at line 569 of file cartesiangrid.h.
|
inline |
Definition at line 570 of file cartesiangrid.h.
MBool CartesianGrid< nDim >::pointInLocalBoundingBox | ( | const MFloat * | coord | ) |
Checks if given point is inside the local bounding box.
Definition at line 12911 of file cartesiangrid.cpp.
|
inline |
Definition at line 12852 of file cartesiangrid.cpp.
|
inline |
Definition at line 852 of file cartesiangrid.h.
void CartesianGrid< nDim >::propagateDistance | ( | std::vector< MInt > & | list, |
MIntScratchSpace & | distMem, | ||
MInt | dist | ||
) |
The algorithm does the following:
[in] | array | of cells to propagate from |
[in] | number | of cells to propagate from |
[in] | array | to store the distance |
[in] | final | distance |
Definition at line 11210 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::propagationStep | ( | MInt | cellId, |
MInt | dist, | ||
MInt * | distMem, | ||
MInt | endDist | ||
) |
[in] | cellId | |
[in] | current | distance |
[in] | array | to store the distance |
[in] | final | distance |
Definition at line 11267 of file cartesiangrid.cpp.
MInt CartesianGrid< nDim >::reduceToLevel | ( | const MInt | reductionLevel, |
F | interpolateToParentCells | ||
) |
The current grid is reduced by calling interpolateToParentCells.
Requires rewriting of certain arrays for the execution of the other subroutines:
Definition at line 1091 of file cartesiangrid.h.
|
inline |
Definition at line 545 of file cartesiangrid.h.
|
private |
Refine the cells with the given ids.
This function only creates the geometrical data for new cells, the initialization of flow variables must be dealt with by the corresponding solver classes.
Definition at line 5822 of file cartesiangrid.cpp.
|
private |
Definition at line 8815 of file cartesiangrid.cpp.
|
private |
Definition at line 6031 of file cartesiangrid.cpp.
|
private |
Definition at line 6004 of file cartesiangrid.cpp.
|
inlineprivate |
Definition at line 9148 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::restorePeriodicConnection |
Definition at line 10670 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::rotateCartesianCoordinates | ( | MFloat * | coords, |
MFloat | angle | ||
) |
Definition at line 13748 of file cartesiangrid.cpp.
|
private |
[in] | gridMapFileName | Name of the grid map that was already generated. |
[in] | gridPartitionFileName | Name of the partition file to use. |
Store the grid partition information for a given donor grid and for the current number of MPI ranks. Works by finding the global cell id of the first mapped cell in the grid map file.
Definition at line 9747 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::saveGrid | ( | const MChar * | fileName, |
const std::vector< std::vector< MInt > > & | haloCells, | ||
const std::vector< std::vector< MInt > > & | windowCells, | ||
const std::vector< std::vector< MInt > > & | azimuthalHaloCells, | ||
const std::vector< MInt > & | azimuthalUnmappedHaloCells, | ||
const std::vector< std::vector< MInt > > & | azimuthalWindowCells, | ||
MInt * | recalcIdTree = nullptr |
||
) |
Definition at line 9005 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::saveGrid | ( | const MChar * | fileName, |
MInt * | recalcIdTree | ||
) |
Definition at line 9017 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::savePartitionCellWorkloadsGridFile |
Definition at line 12824 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::savePartitionFile |
Definition at line 12782 of file cartesiangrid.cpp.
|
private |
[in] | partitionFileNameBase | Output base file name. |
[in] | partitionCellOffset | Local partition-cell offset. |
Definition at line 12756 of file cartesiangrid.cpp.
|
private |
Definition at line 964 of file cartesiangrid.cpp.
|
private |
Definition at line 982 of file cartesiangrid.cpp.
|
private |
Definition at line 13682 of file cartesiangrid.cpp.
|
private |
Definition at line 716 of file cartesiangrid.cpp.
|
private |
This function must be called after a dummy cell is appended otherwise the loop must be changed to size().
Definition at line 8927 of file cartesiangrid.cpp.
|
private |
Definition at line 948 of file cartesiangrid.cpp.
|
private |
Definition at line 929 of file cartesiangrid.cpp.
|
inline |
Definition at line 256 of file cartesiangrid.h.
|
inline |
Definition at line 587 of file cartesiangrid.h.
|
private |
Definition at line 1003 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::storeMinLevelCells | ( | const MBool | updateMinlevel = false | ) |
Definition at line 10229 of file cartesiangrid.cpp.
|
private |
Definition at line 8559 of file cartesiangrid.cpp.
|
private |
Definition at line 4302 of file cartesiangrid.cpp.
|
private |
Definition at line 4601 of file cartesiangrid.cpp.
|
private |
Definition at line 5411 of file cartesiangrid.cpp.
|
private |
Definition at line 4958 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::tagAzimuthalHigherLevelExchangeCells | ( | std::vector< MLong > & | refineChildIds, |
std::vector< MLong > & | recvChildIds, | ||
MInt | level | ||
) |
Definition at line 13773 of file cartesiangrid.cpp.
void CartesianGrid< nDim >::tagAzimuthalUnmappedHaloCells | ( | std::vector< std::vector< MLong > > & | shiftWindows, |
std::vector< MLong > & | haloChildIds, | ||
std::vector< MInt > & | haloDomainIds, | ||
MInt | level | ||
) |
Definition at line 14358 of file cartesiangrid.cpp.
|
inline |
Definition at line 792 of file cartesiangrid.h.
|
inline |
Definition at line 784 of file cartesiangrid.h.
|
inline |
Definition at line 785 of file cartesiangrid.h.
|
inline |
Definition at line 586 of file cartesiangrid.h.
|
private |
Definition at line 4139 of file cartesiangrid.cpp.
|
private |
Definition at line 10122 of file cartesiangrid.cpp.
MBool CartesianGrid< nDim >::updatePartitionCells | ( | MInt | offspringThreshold, |
MFloat | workloadThreshold | ||
) |
Note: should only be called from gridcontroller::balance() which restores a consistent grid with e.g. all partition level ancestor information! Also updating the partition cells might lead to domains which temporarily dont have any partition cell anymore!
Definition at line 13447 of file cartesiangrid.cpp.
|
inline |
Definition at line 260 of file cartesiangrid.h.
|
inline |
Definition at line 261 of file cartesiangrid.h.
|
inline |
Definition at line 262 of file cartesiangrid.h.
|
inline |
Definition at line 457 of file cartesiangrid.h.
|
inline |
Definition at line 460 of file cartesiangrid.h.
|
inline |
Definition at line 463 of file cartesiangrid.h.
Definition at line 68 of file cartesiangrid.h.
Definition at line 59 of file cartesiangrid.h.
Definition at line 61 of file cartesiangrid.h.
[Splitt] The following is part of a first step to splitt CartesianGrid from the inheritance hierarchy:
Definition at line 53 of file cartesiangrid.h.
Definition at line 57 of file cartesiangrid.h.
Definition at line 63 of file cartesiangrid.h.
Definition at line 65 of file cartesiangrid.h.
Definition at line 55 of file cartesiangrid.h.
|
friend |
Definition at line 68 of file cartesiangrid.h.
|
friend |
Definition at line 68 of file cartesiangrid.h.
|
private |
Definition at line 682 of file cartesiangrid.h.
|
private |
Definition at line 725 of file cartesiangrid.h.
MBool CartesianGrid< nDim >::m_allowCoarsening = true |
Definition at line 753 of file cartesiangrid.h.
MBool CartesianGrid< nDim >::m_allowInterfaceRefinement = false |
Definition at line 369 of file cartesiangrid.h.
MFloat CartesianGrid< nDim >::m_azimuthalAngle = F0 |
Definition at line 275 of file cartesiangrid.h.
MInt CartesianGrid< nDim >::m_azimuthalAxialDir = -1 |
Definition at line 274 of file cartesiangrid.h.
azimuthalBbox CartesianGrid< nDim >::m_azimuthalBbox |
Definition at line 351 of file cartesiangrid.h.
|
private |
Definition at line 650 of file cartesiangrid.h.
|
private |
Definition at line 648 of file cartesiangrid.h.
std::vector<MInt> CartesianGrid< nDim >::m_azimuthalNghbrDomainIndex |
Definition at line 761 of file cartesiangrid.h.
|
private |
Definition at line 625 of file cartesiangrid.h.
MBool CartesianGrid< nDim >::m_azimuthalPer = false |
Definition at line 271 of file cartesiangrid.h.
std::array<MFloat, 3> CartesianGrid< nDim >::m_azimuthalPerCenter {} |
Definition at line 272 of file cartesiangrid.h.
std::array<MInt, 2> CartesianGrid< nDim >::m_azimuthalPeriodicDir {} |
Definition at line 273 of file cartesiangrid.h.
|
private |
Definition at line 651 of file cartesiangrid.h.
|
private |
Definition at line 652 of file cartesiangrid.h.
|
private |
Definition at line 649 of file cartesiangrid.h.
|
private |
Definition at line 592 of file cartesiangrid.h.
|
private |
Definition at line 596 of file cartesiangrid.h.
|
private |
Definition at line 591 of file cartesiangrid.h.
|
private |
Definition at line 691 of file cartesiangrid.h.
MFloat CartesianGrid< nDim >::m_coarseRatio = 0.2 |
Definition at line 752 of file cartesiangrid.h.
MInt CartesianGrid< nDim >::m_counter1D {} |
Definition at line 731 of file cartesiangrid.h.
MInt CartesianGrid< nDim >::m_counter2D {} |
Definition at line 733 of file cartesiangrid.h.
MInt CartesianGrid< nDim >::m_counter3D {} |
Definition at line 735 of file cartesiangrid.h.
MInt CartesianGrid< nDim >::m_cutOff = 0 |
Definition at line 370 of file cartesiangrid.h.
|
private |
Definition at line 714 of file cartesiangrid.h.
|
private |
Definition at line 692 of file cartesiangrid.h.
|
private |
Definition at line 1064 of file cartesiangrid.h.
|
private |
Definition at line 660 of file cartesiangrid.h.
std::set<MInt> CartesianGrid< nDim >::m_freeIndices |
Definition at line 755 of file cartesiangrid.h.
std::map<MLong, MInt> CartesianGrid< nDim >::m_globalToLocalId {} |
Definition at line 748 of file cartesiangrid.h.
|
private |
Definition at line 653 of file cartesiangrid.h.
MFloat* CartesianGrid< nDim >::m_gridCellVolume = nullptr |
Definition at line 374 of file cartesiangrid.h.
MString CartesianGrid< nDim >::m_gridInputFileName = "" |
Definition at line 377 of file cartesiangrid.h.
|
private |
Definition at line 636 of file cartesiangrid.h.
|
private |
Definition at line 616 of file cartesiangrid.h.
|
private |
Definition at line 607 of file cartesiangrid.h.
|
private |
Definition at line 696 of file cartesiangrid.h.
|
private |
Definition at line 695 of file cartesiangrid.h.
|
private |
Definition at line 694 of file cartesiangrid.h.
MBool CartesianGrid< nDim >::m_lbGridChecks |
Definition at line 751 of file cartesiangrid.h.
|
private |
Definition at line 610 of file cartesiangrid.h.
|
private |
Definition at line 719 of file cartesiangrid.h.
|
private |
Definition at line 721 of file cartesiangrid.h.
|
private |
Definition at line 599 of file cartesiangrid.h.
|
private |
Definition at line 600 of file cartesiangrid.h.
|
private |
Definition at line 668 of file cartesiangrid.h.
|
private |
Definition at line 669 of file cartesiangrid.h.
MInt* CartesianGrid< nDim >::m_localPartitionCellLocalIdsRestart = nullptr |
Definition at line 762 of file cartesiangrid.h.
|
private |
Definition at line 667 of file cartesiangrid.h.
MLong CartesianGrid< nDim >::m_localPartitionCellOffsetsRestart[3] {static_cast<MLong>(-1), static_cast<MLong>(-1), static_cast<MLong>(-1)} |
Definition at line 763 of file cartesiangrid.h.
MBool CartesianGrid< nDim >::m_lowMemAdaptation = true |
Definition at line 371 of file cartesiangrid.h.
MInt CartesianGrid< nDim >::m_maxLevel = -1 |
Definition at line 363 of file cartesiangrid.h.
|
private |
Definition at line 613 of file cartesiangrid.h.
|
staticconstexprprivate |
Definition at line 773 of file cartesiangrid.h.
|
private |
Definition at line 771 of file cartesiangrid.h.
|
staticconstexpr |
Definition at line 787 of file cartesiangrid.h.
|
private |
Definition at line 689 of file cartesiangrid.h.
MInt CartesianGrid< nDim >::m_maxRfnmntLvl = -1 |
Definition at line 361 of file cartesiangrid.h.
MInt CartesianGrid< nDim >::m_maxUniformRefinementLevel = -1 |
Definition at line 360 of file cartesiangrid.h.
MInt CartesianGrid< nDim >::m_minLevel = -1 |
Definition at line 365 of file cartesiangrid.h.
|
private |
Definition at line 687 of file cartesiangrid.h.
|
private |
Definition at line 767 of file cartesiangrid.h.
|
private |
Definition at line 628 of file cartesiangrid.h.
std::array<MInt, 11 + (nDim - 2) * 32> CartesianGrid< nDim >::m_neighborCode {} |
Definition at line 745 of file cartesiangrid.h.
|
private |
Definition at line 711 of file cartesiangrid.h.
MInt CartesianGrid< nDim >::m_newMinLevel = -1 |
Definition at line 367 of file cartesiangrid.h.
std::vector<MInt> CartesianGrid< nDim >::m_nghbrDomainIndex |
Definition at line 758 of file cartesiangrid.h.
|
private |
Definition at line 622 of file cartesiangrid.h.
MLong CartesianGrid< nDim >::m_noCellsGlobal {} |
Definition at line 353 of file cartesiangrid.h.
|
staticconstexprprivate |
Definition at line 772 of file cartesiangrid.h.
MInt CartesianGrid< nDim >::m_noDomains {} |
Definition at line 358 of file cartesiangrid.h.
|
private |
Definition at line 617 of file cartesiangrid.h.
|
private |
Definition at line 666 of file cartesiangrid.h.
|
private |
Definition at line 693 of file cartesiangrid.h.
MInt CartesianGrid< nDim >::m_noInternalCells {} |
Definition at line 356 of file cartesiangrid.h.
|
private |
Definition at line 685 of file cartesiangrid.h.
|
private |
Definition at line 664 of file cartesiangrid.h.
|
private |
Definition at line 665 of file cartesiangrid.h.
|
private |
Definition at line 679 of file cartesiangrid.h.
|
private |
Definition at line 681 of file cartesiangrid.h.
MInt CartesianGrid< nDim >::m_noPeriodicCartesianDirs = 0 |
Definition at line 268 of file cartesiangrid.h.
|
private |
Definition at line 619 of file cartesiangrid.h.
|
private |
Definition at line 716 of file cartesiangrid.h.
|
private |
Definition at line 770 of file cartesiangrid.h.
|
private |
Definition at line 656 of file cartesiangrid.h.
|
private |
Definition at line 657 of file cartesiangrid.h.
|
private |
Definition at line 705 of file cartesiangrid.h.
|
private |
Definition at line 707 of file cartesiangrid.h.
|
private |
List of partition level ancestor cell ids (including halos of the missing subtree of the grid in case of a partition level shift)
Definition at line 703 of file cartesiangrid.h.
|
private |
Definition at line 706 of file cartesiangrid.h.
|
private |
Definition at line 708 of file cartesiangrid.h.
|
private |
Definition at line 723 of file cartesiangrid.h.
MInt* CartesianGrid< nDim >::m_paths1D = nullptr |
Definition at line 738 of file cartesiangrid.h.
MInt** CartesianGrid< nDim >::m_paths2D = nullptr |
Definition at line 740 of file cartesiangrid.h.
MInt** CartesianGrid< nDim >::m_paths3D = nullptr |
Definition at line 742 of file cartesiangrid.h.
std::array<MInt, 3> CartesianGrid< nDim >::m_periodicCartesianDir {} |
Definition at line 269 of file cartesiangrid.h.
MFloat CartesianGrid< nDim >::m_periodicCartesianLength[3] {} |
Definition at line 270 of file cartesiangrid.h.
|
private |
Definition at line 713 of file cartesiangrid.h.
|
private |
Definition at line 726 of file cartesiangrid.h.
|
private |
Definition at line 683 of file cartesiangrid.h.
|
private |
Definition at line 717 of file cartesiangrid.h.
|
private |
Definition at line 631 of file cartesiangrid.h.
|
private |
Definition at line 603 of file cartesiangrid.h.
|
private |
Definition at line 604 of file cartesiangrid.h.
|
private |
Definition at line 605 of file cartesiangrid.h.
|
private |
Definition at line 606 of file cartesiangrid.h.
|
private |
Definition at line 769 of file cartesiangrid.h.
|
private |
Definition at line 676 of file cartesiangrid.h.
|
private |
Definition at line 670 of file cartesiangrid.h.
|
private |
Definition at line 674 of file cartesiangrid.h.
MBool CartesianGrid< nDim >::m_wasAdapted = false |
Definition at line 264 of file cartesiangrid.h.
MBool CartesianGrid< nDim >::m_wasBalanced = false |
Definition at line 265 of file cartesiangrid.h.
MBool CartesianGrid< nDim >::m_wasBalancedAtLeastOnce = false |
Definition at line 266 of file cartesiangrid.h.
|
private |
Definition at line 633 of file cartesiangrid.h.
|
private |
Definition at line 644 of file cartesiangrid.h.
|
private |
Definition at line 775 of file cartesiangrid.h.
|
staticconstexprprivate |
Definition at line 645 of file cartesiangrid.h.