MAIA bb96820c
Multiphysics at AIA
|
#include <postdata.h>
Public Types | |
using | CartesianSolver = typename maia::CartesianSolver< nDim, PostData > |
using | Grid = typename CartesianSolver::Grid |
using | GridProxy = typename CartesianSolver::GridProxy |
using | SolverCell = PostCell |
using | Cell = typename maia::grid::tree::Tree< nDim >::Cell |
using | Geom = Geometry< nDim > |
Public Types inherited from maia::CartesianSolver< nDim_, PostData< nDim_ > > | |
using | Grid = CartesianGrid< nDim > |
using | GridProxy = typename maia::grid::Proxy< nDim > |
using | Geom = Geometry< nDim > |
using | TreeProxy = maia::grid::tree::TreeProxy< nDim > |
using | Cell = maia::grid::tree::Cell |
Public Member Functions | |
PostData (MInt, GridProxy &gridProxy_, Geom &geometry_, const MPI_Comm comm) | |
~PostData () | |
Geom & | geometry () const |
Access the solver's geometry. More... | |
MInt | noInternalCells () const override |
Return the number of internal cells within this solver. More... | |
MFloat | timeStep () const |
MFloat | time () const override |
Return the time. More... | |
void | preTimeStep () override |
void | postTimeStep () override |
MBool | solutionStep () override |
void | initSolver () override |
void | finalizeInitSolver () override |
MBool | prepareRestart (MBool, MBool &) override |
Prepare the solvers for a grid-restart. More... | |
void | writeRestartFile (const MBool, const MBool, const MString, MInt *) override |
void | writeRestartFile (MBool) override |
void | saveDataFile (const MBool writeBackup, const MString fileName, const MInt noVars, std::vector< MString > &variablesName, MFloat *variables) |
void | saveRestartFile (const MBool writeBackup) |
void | loadRestartFile () |
void | loadMeanFile (const MString fileName) |
load a file for averaging More... | |
void | loadGridFlowVars (const MChar *fileName, MInt noVariables, std::vector< MString > name) |
This function reads the parallel Netcdf cartesian grid cell based solution/restart file currently used in postData! More... | |
void | saveSolverSolution (const MBool, const MBool) |
void | reIntAfterRestart (MBool) |
This function resets the grid-trigger after a restart that is handled by the grid-controller! More... | |
void | prepareAdaptation () override |
prepare solver adaptation More... | |
void | postAdaptation () override |
reinit the solver after a single adaptation step More... | |
void | finalizeAdaptation () override |
reinit the solver after the full adaptation loop! More... | |
void | setSensors (std::vector< std::vector< MFloat > > &sensors, std::vector< MFloat > &sensorWeight, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MInt > &sensorSolverId) override |
set the sensors for a single adaptation step More... | |
void | removeChilds (const MInt) override |
Coarsen the given cell. More... | |
void | removeCell (const MInt) override |
Remove the given cell. More... | |
void | refineCell (const MInt) override |
void | swapCells (const MInt, const MInt) override |
void | swapProxy (const MInt cellId0, const MInt cellId1) override |
MInt | cellOutside (const MFloat *, const MInt, const MInt) override |
checks if a child lies outSide of the domain! necessary for refinement at the bndry! More... | |
void | resizeGridMap () override |
Swap the given cells. More... | |
virtual void | cleanUp () |
void | copyGridProperties () |
void | setAndAllocateSolverData (const MBool) |
void | setVariableNames () |
MInt | c_noCells () const |
Returns the number of grid-cells. More... | |
MInt | a_noCells () const |
MInt | a_hasNeighbor (const MInt cellId, const MInt dir) const |
Returns wether cell cellId has a neighbor in dir dir . More... | |
const MFloat & | c_coordinate (const MInt cellId, const MInt dim) |
Returns the coordinate of the cell from the grid().tree() cellId for dimension dir . More... | |
MFloat | c_coordinate (const MInt cellId, const MInt dim) const |
Returns the coordinate of the cell from the grid().tree() cellId for dimension dir . More... | |
MInt | c_level (const MInt cellId) const |
Returns the grid level of the cell cellId . More... | |
MInt | a_level (const MInt) const |
MInt | c_noChildren (const MInt cellId) const |
Returns the number of children of the cell cellId . More... | |
MLong | c_parentId (const MInt cellId) const |
Returns the grid parent id of the cell cellId . More... | |
MLong | c_globalId (const MInt cellId) const |
Returns the global grid id of the grid cell cellId . More... | |
MLong | c_childId (const MInt cellId, const MInt pos) const |
MInt | noVariables () const |
Return the number of primitive variables. More... | |
MFloat & | a_variable (const MInt cellId, const MInt varId) |
Returns conservative variable v of the cell cellId for variables varId . More... | |
MFloat | a_variable (const MInt cellId, const MInt varId) const |
Returns conservative variable v of the cell cellId for variables varId . More... | |
MFloat & | a_averagedVariable (const MInt cellId, const MInt varId) |
MBool | isMeanFile () const |
MInt | fileNoVars () const |
std::vector< MString > | fileVarNames () const |
MBool | a_isHalo (const MInt cellId) const |
Returns IsHalo of the cell cellId . More... | |
maia::post::cell::BitsetType::reference | a_isHalo (const MInt cellId) |
Returns IsHalo of the cell cellId . More... | |
MBool | a_isWindow (const MInt cellId) const |
Returns IsWindow of the cell cellId . More... | |
maia::post::cell::BitsetType::reference | a_isWindow (const MInt cellId) |
Returns IsWindow of the cell cellId . More... | |
void | a_resetPropertiesSolver (const MInt cellId) |
Returns property p of the cell cellId . More... | |
std::pair< MInt, MInt > | getPropertyVariableOffset (MString s) |
void | setPropertyVariableOffset (MString s, MInt start, MInt length) |
MString | getVariableName (MInt offset) |
void | setCellWeights (MFloat *) override |
sets the cell-weight for balancing and a restarting More... | |
MInt | noLoadTypes () const override |
Return the number of Ls load types. More... | |
void | getDefaultWeights (MFloat *weights, std::vector< MString > &names) const |
Return the default weights for all load quantities. More... | |
void | getLoadQuantities (MInt *const loadQuantities) const override |
Return the cumulative load quantities on this domain. More... | |
MFloat | getCellLoad (const MInt cellId, const MFloat *const weights) const override |
Return the load of a single cell (given computational weights). More... | |
void | getDomainDecompositionInformation (std::vector< std::pair< MString, MInt > > &domainInfo) override |
Return decomposition information, i.e. number of local elements,... More... | |
void | getSolverTimings (std::vector< std::pair< MString, MFloat > > &solverTimings, const MBool) override |
Get solver timings. More... | |
MInt | noCellDataDlb () const override |
Methods to inquire solver data information. More... | |
MInt | cellDataTypeDlb (const MInt dataId) const override |
MInt | cellDataSizeDlb (const MInt dataId, const MInt gridCellId) override |
Return data size to be communicated during DLB for a grid cell and given data id. More... | |
void | getCellDataDlb (const MInt dataId, const MInt oldNoCells, const MInt *const bufferIdToCellId, MFloat *const data) override |
void | setCellDataDlb (const MInt dataId, const MFloat *const data) override |
Set solver data for DLB. More... | |
Public Member Functions inherited from maia::CartesianSolver< nDim_, PostData< nDim_ > > | |
CartesianSolver (const MInt solverId, GridProxy &gridProxy_, const MPI_Comm comm, const MBool checkActive=false) | |
MInt | minLevel () const |
Read-only accessors for grid data. More... | |
MInt | maxLevel () const |
MInt | maxNoGridCells () const |
MInt | maxRefinementLevel () const |
MInt | maxUniformRefinementLevel () const |
MInt | noNeighborDomains () const |
MInt | neighborDomain (const MInt id) const |
MLong | domainOffset (const MInt id) const |
MInt | noHaloLayers () const |
MInt | noHaloCells (const MInt domainId) const |
MInt | haloCellId (const MInt domainId, const MInt cellId) const |
MInt | noWindowCells (const MInt domainId) const |
MInt | windowCellId (const MInt domainId, const MInt cellId) const |
MString | gridInputFileName () const |
MFloat | reductionFactor () const |
MFloat | centerOfGravity (const MInt dir) const |
MInt | neighborList (const MInt cellId, const MInt dir) const |
const MLong & | localPartitionCellGlobalIds (const MInt cellId) const |
MLong | localPartitionCellOffsets (const MInt index) const |
MInt | noMinCells () const |
MInt | minCell (const MInt id) const |
const MInt & | haloCell (const MInt domainId, const MInt cellId) const |
const MInt & | windowCell (const MInt domainId, const MInt cellId) const |
MBool | isActive () const override |
constexpr GridProxy & | grid () const |
GridProxy & | grid () |
virtual void | sensorDerivative (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorDivergence (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorTotalPressure (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorEntropyGrad (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorEntropyQuot (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorVorticity (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorInterface (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
void | sensorLimit (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt, std::function< MFloat(MInt)>, const MFloat, const MInt *, const MBool, const MBool allowCoarsening=true) |
simple sensor to apply a limit for a value More... | |
void | sensorSmooth (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
sensor to smooth level jumps NOTE: only refines additional cells to ensure a smooth level transition this requires that all other sensors are frozen i.e. no refine/coarse sensors set! More... | |
void | sensorBand (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
This sensor generates a max refinement band around the cells with max refinement level. In order for it to work, the property addedAdaptationSteps has to be equal to /maxRefinementLevel() - minLevel()/. This sensor also ensures a smooth transition between levels. Do not use together with sensorSmooth. More... | |
virtual void | sensorMeanStress (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorParticle (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorSpecies (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorPatch (std::vector< std::vector< MFloat > > &sensor, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen) |
virtual void | sensorCutOff (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
void | saveSensorData (const std::vector< std::vector< MFloat > > &sensors, const MInt &level, const MString &gridFileName, const MInt *const recalcIds) override |
Saves all sensor values for debug/tunig purposes. More... | |
void | assertValidGridCellId (const MInt) const |
MLong | c_parentId (const MInt cellId) const |
Returns the grid parent id of the cell cellId . More... | |
MLong | c_neighborId (const MInt cellId, const MInt dir) const |
Returns the grid neighbor id of the grid cell cellId dir . More... | |
MInt | c_noCells () const |
MInt | c_level (const MInt cellId) const |
MLong | c_globalGridId (const MInt cellId) |
void | exchangeData (T *data, const MInt dataBlockSize=1) |
Exchange memory in 'data' assuming a solver size of 'dataBlockSize' per cell. More... | |
void | exchangeLeafData (std::function< T &(MInt, MInt)> data, const MInt noDat=1) |
Blocking exchange memory in 'data' assuming a solver size of 'dataBlockSize' per cell NOTE: exchange is only performed on leaf-cells and leaf-NeighborDomains Assumes, that updateLeafCellExchange has been called in the proxy previously! More... | |
void | exchangeSparseLeafValues (G getData, S setData, const MInt dataSize, M cellMapping) |
Exchange of sparse data structures on max Level. More... | |
void | exchangeAzimuthalPer (T *data, MInt dataBlockSize=1, MInt firstBlock=0) |
Exchange of sparse data structures on max Level. More... | |
void | collectVariables (T *variablesIn, ScratchSpace< T > &variablesOut, const std::vector< MString > &variablesNameIn, std::vector< MString > &variablesNameOut, const MInt noVars, const MInt noCells, const MBool reverseOrder=false) |
generalised helper function for writing restart files! This is necessary for example if the minLevel shall be raised at the new restart! More... | |
void | collectVariables (T **variablesIn, ScratchSpace< T > &variablesOut, const std::vector< MString > &variablesNameIn, std::vector< MString > &variablesNameOut, const MInt noVars, const MInt noCells) |
generalised helper function for writing restart files! This is necessary for example if the minLevel shall be raised at the new restart! More... | |
void | saveGridFlowVars (const MChar *fileName, const MChar *gridFileName, const MInt noTotalCells, const MInt noInternal, MFloatScratchSpace &dbVariables, std::vector< MString > &dbVariablesName, MInt noDbVars, MIntScratchSpace &idVariables, std::vector< MString > &idVariablesName, MInt noIdVars, MFloatScratchSpace &dbParameters, std::vector< MString > &dbParametersName, MIntScratchSpace &idParameters, std::vector< MString > &idParametersName, MInt *recalcIds, MFloat time) |
This function writes the parallel Netcdf cartesian grid cell based solution/restart file currently used in PostData, LPT and LS solvers! More... | |
void | collectParameters (T, ScratchSpace< T > &, const MChar *, std::vector< MString > &) |
This function collects a single parameters for the massivley parallel IO functions. More... | |
void | calcRecalcCellIdsSolver (const MInt *const recalcIdsTree, MInt &noCells, MInt &noInternalCellIds, std::vector< MInt > &recalcCellIdsSolver, std::vector< MInt > &reorderedCellIds) |
Derive recalc cell ids of the solver and reordered cell ids. More... | |
Public Member Functions inherited from Solver | |
MString | getIdentifier (const MBool useSolverId=false, const MString preString="", const MString postString="_") |
virtual | ~Solver ()=default |
virtual MInt | noInternalCells () const =0 |
Return the number of internal cells within this solver. More... | |
virtual MFloat | time () const =0 |
Return the time. More... | |
virtual MInt | noVariables () const |
Return the number of variables. More... | |
virtual void | getDimensionalizationParams (std::vector< std::pair< MFloat, MString > > &) const |
Return the dimensionalization parameters of this solver. More... | |
void | updateDomainInfo (const MInt domainId, const MInt noDomains, const MPI_Comm mpiComm, const MString &loc) |
Set new domain information. More... | |
virtual MFloat & | a_slope (const MInt, MInt const, const MInt) |
virtual MBool | a_isBndryCell (const MInt) const |
virtual MFloat & | a_FcellVolume (MInt) |
virtual MInt | getCurrentTimeStep () const |
virtual void | accessSampleVariables (MInt, MFloat *&) |
virtual void | getSampleVariableNames (std::vector< MString > &NotUsed(varNames)) |
virtual MBool | a_isBndryGhostCell (MInt) const |
virtual void | saveCoarseSolution () |
virtual void | getSolverSamplingProperties (std::vector< MInt > &NotUsed(samplingVarIds), std::vector< MInt > &NotUsed(noSamplingVars), std::vector< std::vector< MString > > &NotUsed(samplingVarNames), const MString NotUsed(featureName)="") |
virtual void | initSolverSamplingVariables (const std::vector< MInt > &NotUsed(varIds), const std::vector< MInt > &NotUsed(noSamplingVars)) |
virtual void | calcSamplingVariables (const std::vector< MInt > &NotUsed(varIds), const MBool NotUsed(exchange)) |
virtual void | calcSamplingVarAtPoint (const MFloat *NotUsed(point), const MInt NotUsed(id), const MInt NotUsed(sampleVarId), MFloat *NotUsed(state), const MBool NotUsed(interpolate)=false) |
virtual void | balance (const MInt *const NotUsed(noCellsToReceiveByDomain), const MInt *const NotUsed(noCellsToSendByDomain), const MInt *const NotUsed(targetDomainsByCell), const MInt NotUsed(oldNoCells)) |
Perform load balancing. More... | |
virtual MBool | hasSplitBalancing () const |
Return if load balancing for solver is split into multiple methods or implemented in balance() More... | |
virtual void | balancePre () |
virtual void | balancePost () |
virtual void | finalizeBalance () |
virtual void | resetSolver () |
Reset the solver/solver for load balancing. More... | |
virtual void | cancelMpiRequests () |
Cancel open mpi (receive) requests in the solver (e.g. due to interleaved execution) More... | |
virtual void | setCellWeights (MFloat *) |
Set cell weights. More... | |
virtual MInt | noLoadTypes () const |
virtual void | getDefaultWeights (MFloat *NotUsed(weights), std::vector< MString > &NotUsed(names)) const |
virtual void | getLoadQuantities (MInt *const NotUsed(loadQuantities)) const |
virtual MFloat | getCellLoad (const MInt NotUsed(cellId), const MFloat *const NotUsed(weights)) const |
virtual void | limitWeights (MFloat *NotUsed(weights)) |
virtual void | localToGlobalIds () |
virtual void | globalToLocalIds () |
virtual MInt | noCellDataDlb () const |
Methods to inquire solver data information. More... | |
virtual MInt | cellDataTypeDlb (const MInt NotUsed(dataId)) const |
virtual MInt | cellDataSizeDlb (const MInt NotUsed(dataId), const MInt NotUsed(cellId)) |
virtual void | getCellDataDlb (const MInt NotUsed(dataId), const MInt NotUsed(oldNoCells), const MInt *const NotUsed(bufferIdToCellId), MInt *const NotUsed(data)) |
virtual void | getCellDataDlb (const MInt NotUsed(dataId), const MInt NotUsed(oldNoCells), const MInt *const NotUsed(bufferIdToCellId), MLong *const NotUsed(data)) |
virtual void | getCellDataDlb (const MInt NotUsed(dataId), const MInt NotUsed(oldNoCells), const MInt *const NotUsed(bufferIdToCellId), MFloat *const NotUsed(data)) |
virtual void | setCellDataDlb (const MInt NotUsed(dataId), const MInt *const NotUsed(data)) |
virtual void | setCellDataDlb (const MInt NotUsed(dataId), const MLong *const NotUsed(data)) |
virtual void | setCellDataDlb (const MInt NotUsed(dataId), const MFloat *const NotUsed(data)) |
virtual void | getGlobalSolverVars (std::vector< MFloat > &NotUsed(globalFloatVars), std::vector< MInt > &NotUsed(globalIntVars)) |
virtual void | setGlobalSolverVars (std::vector< MFloat > &NotUsed(globalFloatVars), std::vector< MInt > &NotUsed(globalIdVars)) |
void | enableDlbTimers () |
void | reEnableDlbTimers () |
void | disableDlbTimers () |
MBool | dlbTimersEnabled () |
void | startLoadTimer (const MString name) |
void | stopLoadTimer (const MString &name) |
void | stopIdleTimer (const MString &name) |
void | startIdleTimer (const MString &name) |
MBool | isLoadTimerRunning () |
virtual MInt | noSolverTimers (const MBool NotUsed(allTimings)) |
virtual void | getSolverTimings (std::vector< std::pair< MString, MFloat > > &NotUsed(solverTimings), const MBool NotUsed(allTimings)) |
virtual void | getDomainDecompositionInformation (std::vector< std::pair< MString, MInt > > &NotUsed(domainInfo)) |
void | setDlbTimer (const MInt timerId) |
virtual void | prepareAdaptation (std::vector< std::vector< MFloat > > &, std::vector< MFloat > &, std::vector< std::bitset< 64 > > &, std::vector< MInt > &) |
virtual void | reinitAfterAdaptation () |
virtual void | prepareAdaptation () |
prepare adaptation for split adaptation before the adaptation loop More... | |
virtual void | setSensors (std::vector< std::vector< MFloat > > &, std::vector< MFloat > &, std::vector< std::bitset< 64 > > &, std::vector< MInt > &) |
set solver sensors for split adaptation within the adaptation loop More... | |
virtual void | saveSensorData (const std::vector< std::vector< MFloat > > &, const MInt &, const MString &, const MInt *const) |
virtual void | postAdaptation () |
post adaptation for split adaptation within the adaptation loop More... | |
virtual void | finalizeAdaptation () |
finalize adaptation for split sadptation after the adaptation loop More... | |
virtual void | refineCell (const MInt) |
Refine the given cell. More... | |
virtual void | removeChilds (const MInt) |
Coarsen the given cell. More... | |
virtual void | removeCell (const MInt) |
Remove the given cell. More... | |
virtual void | swapCells (const MInt, const MInt) |
Swap the given cells. More... | |
virtual void | swapProxy (const MInt, const MInt) |
Swap the given cells. More... | |
virtual MInt | cellOutside (const MFloat *, const MInt, const MInt) |
Check whether cell is outside the fluid domain. More... | |
virtual void | resizeGridMap () |
Swap the given cells. More... | |
virtual MBool | prepareRestart (MBool, MBool &) |
Prepare the solvers for a grid-restart. More... | |
virtual void | reIntAfterRestart (MBool) |
MPI_Comm | mpiComm () const |
Return the MPI communicator used by this solver. More... | |
virtual MInt | domainId () const |
Return the domainId (rank) More... | |
virtual MInt | noDomains () const |
virtual MBool | isActive () const |
void | setSolverStatus (const MBool status) |
MBool | getSolverStatus () |
Get the solver status indicating if the solver is currently active in the execution recipe. More... | |
MString | testcaseDir () const |
Return the testcase directory. More... | |
MString | outputDir () const |
Return the directory for output files. More... | |
MString | restartDir () const |
Return the directory for restart files. More... | |
MString | solverMethod () const |
Return the solverMethod of this solver. More... | |
MString | solverType () const |
Return the solverType of this solver. More... | |
MInt | restartInterval () const |
Return the restart interval of this solver. More... | |
MInt | restartTimeStep () const |
Return the restart interval of this solver. More... | |
MInt | solverId () const |
Return the solverId. More... | |
MBool | restartFile () |
MInt | readSolverSamplingVarNames (std::vector< MString > &varNames, const MString featureName="") const |
Read sampling variables names, store in vector and return the number of sampling variables. More... | |
virtual MBool | hasRestartTimeStep () const |
virtual MBool | forceAdaptation () |
virtual void | preTimeStep ()=0 |
virtual void | postTimeStep ()=0 |
virtual void | initSolver ()=0 |
virtual void | finalizeInitSolver ()=0 |
virtual void | saveSolverSolution (const MBool NotUsed(forceOutput)=false, const MBool NotUsed(finalTimeStep)=false)=0 |
virtual void | cleanUp ()=0 |
virtual MBool | solutionStep () |
virtual void | preSolutionStep (MInt) |
virtual MBool | postSolutionStep () |
virtual MBool | solverConverged () |
virtual void | getInterpolatedVariables (MInt, const MFloat *, MFloat *) |
virtual void | loadRestartFile () |
virtual MInt | determineRestartTimeStep () const |
virtual void | writeRestartFile (MBool) |
virtual void | writeRestartFile (const MBool, const MBool, const MString, MInt *) |
virtual void | setTimeStep () |
virtual void | implicitTimeStep () |
virtual void | prepareNextTimeStep () |
Public Attributes | |
maia::post::collector::PostCellCollector< nDim > | m_cells |
Collector for POST data. More... | |
Geom * | m_geometry |
MBool | m_forceWriteRestart = false |
MFloat | m_timeStep = NAN |
MFloat | m_time = NAN |
MString | m_outputFormat |
MInt | m_sourceVarsIndex |
std::vector< MString > | m_variablesName |
MFloat ** | m_averagedVars = nullptr |
Public Attributes inherited from Solver | |
std::set< MInt > | m_freeIndices |
MBool | m_singleAdaptation = false |
MBool | m_splitAdaptation = true |
MBool | m_saveSensorData = false |
Static Public Attributes | |
static constexpr MInt | nDim = nDim_ |
Protected Member Functions | |
MInt | getVariablePropertyIndex (MString s) |
Return the number of primitive variables. More... | |
void | readProperties () |
MBool | hasSplitBalancing () const override |
Return if load balancing for solver is split into multiple methods or implemented in balance() More... | |
void | resetSolver () override |
Reset the solver prior to load balancing. More... | |
void | balancePre () override |
Reinitialize solver for DLB prior to setting solution data. More... | |
void | balancePost () override |
Reinitialize solver for DLB after to setting solution data. More... | |
void | finalizeBalance () override |
Reinitialize solver after all data structures have been recreated. More... | |
const std::vector< std::vector< MString > > | m_averageVariableName |
const std::vector< std::vector< MString > > | m_averageVariableName |
Protected Member Functions inherited from maia::CartesianSolver< nDim_, PostData< nDim_ > > | |
void | identifyBoundaryCells (MBool *const isInterface, const std::vector< MInt > &bndCndIds=std::vector< MInt >()) |
void | identifyBoundaryCells () |
MBool | cellIsOnGeometry (MInt cellId, Geometry< nDim > *geom) |
checks whether a cell lies on a certain geometry copied the essential part from identifyBoundaryCells More... | |
void | setBoundaryDistance (const MBool *const interfaceCell, const MFloat *const outerBandWidth, MFloatScratchSpace &distance) |
transverses over all neighboring cells for a specified length More... | |
void | markSurrndCells (MIntScratchSpace &inList, const MInt bandWidth, const MInt level, const MBool refineDiagonals=true) |
void | receiveWindowTriangles () |
Receives triangles from neighbors contained in their window cells and inserts them locally. More... | |
void | compactCells () |
Removes all holes in the cell collector and moves halo cells to the back of the collector. More... | |
MInt | createCellId (const MInt gridCellId) |
void | removeCellId (const MInt cellId) |
MInt | inCell (const MInt cellId, MFloat *point, MFloat fac=F1) |
MInt | setUpInterpolationStencil (const MInt cellId, MInt *, const MFloat *, std::function< MBool(MInt, MInt)>, MBool allowIncompleteStencil) |
MFloat | interpolateFieldData (MInt *, MFloat *, MInt varId, std::function< MFloat(MInt, MInt)> scalarField, std::function< MFloat(MInt, MInt)> coordinate) |
MFloat | leastSquaresInterpolation (MInt *, MFloat *, MInt varId, std::function< MFloat(MInt, MInt)> scalarField, std::function< MFloat(MInt, MInt)> coordinate) |
void | checkNoHaloLayers () |
check that each solver has the required number of haloLayers for leaf cells!!! TODO labels:toenhance under production, needs to be cleaned up! More... | |
void | mapInterpolationCells (std::map< MInt, MInt > &cellMap) |
void | setHaloCellsOnInactiveRanks () |
void | patchRefinement (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen) |
void | reOrderCellIds (std::vector< MInt > &reOrderedCells) |
reOrder cellIds before writing the restart file! This is necessary for example if the minLevel shall be raised at the new restart! More... | |
void | recomputeGlobalIds (std::vector< MInt > &, std::vector< MLong > &) |
reOrder cellIds before writing the restart file! This is necessary for example if the minLevel shall be raised at the new restart! More... | |
void | extractPointIdsFromGrid (Collector< PointBasedCell< nDim > > *&, Collector< CartesianGridPoint< nDim > > *&, const MBool, const std::map< MInt, MInt > &, MInt levelThreshold=999999, MFloat *bBox=nullptr, MBool levelSetMb=false) const |
Creates a list of unique corner points for all cells using a hash map levelThreshold optionally specifies the maximum cell level to be extracted bBox optionally specifies a bounding to box to which the extracted domain shall be truncated. More... | |
Protected Member Functions inherited from Solver | |
Solver (const MInt solverId, const MPI_Comm comm, const MBool isActive=true) | |
MFloat | returnLoadRecord () const |
MFloat | returnIdleRecord () const |
Static Protected Attributes | |
static const std::vector< std::vector< MString > > | m_averageVariableName |
Private Member Functions | |
template<typename dataType > | |
void | setCellDataDlb_ (const MInt dataId, const dataType *const data) |
Set the solver cell data after DLB. More... | |
template<typename dataType > | |
void | getCellDataDlb_ (const MInt dataId, const MInt oldNoCells, const MInt *const bufferIdToCellId, dataType *const data) |
Store the solver data for a given data id ordered in the given buffer for DLB. More... | |
Static Private Member Functions | |
static constexpr std::array< MInt, nDim > | getArray012 () |
Static indices for accessing post variables in nDim spatial dimensions. More... | |
Additional Inherited Members | |
Protected Types inherited from maia::CartesianSolver< nDim_, PostData< nDim_ > > | |
using | fun = void(CartesianSolver< nDim, PostData< nDim_ > >::*)(std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
Definition at line 23 of file postdata.h.
using PostData< nDim_ >::CartesianSolver = typename maia::CartesianSolver<nDim, PostData> |
Definition at line 27 of file postdata.h.
using PostData< nDim_ >::Cell = typename maia::grid::tree::Tree<nDim>::Cell |
Definition at line 31 of file postdata.h.
Definition at line 73 of file postdata.h.
Definition at line 28 of file postdata.h.
Definition at line 29 of file postdata.h.
Definition at line 30 of file postdata.h.
PostData< nDim >::PostData | ( | MInt | solverId_, |
GridProxy & | gridProxy_, | ||
Geom & | geometry_, | ||
const MPI_Comm | comm | ||
) |
Definition at line 61 of file postdata.cpp.
Definition at line 77 of file postdata.h.
|
inline |
Definition at line 173 of file postdata.h.
|
inline |
Definition at line 137 of file postdata.h.
|
inline |
Definition at line 185 of file postdata.h.
Definition at line 182 of file postdata.h.
|
inline |
Definition at line 193 of file postdata.h.
Definition at line 190 of file postdata.h.
Definition at line 152 of file postdata.h.
Definition at line 134 of file postdata.h.
Definition at line 198 of file postdata.h.
|
inline |
Definition at line 168 of file postdata.h.
|
inline |
Definition at line 171 of file postdata.h.
Reimplemented from Solver.
Definition at line 1087 of file postdata.cpp.
Reimplemented from Solver.
Definition at line 1046 of file postdata.cpp.
|
inline |
Definition at line 162 of file postdata.h.
|
inline |
Definition at line 143 of file postdata.h.
|
inline |
Definition at line 146 of file postdata.h.
Definition at line 160 of file postdata.h.
Definition at line 149 of file postdata.h.
Definition at line 132 of file postdata.h.
Definition at line 154 of file postdata.h.
Definition at line 157 of file postdata.h.
|
override |
Definition at line 1113 of file postdata.cpp.
|
inlineoverride |
Definition at line 236 of file postdata.h.
|
overridevirtual |
Reimplemented from Solver.
Definition at line 1025 of file postdata.cpp.
Definition at line 112 of file postdata.cpp.
Definition at line 178 of file postdata.h.
Definition at line 179 of file postdata.h.
Reimplemented from Solver.
Definition at line 1102 of file postdata.cpp.
Implements Solver.
Definition at line 276 of file postdata.cpp.
Definition at line 82 of file postdata.h.
|
inlinestaticconstexprprivate |
Definition at line 375 of file postdata.h.
|
inlineoverride |
Definition at line 245 of file postdata.h.
|
inlineprivate |
Definition at line 344 of file postdata.h.
|
override |
[in] | cellId | Requested grid cell id. |
[in] | weights | Computational weights for different simulation components. |
Definition at line 770 of file postdata.cpp.
void PostData< nDim >::getDefaultWeights | ( | MFloat * | weights, |
std::vector< MString > & | names | ||
) | const |
Definition at line 683 of file postdata.cpp.
|
override |
Definition at line 703 of file postdata.cpp.
|
override |
[out] | loadQuantities | Storage for load quantities. |
Definition at line 742 of file postdata.cpp.
|
inline |
Definition at line 207 of file postdata.h.
|
override |
Definition at line 648 of file postdata.cpp.
Definition at line 197 of file postdata.cpp.
Definition at line 261 of file postdata.h.
Implements Solver.
Definition at line 135 of file postdata.cpp.
Definition at line 177 of file postdata.h.
void PostData< nDim >::loadGridFlowVars | ( | const MChar * | fileName, |
MInt | noVariables, | ||
std::vector< MString > | name | ||
) |
Definition at line 545 of file postdata.cpp.
checks for attribute "isMeanFile", if found all variables are loaded (e.g. means and statistical moments).
[in] | fileName | name of data file to load |
Definition at line 488 of file postdata.cpp.
Reimplemented from Solver.
Definition at line 454 of file postdata.cpp.
Definition at line 20 of file postdata.cpp.
Definition at line 41 of file postdata.cpp.
Reimplemented from Solver.
Definition at line 235 of file postdata.h.
Type 1: number of cells Type 2: ??? number cells used for probing Type 3: ??? number cells used for averaging
Reimplemented from Solver.
Definition at line 670 of file postdata.cpp.
Reimplemented from Solver.
Definition at line 854 of file postdata.cpp.
Reimplemented from Solver.
Definition at line 800 of file postdata.cpp.
Reimplemented from Solver.
Definition at line 312 of file postdata.cpp.
Reimplemented from Solver.
Definition at line 894 of file postdata.cpp.
Reimplemented from Solver.
Definition at line 345 of file postdata.cpp.
Reimplemented from Solver.
Definition at line 966 of file postdata.cpp.
Reimplemented from Solver.
Definition at line 937 of file postdata.cpp.
Reimplemented from Solver.
Definition at line 1037 of file postdata.cpp.
Reimplemented from Solver.
Definition at line 984 of file postdata.cpp.
void PostData< nDim >::saveDataFile | ( | const MBool | writeBackup, |
const MString | fileName, | ||
const MInt | noVars, | ||
std::vector< MString > & | variablesName, | ||
MFloat * | variables | ||
) |
Definition at line 372 of file postdata.cpp.
Definition at line 356 of file postdata.cpp.
Definition at line 575 of file postdata.cpp.
Definition at line 150 of file postdata.cpp.
|
inlineoverride |
Definition at line 251 of file postdata.h.
|
inlineprivate |
Definition at line 323 of file postdata.h.
|
overridevirtual |
Reimplemented from Solver.
Definition at line 721 of file postdata.cpp.
|
inline |
Definition at line 213 of file postdata.h.
|
overridevirtual |
Reimplemented from Solver.
Definition at line 815 of file postdata.cpp.
Definition at line 181 of file postdata.cpp.
|
overridevirtual |
Reimplemented from Solver.
Definition at line 994 of file postdata.cpp.
|
overridevirtual |
Reimplemented from Solver.
Definition at line 1013 of file postdata.cpp.
Definition at line 85 of file postdata.h.
|
overridevirtual |
Reimplemented from Solver.
Definition at line 290 of file postdata.cpp.
Definition at line 294 of file postdata.h.
Definition at line 296 of file postdata.h.
Definition at line 257 of file postdata.h.
|
staticprotected |
Definition at line 288 of file postdata.h.
maia::post::collector::PostCellCollector<nDim> PostData< nDim_ >::m_cells |
Definition at line 34 of file postdata.h.
Definition at line 300 of file postdata.h.
Definition at line 315 of file postdata.h.
Definition at line 317 of file postdata.h.
Definition at line 295 of file postdata.h.
Definition at line 175 of file postdata.h.
Definition at line 79 of file postdata.h.
Definition at line 313 of file postdata.h.
Definition at line 305 of file postdata.h.
Definition at line 293 of file postdata.h.
Definition at line 205 of file postdata.h.
Definition at line 270 of file postdata.h.
Definition at line 223 of file postdata.h.
Definition at line 202 of file postdata.h.
Definition at line 201 of file postdata.h.
|
protected |
Definition at line 290 of file postdata.h.
Definition at line 254 of file postdata.h.
Definition at line 25 of file postdata.h.