MAIA bb96820c
Multiphysics at AIA
Loading...
Searching...
No Matches
FvApeSolver2D Class Reference

#include <fvcartesianapesolver2d.h>

Inheritance diagram for FvApeSolver2D:
[legend]
Collaboration diagram for FvApeSolver2D:
[legend]

Public Member Functions

 FvApeSolver2D (MInt, MInt, MBool *, maia::grid::Proxy< 2 > &gridProxy_, Geometry< 2 > &geometry_, const MPI_Comm comm)
 
void Ausm ()
 Dispatches the AUSM flux computation for different number of species. More...
 
MBool maxResidual (MInt)
 Computes the global root-mean-square residual. The residual is defined as time derivative of conservative variables, RHS/cellVolume. This gives a residual independent of the time step. Similarly, the volume-weighting/volume-integrated RMS value results in a residual independent from the number of cells, thus smooth in time for dynamic mesh adaptation. mode 0 (default) : also write residual file mode 1 : pure debugging of the residual. More...
 
- Public Member Functions inherited from FvCartesianSolverXD< 2, FvSysEqnNS< 2 > >
 FvCartesianSolverXD ()=delete
 
 FvCartesianSolverXD (MInt, MInt, const MBool *, maia::grid::Proxy< nDim_ > &gridProxy_, Geometry< nDim_ > &geometry_, const MPI_Comm comm)
 
 ~FvCartesianSolverXD ()
 
FvSysEqnNS< 2 > sysEqn () const
 
FvSysEqnNS< 2 > & sysEqn ()
 
MInt a_noCells () const
 Returns the number of cells. More...
 
MInt noInternalCells () const override
 Return the number of internal cells within this solver. More...
 
MBool a_isGapCell (const MInt cellId) const
 Returns isGapCell of the cell cellId. More...
 
maia::fv::cell::BitsetType::reference a_isGapCell (const MInt cellId)
 Returns isGapCell of the cell cellId. More...
 
maia::fv::cell::BitsetType::reference a_wasGapCell (const MInt cellId)
 Returns wasGapCell of the cell cellId. More...
 
MBool a_isHalo (const MInt cellId) const
 Returns IsHalo of the cell cellId. More...
 
maia::fv::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::fv::cell::BitsetType::reference a_isWindow (const MInt cellId)
 Returns IsWindow of the cell cellId. More...
 
MBool a_isPeriodic (const MInt cellId) const
 Returns IsPeriodic of the cell cellId. More...
 
maia::fv::cell::BitsetType::reference a_isPeriodic (const MInt cellId)
 Returns IsPeriodic of the cell cellId. More...
 
MBool a_isBndryCell (const MInt cellId) const override
 Returns isBndryCell of the cell cellId. More...
 
MBool a_isInterface (const MInt cellId) const
 Returns isInterface of the cell cellId. More...
 
maia::fv::cell::BitsetType::reference a_isInterface (const MInt cellId)
 Returns isInterface of the cell cellId. More...
 
MBool a_isBndryGhostCell (const MInt cellId) const
 Returns isBndryGhostCell of the cell cellId. More...
 
maia::fv::cell::BitsetType::reference a_isBndryGhostCell (const MInt cellId)
 Returns isBndryGhostCell of the cell cellId. More...
 
MBool a_isWMImgCell (const MInt cellId) const
 Returns isWMImgCell of the cell cellId. More...
 
maia::fv::cell::BitsetType::reference a_isWMImgCell (const MInt cellId)
 Returns isWMImgCell of the cell cellId. More...
 
MBool a_isSandpaperTripCell (const MInt cellId) const
 Returns isWMImgCell of the cell cellId. More...
 
maia::fv::cell::BitsetType::reference a_isSandpaperTripCell (const MInt cellId)
 Returns isWMImgCell of the cell cellId. More...
 
maia::fv::cell::BitsetTypea_properties (const MInt cellId)
 Returns properties of the cell cellId. More...
 
MFloata_spongeFactor (const MInt cellId)
 Returns the spongeFactor of the cell cellId. More...
 
MFloat a_spongeFactor (const MInt cellId) const
 Returns the spongeFactor of the cell cellId. More...
 
MFloata_coordinate (const MInt cellId, const MInt dir)
 Returns the coordinate of the cell from the fvcellcollector cellId for dimension dir. More...
 
MFloat a_coordinate (const MInt cellId, const MInt dir) const
 Returns the coordinate of the cell from the fvcellcollector cellId for dimension dir. More...
 
MInta_level (const MInt cellId)
 Returns the level of the cell from the fvcellcollector cellId. More...
 
MInt a_level (const MInt cellId) const
 Returns the level of the cell from the fvcellcollector cellId. More...
 
MFloata_cellVolume (const MInt cellId)
 Returns the cell volume of the cell from the fvcellcollector cellId. More...
 
MFloat a_cellVolume (const MInt cellId) const
 Returns the cell volume of the cell from the fvcellcollector cellId. More...
 
MFloata_FcellVolume (const MInt cellId) override
 Returns the inverse cell volume of the cell from the fvcellcollector cellId. More...
 
MFloat a_FcellVolume (const MInt cellId) const
 Returns the inverse cell volume of the cell from the fvcellcollector cellId. More...
 
MInt a_cutCellLevel (const MInt cellId) const
 Returns the level for cutCells, this can either be the maxRefinementLevel or the level of the current cellId. More...
 
MBool a_isInactive (const MInt cellId) const
 
MBool a_isActive (const MInt cellId) const
 
MBool a_isSplitCell (const MInt cellId) const
 
MInt a_noSplitCells () const
 
MInt a_noSplitChilds (const MInt sc) const
 
MInt a_splitChildId (const MInt sc, const MInt ssc)
 
MInt a_splitCellId (const MInt sc) const
 
void assertValidGridCellId (const MInt cellId) const
 Cecks wether the cell cellId is an actual grid-cell. More...
 
void assertValidGridCellId (const MInt NotUsed(cellId)) const
 
void assertDeleteNeighbor (const MInt cellId, const MInt dir) const
 Checks wether the cell cellId has a valid neighbor in direction dir. More...
 
MBool checkNeighborActive (const MInt cellId, const MInt dir) const
 Cecks wether the cell cellId has a valid neighbor in direction dir. More...
 
MFloat c_coordinate (const MInt cellId, const MInt dir) const
 Returns the coordinate of the cell from the grid().tree() cellId for dimension dir. More...
 
MBool c_isLeafCell (const MInt cellId) const
 
MInt c_level (const MInt cellId) const
 Returns the grid level of the cell cellId. More...
 
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...
 
MFloat c_weight (const MInt cellId) const
 Returns the weight of the cell cellId. More...
 
MLong c_childId (const MInt cellId, const MInt pos) const
 Returns the grid child id of the grid cell cellId at position pos. More...
 
MLong c_neighborId (const MInt cellId, const MInt dir, const MBool assertNeighborState=true) const
 Returns the grid neighbor id of the grid cell cellId dir. More...
 
MFloat c_cellLengthAtCell (const MInt cellId) const
 Returns the length of the cell for level. More...
 
MFloat c_cellLengthAtLevel (const MInt level) const
 Returns the length of the cell for level. More...
 
MFloat c_cellVolumeAtLevel (const MInt level) const
 Returns the grid Volume of the cell for level. More...
 
MBool a_hasProperty (const MInt cellId, const Cell p) const
 Returns grid cell property p of the cell cellId. More...
 
maia::fv::cell::BitsetType::reference a_hasProperty (const MInt cellId, const SolverCell p)
 Returns solver cell property p of the cell cellId. More...
 
MBool a_hasProperty (const MInt cellId, const SolverCell p) const
 Returns solver cell property p of the cell cellId. More...
 
MBool c_isToDelete (const MInt cellId) const
 Returns the delete of the cell cellId. More...
 
MInt a_hasNeighbor (const MInt cellId, const MInt dir, const MBool assertNeighborState=true) const
 Returns noNeighborIds of the cell CellId for direction dir. More...
 
MFloata_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...
 
MFloata_pvariable (const MInt cellId, const MInt varId)
 Returns primitive variable v of the cell cellId for variables varId. More...
 
MFloat a_pvariable (const MInt cellId, const MInt varId) const
 Returns primitive variable v of the cell cellId for variables varId. More...
 
MFloata_avariable (const MInt cellId, const MInt varId)
 Returns additional variable v of the cell cellId for variables varId. More...
 
MFloat a_avariable (const MInt cellId, const MInt varId) const
 Returns additional variable v of the cell cellId for variables varId. More...
 
void a_resetPropertiesSolver (const MInt cellId)
 Returns property p of the cell cellId. More...
 
void a_copyPropertiesSolver (const MInt fromCellId, const MInt toCellId)
 Returns property p of the cell cellId. More...
 
MInta_reconstructionNeighborId (const MInt cellId, const MInt nghbrNo)
 Returns reconstruction neighbor n of the cell cellId. More...
 
MInt a_reconstructionNeighborId (const MInt cellId, const MInt nghbrNo) const
 Returns reconstruction neighbor n of the cell cellId. More...
 
MInt a_reconstructionNeighborId (const MInt cellId) const
 Returns reconstruction data offset i of the cell cellId. More...
 
MInta_reconstructionData (const MInt cellId)
 Returns reconstruction data offset i of the cell cellId. More...
 
MInta_spongeBndryId (const MInt cellId, const MInt dir)
 Returns the spongeBndryId of the cell cellId for direction dir. More...
 
MInt a_spongeBndryId (const MInt cellId, const MInt dir) const
 Returns the spongeBndryId of the cell cellId for direction dir. More...
 
MFloata_spongeFactorStart (const MInt cellId)
 Returns the spongeFactorStart of the cell cellId. More...
 
MFloat a_spongeFactorStart (const MInt cellId) const
 Returns the spongeFactorStart of the cell cellId. More...
 
MInta_bndryId (const MInt cellId)
 Returns the bndryId of the cell cellId. More...
 
MInt a_bndryId (const MInt cellId) const
 Returns the bndryId of the cell cellId. More...
 
MInta_noReconstructionNeighbors (const MInt cellId)
 Returns the noRcnstrctnNghbrIds of the cell cellId. More...
 
MInt a_noReconstructionNeighbors (const MInt cellId) const
 Returns the noRcnstrctnNghbrIds of the cell cellId. More...
 
MFloata_tau (const MInt cellId, const MInt varId)
 Returns the tau of the cell cellId for variable varId. More...
 
MFloat a_tau (const MInt cellId, const MInt varId) const
 Returns the tau of the cell cellId for variable varId. More...
 
MFloata_restrictedRHS (const MInt cellId, const MInt varId)
 Returns the restrictedRHS of the cell cellId for variable varId. More...
 
MFloat a_restrictedRHS (const MInt cellId, const MInt varId) const
 Returns the restrictedRHS of the cell cellId for variable varId. More...
 
MFloata_restrictedVar (const MInt cellId, const MInt varId)
 Returns restricted variables of cell cellId for variable varId on level level. More...
 
MFloat a_restrictedVar (const MInt cellId, const MInt varId) const
 Returns restricted variables of cell cellId for variable varId on level level. More...
 
MFloata_reactionRate (const MInt cellId, const MInt reactionId)
 Returns the reactionRate of the cell cellId for variables varId. More...
 
MFloat a_reactionRate (const MInt cellId, const MInt reactionId) const
 Returns the reactionRate of the cell cellId for variables varId. More...
 
MFloata_reactionRateBackup (const MInt cellId, const MInt reactionId)
 Returns the reactionRateBackup of the cell cellId for variables varId. More...
 
MFloat a_reactionRateBackup (const MInt cellId, const MInt reactionId) const
 Returns the reactionRateBackup of the cell cellId for variables varId. More...
 
MFloata_psi (const MInt cellId)
 Returns psi of the cell cellId for variables varId. More...
 
MFloat a_psi (const MInt cellId) const
 Returns psi of the cell cellId for variables varId. More...
 
MFloata_speciesReactionRate (const MInt cellId, const MInt speciesIndex)
 
MFloat a_speciesReactionRate (const MInt cellId, const MInt speciesIndex) const
 
MFloata_implicitCoefficient (const MInt cellId, const MInt coefId)
 Returns the implicitCoefficient of cell cellId for coefficient coefId. More...
 
MFloat a_implicitCoefficient (const MInt cellId, const MInt coefId) const
 Returns the implicitCoefficient of cell cellId for coefficient coefId. More...
 
MFloata_dt1Variable (const MInt cellId, const MInt varId)
 Returns dt1Variables of the cell CellId variables varId. More...
 
MFloat a_dt1Variable (const MInt cellId, const MInt varId) const
 Returns dt1Variables of the cell CellId variables varId. More...
 
MFloata_dt2Variable (const MInt cellId, const MInt varId)
 Returns dt2Variables of the cell CellId variables varId. More...
 
MFloat a_dt2Variable (const MInt cellId, const MInt varId) const
 Returns dt2Variables of the cell CellId variables varId. More...
 
MFloata_oldVariable (const MInt cellId, const MInt varId)
 Returns oldVariablesv of the cell cellId variables varId. More...
 
MFloat a_oldVariable (const MInt cellId, const MInt varId) const
 Returns oldVariables v of the cell cellId variables varId. More...
 
MFloata_slope (const MInt cellId, MInt const varId, const MInt dir) override
 Returns the slope of the cell cellId for the variable varId in direction dir. More...
 
MFloat a_slope (const MInt cellId, MInt const varId, const MInt dir) const
 Returns the slope of the cell cellId for the variable varId in direction dir. More...
 
MFloata_storedSlope (const MInt cellId, MInt const varId, const MInt dir)
 Returns the stored slope of the cell cellId for the variable varId in direction dir. More...
 
MFloat a_storedSlope (const MInt cellId, MInt const varId, const MInt dir) const
 Returns the stored slope of the cell cellId for the variable varId in direction dir. More...
 
MFloata_rightHandSide (const MInt cellId, MInt const varId)
 Returns the right hand side of the cell cellId for the variable varId. More...
 
MFloat a_rightHandSide (const MInt cellId, MInt const varId) const
 Returns the right hand side of the cell cellId for the variable varId. More...
 
MInt a_noSurfaces ()
 Returns the number of surfaces. More...
 
MInta_surfaceBndryCndId (const MInt srfcId)
 Returns the boundary condition of surface srfcId. More...
 
MInt a_surfaceBndryCndId (const MInt srfcId) const
 Returns the boundary condition of surface srfcId. More...
 
MInta_surfaceOrientation (const MInt srfcId)
 Returns the orientation of surface srfcId. More...
 
MInt a_surfaceOrientation (const MInt srfcId) const
 Returns the orientation of surface srfcId. More...
 
MFloata_surfaceArea (const MInt srfcId)
 Returns the area of surface srfcId. More...
 
MFloat a_surfaceArea (const MInt srfcId) const
 Returns the area of surface srfcId. More...
 
MFloata_surfaceFactor (const MInt srfcId, const MInt varId)
 Returns the factor of surface srfcId for variable varId. More...
 
MFloat a_surfaceFactor (const MInt srfcId, const MInt varId) const
 Returns the factor of surface srfcId for variable varId. More...
 
MFloata_surfaceCoordinate (const MInt srfcId, const MInt dir)
 Returns the coordinate of surface srfcId in direction dir. More...
 
MFloat a_surfaceCoordinate (const MInt srfcId, const MInt dir) const
 Returns the coordinate of surface srfcId in direction dir. More...
 
MFloata_surfaceDeltaX (const MInt srfcId, const MInt varId)
 Returns the delta X of surface srfcId for variable varId. More...
 
MFloat a_surfaceDeltaX (const MInt srfcId, const MInt varId) const
 Returns the delta X of surface srfcId for variable varId. More...
 
MInta_surfaceNghbrCellId (const MInt srfcId, const MInt dir)
 Returns the neighbor cell id of surface srfcId in direction dir. More...
 
MInt a_surfaceNghbrCellId (const MInt srfcId, const MInt dir) const
 Returns the neighbor cell id of surface srfcId in direction dir. More...
 
MFloata_surfaceVariable (const MInt srfcId, const MInt dir, const MInt varId)
 Returns the variable varId of surface srfcId in direction dir. More...
 
MFloat a_surfaceVariable (const MInt srfcId, const MInt dir, const MInt varId) const
 Returns the variable varId of surface srfcId in direction dir. More...
 
MFloata_surfaceUpwindCoefficient (const MInt srfcId)
 Returns the upwind coefficient of surface srfcId. More...
 
MFloat a_surfaceUpwindCoefficient (const MInt srfcId) const
 Returns the upwind coefficient of surface srfcId. More...
 
MFloata_surfaceCoefficient (const MInt srfcId, const MInt dimCoefficient)
 Returns the coefficient dimCoefficient of surface srfcId. More...
 
MFloat a_surfaceCoefficient (const MInt srfcId, const MInt dimCoefficient) const
 Returns the coefficient dimCoefficient of surface srfcId. More...
 
MFloata_surfaceFlux (const MInt srfcId, const MInt fVarId)
 Returns the flux fVarId for surface srfcId. More...
 
MFloat a_surfaceflux (const MInt srfcId, const MInt fVarId) const
 Returns the flux fVarId for surface srfcId. More...
 
MFloata_Ma ()
 Returns the Mach number of the solver. More...
 
const MFloata_Ma () const
 Returns the Mach number of the solver. More...
 
MFloata_cfl ()
 Returns the cfl number of the solver. More...
 
const MFloata_cfl () const
 
MInta_restartInterval ()
 Returns the restart interval of the solver. More...
 
const MInta_restartInterval () const
 Returns the restart interval of the solver. More...
 
MInta_bndryCndId (MInt bndryId)
 Return BndryCndId. More...
 
const MInta_bndryCndId (MInt bndryId) const
 Return BndryCndId. More...
 
MFloata_bndryNormal (MInt bndryId, MInt dir)
 Return normal direction of bndry srfc. More...
 
const MFloata_bndryNormal (MInt bndryId, MInt dir) const
 Return normal direction of bndry srfc. More...
 
MFloata_bndryCutCoord (MInt bndryId, MInt i, MInt j)
 Return cut coordinates of bndry srfc. More...
 
const MFloata_bndryCutCoord (MInt bndryId, MInt i, MInt j) const
 Return cut coordinates of bndry srfc. More...
 
const MInta_bndryGhostCellId (const MInt bndryId, const MInt srfc) const
 
MInta_identNghbrId (MInt nghbrId)
 Return ident nghbr Id. More...
 
const MInta_identNghbrId (MInt nghbrId) const
 Return ident nghbr Id. More...
 
MInta_storeNghbrId (MInt nghbrId)
 Return store nghbr Id. More...
 
const MInta_storeNghbrId (MInt nghbrId) const
 Return store nghbr Id. More...
 
MFloata_VVInfinity (MInt dir)
 Return mean flow velocity. More...
 
const MFloata_VVInfinity (MInt dir) const
 Return mean flow velocity. More...
 
MFloata_rhoInfinity ()
 Return rho infinity. More...
 
const MFloata_rhoInfinity () const
 Return rho infinity. More...
 
MFloata_PInfinity ()
 Return p infinity. More...
 
const MFloata_PInfinity () const
 Return p infinity. More...
 
MFloata_TInfinity ()
 Return T infinity. More...
 
const MFloata_TInfinity () const
 Return T infinity. More...
 
MFloata_timeRef ()
 Return time reference value. More...
 
const MFloata_timeRef () const
 Return time reference value. More...
 
MInta_noPart (MInt cellId)
 Return no particles. More...
 
const MInta_noPart (MInt cellId) const
 Return no particles. More...
 
MFloata_physicalTime ()
 Return physical time. More...
 
const MFloata_physicalTime () const
 Return physical time. More...
 
MFloata_time ()
 Return time. More...
 
const MFloata_time () const
 Return time. More...
 
MFloata_externalSource (MInt cellId, MInt var)
 Return external source. More...
 
const MFloata_externalSource (MInt cellId, MInt var) const
 Return external source. More...
 
MInta_maxLevelWindowCells (MInt domain, MInt id)
 Return max level window cells. More...
 
const MInta_maxLevelWindowCells (MInt domain, MInt id) const
 Return max level window cells. More...
 
MInta_maxLevelHaloCells (MInt domain, MInt id)
 Return max level halo cells. More...
 
const MInta_maxLevelHaloCells (MInt domain, MInt id) const
 Return max level halo cells. More...
 
MFloata_localTimeStep (const MInt cellId)
 Returns the local time-step of the cell cellId. More...
 
MFloat a_localTimeStep (const MInt cellId) const
 Returns the local time-step of the cell cellId. More...
 
MFloat a_dynViscosity (const MFloat T) const
 
MFloata_levelSetFunction (const MInt cellId, const MInt set)
 Returns the levelSet-value for fv-CellId cellId and set. More...
 
MFloat a_levelSetFunction (const MInt cellId, const MInt set) const
 Returns the levelSet-value for fv-CellId cellId and set. More...
 
MFloata_levelSetValuesMb (const MInt cellId, const MInt set)
 Returns the levelSetMb-value for fv-CellId cellId and set. More...
 
MFloat a_levelSetValuesMb (const MInt cellId, const MInt set) const
 Returns the levelSetMb-value for fv-CellId cellId and set. More...
 
MFloat a_alphaGas (const MInt cellId) const
 
MFloata_alphaGas (const MInt cellId)
 
MFloat a_uOtherPhase (const MInt cellId, const MInt dir) const
 
MFloata_uOtherPhase (const MInt cellId, const MInt dir)
 
MFloat a_uOtherPhaseOld (const MInt cellId, const MInt dir) const
 
MFloata_uOtherPhaseOld (const MInt cellId, const MInt dir)
 
MFloat a_gradUOtherPhase (const MInt cellId, const MInt uDir, const MInt gradDir) const
 
MFloata_gradUOtherPhase (const MInt cellId, const MInt uDir, const MInt gradDir)
 
MFloat a_vortOtherPhase (const MInt cellId, const MInt dir) const
 
MFloata_vortOtherPhase (const MInt cellId, const MInt dir)
 
MFloat a_nuTOtherPhase (const MInt cellId) const
 
MFloata_nuTOtherPhase (const MInt cellId)
 
MFloat a_nuEffOtherPhase (const MInt cellId) const
 
MFloata_nuEffOtherPhase (const MInt cellId)
 
MInta_associatedBodyIds (const MInt cellId, const MInt set)
 Returns the associatedBodyIds for fv-CellId cellId and set. More...
 
MInt a_associatedBodyIds (const MInt cellId, const MInt set) const
 Returns the associatedBodyIds for fv-CellId cellId and set. More...
 
MFloata_curvatureG (const MInt cellId, const MInt set)
 Returns the curvature-value for fv-CellId cellId and set. More...
 
MFloat a_curvatureG (const MInt cellId, const MInt set) const
 Returns the curvature-value for fv-CellId cellId and set. More...
 
MFloata_flameSpeed (const MInt cellId, const MInt set)
 Returns the flamespeed-value for fv-CellId cellId and set. More...
 
MFloat a_flameSpeed (const MInt cellId, const MInt set) const
 Returns the flamespeed-value for fv-CellId cellId and set. More...
 
MInta_noSets ()
 Returns the noSets for fv-CellId cellId and set. More...
 
MInt a_noSets () const
 Returns the noSets for fv-CellId cellId and set. More...
 
MInta_noLevelSetFieldData ()
 Returns the noSets for fv-CellId cellId and set. More...
 
MInt a_noLevelSetFieldData () const
 Returns the noSets for fv-CellId cellId and set. More...
 
const MIntgetAssociatedInternalCell (const MInt &cellId) const
 Returns the Id of the split cell, if cellId is a split child. More...
 
virtual void reIntAfterRestart (MBool)
 
virtual void resetRHS ()
 
virtual void resetRHSCutOffCells ()
 
virtual void initSolutionStep (MInt)
 Initializes the solver. More...
 
virtual void applyInitialCondition ()
 Initializes the entire flow field. More...
 
virtual void Ausm ()
 Dispatches the AUSM flux computation for different number of species. More...
 
virtual void Muscl (MInt=-1)
 Reconstructs the flux on the surfaces. More...
 
virtual void viscousFlux ()
 
virtual void copyVarsToSmallCells ()
 
virtual void computePV ()
 
virtual void computePrimitiveVariables ()
 Dispatches the computation of the primitive variables for different number of species. More...
 
virtual void filterConservativeVariablesAtFineToCoarseGridInterfaces ()
 
virtual void copyRHSIntoGhostCells ()
 
virtual void LSReconstructCellCenter_Boundary ()
 Computes the slopes at the cell centers of only the boundary cells. More...
 
virtual void LSReconstructCellCenter ()
 Dispatch the reconstruction computation to the appropiate loop. More...
 
virtual void applyBoundaryCondition ()
 handles the application of boundary conditions to the ghost cells More...
 
virtual void cutOffBoundaryCondition ()
 
virtual void computeConservativeVariables ()
 Dispatches the computation of the conservative variables for different number of species. More...
 
virtual void initNearBoundaryExchange (const MInt mode=0, const MInt offset=0)
 Setup the near-boundary communicator needed for the flux-redistribution method. More...
 
void initAzimuthalNearBoundaryExchange (MIntScratchSpace &activeFlag)
 
void azimuthalNearBoundaryExchange ()
 
void azimuthalNearBoundaryReverseExchange ()
 
void setActiveFlag (MIntScratchSpace &, const MInt mode, const MInt offset)
 Set the flag for the cells needed for near bndry exchange. More...
 
virtual void setAdditionalActiveFlag (MIntScratchSpace &)
 
void setInfinityState ()
 Computes/defines the infinity values/state once and for all Ideally the infinity variables should not be updated outside of this function! More...
 
void initAzimuthalCartesianHaloInterpolation ()
 
void computeSurfaceCoefficients ()
 Dispatches the transport coefficients computation at each surfaces by calling the relevant function from the detChemSysEqn class. Distinction between "Multi" and "Mix" transport models! Author: Borja Pedro. More...
 
void computeSpeciesReactionRates ()
 Dispatches the species reaction rate computation at each cell by calling the relevant method from the detChemSysEqn class. Author: Borja Pedro. More...
 
void computeMeanMolarWeights_PV ()
 Dispatches the mean molar weight computation at the cell center from the primitive variables by calling the relevant function from the detChemSysEqn class. The mean molar weight is stored inside the additional variables array. Author: Borja Pedro. More...
 
void computeMeanMolarWeights_CV ()
 Dispatches the mean molar weight computation at the cell center from the conservative variables by calling the relevant function from the detChemSysEqn class. The mean molar weight is stored inside the additional variables array. Author: Borja Pedro. More...
 
void setMeanMolarWeight_CV (MInt cellId)
 Computes the mean molar weight at the given cell ID from the primitive variables. The mean molar weight is stored inside the additional variables array. Author: Borja Pedro. More...
 
void setMeanMolarWeight_PV (MInt cellId)
 
void computeGamma ()
 Dispatches the gamma computation at each cell by calling the relevant function from the detChemSysEqn class. It is stored inside the additional variables array, and used to compute the time step. Author: Borja Pedro. More...
 
void computeDetailedChemistryVariables ()
 
void setAndAllocateDetailedChemistryProperties ()
 
void initCanteraObjects ()
 Allocates the Cantera objects that define a thermodynamic phase, reaction kinetics and transport properties for a given reaction mechanism. More...
 
void correctMajorSpeciesMassFraction ()
 Corrects the mass fraction of the predominant species to ensure conservation due to numerical or approximation erros For combustion with air: N2 is the major species Author: Borja Pedro. More...
 
void compute1DFlameSolution ()
 
void addSpeciesReactionRatesAndHeatRelease ()
 
void initHeatReleaseDamp ()
 
void computeAcousticSourceTermQe (MFloatScratchSpace &, MFloatScratchSpace &, MFloatScratchSpace &, MFloatScratchSpace &)
 
void computeVolumeForces ()
 
void computeRotForces ()
 
virtual MInt getAdjacentLeafCells_d0 (const MInt, const MInt, MIntScratchSpace &, MIntScratchSpace &)
 
virtual MInt getAdjacentLeafCells_d1 (const MInt, const MInt, MIntScratchSpace &, MIntScratchSpace &)
 
virtual MInt getAdjacentLeafCells_d2 (const MInt, const MInt, MIntScratchSpace &, MIntScratchSpace &)
 
virtual MInt getAdjacentLeafCells_d0_c (const MInt, const MInt, MIntScratchSpace &, MIntScratchSpace &)
 
virtual MInt getAdjacentLeafCells_d1_c (const MInt, const MInt, MIntScratchSpace &, MIntScratchSpace &)
 
virtual MInt getAdjacentLeafCells_d2_c (const MInt, const MInt, MIntScratchSpace &, MIntScratchSpace &)
 
MFloat computeRecConstSVD (const MInt cellId, const MInt offset, MFloatScratchSpace &tmpA, MFloatScratchSpace &tmpC, MFloatScratchSpace &weights, const MInt recDim, const MInt, const MInt, const std::array< MBool, nDim > dirs={}, const MBool relocateCenter=false)
 compute the reconstruction constants of the given cell by a weighted least-squares approach via singular value decomposition More...
 
void extendStencil (const MInt)
 extend the reconstruction sencil towards all diagonal cells on the first layer More...
 
MInt samplingInterval ()
 
void checkGhostCellIntegrity ()
 Checks whether cells' isGhost and the boundary Id coincede. Cells' isGhost is is used to tell the grid about ghost cells. In the solver sometimes boundaryId == -2 is used to check for ghost cells. More...
 
virtual void initializeRungeKutta ()
 Reads the Runge-Kutta properties and initializes the variables required for Runge Kutta time stepping. More...
 
virtual void initializeMaxLevelExchange ()
 parallel: Store all necessary data in send buffer More...
 
virtual void computePrimitiveVariablesCoarseGrid ()
 Computes the primitive variables: velocity, density, and pressure from the conservative variables and stores the primitive variables in a_pvariable( i , v ) More...
 
void initAzimuthalMaxLevelExchange ()
 
void finalizeMpiExchange ()
 Finalize non-blocking MPI communication (cancel open requests, free all requests) More...
 
void setUpwindCoefficient ()
 
void cellSurfaceMapping ()
 
void interpolateSurfaceDiffusionFluxOnCellCenter (MFloat *const, MFloat *const)
 
void interpolateSurfaceDiffusionFluxOnCellCenter (MFloat *const NotUsed(JA), MFloat *const dtdn)
 
void setNghbrInterface ()
 
void calcLESAverage ()
 
void saveLESAverage ()
 
void loadLESAverage ()
 
void finalizeLESAverage ()
 
MFloat getAveragingFactor ()
 
void saveSpongeData ()
 
void loadSpongeData ()
 
void initSTGSpongeExchange ()
 
void setAndAllocateZonalProperties ()
 
void readPreliminarySTGSpongeData ()
 
void calcPeriodicSpongeAverage ()
 
void exchangeZonalAverageCells ()
 
virtual void initSTGSponge ()
 Initializes zonal exchange arrays. More...
 
virtual void resetZonalLESAverage ()
 Initializes zonal exchange arrays. More...
 
virtual void determineLESAverageCells ()
 
virtual void resetZonalSolverData ()
 
virtual void getBoundaryDistance (MFloatScratchSpace &)
 Get distance to boundary, currently bc 3003. Should be replaced by more precise distance using STL information. More...
 
virtual void nonReflectingBCAfterTreatmentCutOff ()
 
virtual void nonReflectingBCCutOff ()
 
virtual void dqdtau ()
 
virtual bool rungeKuttaStep ()
 Dispatches the RungeKutta method for different number of species. More...
 
virtual void applyExternalSource ()
 Add external sources to the RHS. More...
 
virtual void applyExternalOldSource ()
 
virtual void advanceExternalSource ()
 
void exchangeExternalSources ()
 Exchange external sources. More...
 
void resetExternalSources ()
 Reset external sources. More...
 
MInt setUpBndryInterpolationStencil (const MInt, MInt *, const MFloat *)
 
void deleteSrfcs ()
 Deletes all surfaces existing. More...
 
virtual void resetRHSNonInternalCells ()
 
virtual void correctMasterCells ()
 adds the right hand side of small cells to their corresponding master cells and sets the small cell RHS to zero More...
 
void writeCellData (MInt)
 
virtual void convertPrimitiveRestartVariables ()
 converts the primitive restart variables to a new Mach Number More...
 
void initializeFvCartesianSolver (const MBool *propertiesGroups)
 FV Constructor: reads and allocate properties/variables: More...
 
void copyGridProperties ()
 
void allocateCommunicationMemory ()
 Allocates and initializes send/receive buffers for multiSolver computations. More...
 
void setTestcaseProperties ()
 Reads and initializes properties associated with the physics of the simulation and allocates small arrays of these properties. More...
 
void setSamplingProperties ()
 Reads properties associated with variable sampling. More...
 
void setInputOutputProperties ()
 Reads properties and initializes variables associated with input/output. More...
 
void setNumericalProperties ()
 Reads and initializes properties associated with the numerical method. More...
 
void setAndAllocateCombustionTFProperties ()
 Reads and initializes properties associated with combustion simulations. More...
 
void setAndAllocateSpongeLayerProperties ()
 Reads and initializes properties associated with sponge boundary conditions. More...
 
void allocateAndInitSolverMemory ()
 Allocates the resources of the FV solver. Mostly arrays of size maxNoCells used in the main part of the FV code plus - if required - moving grid arrays. IMPORTANT: This method should be called at the end of the FvCartesianSolver-Constructor, since other properties might be used in here, or datastructures previosly allocated might be referenced! More...
 
void setRungeKuttaProperties ()
 This function reads the properties required for Runge Kutta time stepping. More...
 
void setAndAllocateAdaptationProperties ()
 This function reads the properties required for adaptive mesh refinement. More...
 
virtual void exchange ()
 
void exchangeDataFV (T *data, const MInt blockSize=1, MBool cartesian=true, const std::vector< MInt > &rotIndex=std::vector< MInt >())
 
void exchangeFloatDataAzimuthal (MFloat *data, MInt noVars, const std::vector< MInt > &rotIndices)
 
void exchangeDataAzimuthal (T *data, const MInt dataBlockSize=1)
 
void exchangeAzimuthalRemappedHaloCells ()
 
virtual void exchangePeriodic ()
 
void exchangePipe ()
 
void startMpiExchange ()
 Begin non-blocking communication by posting new send requests. More...
 
void prepareMpiExchange ()
 
void finishMpiExchange ()
 Finish non-blocking communication by waiting for receive requests. More...
 
void cancelMpiRequests () override
 Cancel open MPI (receive) requests. More...
 
void gather ()
 Gather data of all window cells for all neighbors in the send buffers. More...
 
void receive (const MBool exchangeAll=false)
 Receive halo cell data from corresponding neighbors. More...
 
void send (const MBool exchangeAll=false)
 Send window cell data to corresponding neighbors. More...
 
void scatter ()
 Scatter received data of all neighbors to the corresponding halo cells. More...
 
void exchangeAll ()
 
virtual void computeReconstructionConstants ()
 
virtual void findNghbrIds ()
 
void getPrimitiveVariables (MInt, MFloat *, MFloat *, MInt)
 
void rhs ()
 
void rhsBnd ()
 
void initSolver () override
 Initializes the fv-solver. More...
 
void finalizeInitSolver () override
 Initializes the solver afer the initialRefinement! More...
 
void preSolutionStep (MInt) override
 
MBool solutionStep () override
 Performs one Runge-Kutta step of the FV solver, returns true if the time step is completed. More...
 
MBool postSolutionStep () override
 
MBool solverStep ()
 
void postTimeStep () override
 : Performs the post time step More...
 
void scalarLimiter ()
 
void cleanUp () override
 
void lhsBndFinish ()
 Finish the split MPI communication and perform the left out part from lhsBnd(). More...
 
void lhsBnd ()
 Apply lhsBnd. More...
 
virtual void smallCellCorrection (const MInt timerId=-1)
 Flux-redistribution method Apply a stable correction to small-cells and redistribute the defective flux to neighboring cells to re-establish conservation For details see Schneiders,Hartmann,Meinke,Schröder, J.Comput.Phys. 235 (2013) For more details see the dissertation of Lennart Schneiders, "Particle-Resolved Analysis of Turbulent Multiphase Flow by a Cut-Cell Method" Chapter 3.4. More...
 
virtual void smallCellRHSCorrection (const MInt timerId=-1)
 
virtual void updateSplitParentVariables ()
 
virtual void checkDiv ()
 
virtual void updateMaterialNo ()
 
void initSourceCells ()
 
void revertTimestep ()
 
void rhsEEGas ()
 
virtual void resetImplicitCoefficients ()
 
MFloat physicalTime ()
 
MFloat computeDomainLength (MInt direction)
 
const Geomgeometry () const
 the references to CartesianGrid data members end here More...
 
MPI_Comm globalMpiComm () const
 Return the global MPI communicator used by the grid. More...
 
void createGridSlice (const MString &direction, const MFloat intercept, const MString &fileName, MInt *const sliceCellIds)
 
MInt noVariables () const override
 Return the number of primitive variables. More...
 
void releaseMemory ()
 
constexpr MBool isMultilevel () const
 Return true if solver is part of a multilevel computation. More...
 
constexpr MBool isMultilevelPrimary () const
 Return true if solver is primary solver in multilevel computation. More...
 
constexpr MBool isMultilevelLowestSecondary () const
 
void setMultilevelPrimary (const MBool state=true)
 Designates solver as primary solver in multilevel computation. More...
 
void setMultilevelSecondary (const MBool state=true)
 
constexpr MBool isZonal () const
 
void loadSampleVariables (MInt timeStep)
 load variables for the specified timeStep More...
 
void getSampleVariables (MInt cellId, const MFloat *&vars)
 read only access to primitive variables of a single cell More...
 
void getSampleVariables (MInt const cellId, std::vector< MFloat > &vars)
 
void getSampleVariableNames (std::vector< MString > &varNames) override
 Return the sample variable names (primitive variables) More...
 
virtual void getSampleVarsDerivatives (const MInt cellId, const MFloat *&vars)
 Access derivatives of primitive variables of a given cell. More...
 
MBool getSampleVarsDerivatives (const MInt cellId, std::vector< MFloat > &vars)
 
void calculateHeatRelease ()
 calculates heatRelease, currently used for postprocessing (average_in) More...
 
void getHeatRelease (MFloat *&heatRelease)
 returns More...
 
virtual void getVorticity (MFloat *const vorticity)
 wrapper for vorticity computation More...
 
virtual void getVorticityT (MFloat *const vorticity)
 wrapper for vorticity computation (transposed version) More...
 
void oldPressure (MFloat *const p)
 This function computes the pressure from the oldVariables. More...
 
virtual MFloatvorticityAtCell (const MInt cellId, const MInt dir)
 
virtual MFloat getBoundaryHeatFlux (const MInt cellId) const
 calculates heat flux of boundary cells More...
 
MFloat time () const override
 returns the time More...
 
virtual void getDimensionalizationParams (std::vector< std::pair< MFloat, MString > > &dimParams) const
 get dimensionalization parameters More...
 
MInt getCellIdByIndex (const MInt index)
 Required for sampling, for FV the index is already the cell id. More...
 
MInt getIdAtPoint (const MFloat *point, MBool NotUsed(globalUnique=false))
 Return the leaf cell id containing the given point. More...
 
virtual void getSolverSamplingProperties (std::vector< MInt > &samplingVars, std::vector< MInt > &noSamplingVars, std::vector< std::vector< MString > > &samplingVarNames, const MString featureName="") override
 Read sampling related properties. More...
 
virtual void initSolverSamplingVariables (const std::vector< MInt > &varIds, const std::vector< MInt > &noSamplingVars) override
 Initialize sampling variables/allocate memory. More...
 
virtual void calcSamplingVariables (const std::vector< MInt > &varIds, const MBool exchange) override
 Calculate sampling variables. More...
 
virtual void initInterpolationForCell (const MInt cellId)
 Init the interpolation for points inside a given cell (based on interpolateVariables()) More...
 
virtual void calcSamplingVarAtPoint (const MFloat *point, const MInt id, const MInt sampleVarId, MFloat *state, const MBool interpolate=false) override
 Calculate the sampling variables at a given point in a cell. More...
 
MInt getCurrentTimeStep () const override
 Return the current time step. More...
 
MBool hasRestartTimeStep () const override
 
MInt determineRestartTimeStep () const override
 Determine the restart time step from the restart file (for useNonSpecifiedRestartFile = true) More...
 
virtual void finalizeInitEnthalpySolver ()
 
virtual void initMatDat ()
 
virtual void writeVtkXmlFiles (const MString, const MString, MBool, MBool)
 
MBool calcSlopesAfterStep ()
 Return if slopes should be calculated at after each step (not before) More...
 
void applyCoarseLevelCorrection ()
 Apply coarse-level correction to RHS. More...
 
void setAndAllocateCombustionGequPvProperties ()
 reads in the combustion properties More...
 
void setAndAllocateSpongeBoundaryProperties ()
 reads in the sponge properties for specific boundaries More...
 
MFloat setAndAllocateSpongeDomainProperties (MFloat)
 reads in the sponge properties for the domain boundaries More...
 
void setCombustionGequPvVariables ()
 reads in the combustion properties More...
 
MInt noSolverTimers (const MBool allTimings) override
 
void getSolverTimings (std::vector< std::pair< MString, MFloat > > &solverTimings, const MBool allTimings) override
 Get solver timings. More...
 
void limitWeights (MFloat *) override
 Limit Weight types to avoid large memory disbalance between ranks for DLB. 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
 Return solver data for DLB. More...
 
void setCellDataDlb (const MInt dataId, const MFloat *const data) override
 Set solver data for DLB. More...
 
void getGlobalSolverVars (std::vector< MFloat > &globalFloatVars, std::vector< MInt > &globalIdVars) override
 Get/set global solver variables during DLB. More...
 
void setGlobalSolverVars (std::vector< MFloat > &globalFloatVars, std::vector< MInt > &globalIdVars) override
 Set global solver variables (see getGlobalSolverVars()) More...
 
MBool hasSplitBalancing () const override
 Return if load balancing for solver is split into multiple methods or implemented in balance() More...
 
virtual MBool adaptationTrigger ()
 
MBool forceAdaptation () override
 
void bubblePathDispersion ()
 
void computePrimitiveVariablesCoarseGrid (MInt)
 Computes the primitive variables: velocity, density, and pressure from the conservative variables and stores the primitive variables in a_pvariable( i , v ) More...
 
void forceTimeStep (const MFloat dt)
 Force time step externally. More...
 
MInt a_timeStepComputationInterval ()
 
void preTimeStep () override
 
void computeVolumeForcesRANS ()
 
void exchangeGapInfo ()
 exchanges the Gap-Information with the solver-own communicators! More...
 
void resetCutOffCells ()
 resets all Cut-Off Information should only be called before the adaptation and balance! More...
 
void resetSponge ()
 reset sponge properties More...
 
void exchangeProperties ()
 exchanges isInactive and isOnCurrentMGLevel More...
 
void computeUTau (MFloat *data, MInt cellId)
 
void computeDomainAndSpongeDimensions ()
 Extracts the minimum and maximum coordinates of all cells in the grid. More...
 
virtual void updateSpongeLayer ()
 computes the additional rhs of all cells lying inside the sponge layer to dissipate outgoing waves. More...
 
std::array< MFloat, 6 > computeTargetValues ()
 
std::array< MFloat, nDim_+2 > computeSpongeDeltas (MInt cellId, std::array< MFloat, 6 >)
 
void updateSpongeLayerRhs (MInt, std::array< MFloat, nDim_+2 >)
 
void checkCells ()
 
void checkForSrfcsMGC ()
 Check all existing cells if surfaces have to be created member function with the task to check all existing cells for the creation of surfaces. If a surface has to be created, another member function is called. More...
 
void checkForSrfcsMGC_2 ()
 
void checkForSrfcsMGC_2_ ()
 Check all existing cells if surfaces have to be created member function with the task to check all existing cells for the creation of surfaces. If a surface has to be created, another member function is called. More...
 
void computeSrfcs (MInt, MInt, MInt, MInt)
 
virtual void correctBoundarySurfaces ()
 
virtual void correctBoundarySurfaces_ ()
 
void checkCellSurfaces ()
 checks if the surfaces for a cell are correct and balanced The accumulated cell surfaces in +x direction must be balanced by the accumulated cell surfaces in -x direction and so on. If the surfaces are not balanced, the cell is loggd to the debug output method is not yet extended to moving boundary computations More...
 
void computeCellSurfaceDistanceVectors ()
 
void computeReconstructionConstantsSVD ()
 Compute the reconstruction constants using a weighted least squares approached solved via singular value decomposition. More...
 
void setConservativeVarsOnAzimuthalRecCells ()
 
void initAzimuthalReconstruction ()
 
virtual void computeAzimuthalReconstructionConstants (MInt mode=0)
 
void rebuildAzimuthalReconstructionConstants (MInt cellId, MInt offset, MFloat *recCoord, MInt mode=0)
 
void interpolateAzimuthalData (MFloat *data, MInt offset, MInt noVars, const MFloat *vars)
 
void fillExcBufferAzimuthal (MInt cellId, MInt offset, MFloat *dataDest, MFloat *dataSrc, MInt noData, const std::vector< MInt > &rotIndex=std::vector< MInt >())
 
void rotateVectorAzimuthal (MInt side, MFloat *data, MInt noData, const std::vector< MInt > &indices)
 
void interpolateAzimuthalDataReverse (MFloat *data, MInt offset, MInt noVars, const MFloat *vars)
 
void checkAzimuthalRecNghbrConsistency (MInt cellId)
 
void buildLeastSquaresStencilSimple ()
 Determine the least squares stencil. More...
 
void initViscousFluxComputation ()
 
void computeRecConstPeriodic ()
 
void computeRecConstPeriodic_ ()
 
void identPeriodicCells ()
 
void identPeriodicCells_ ()
 
 ATTRIBUTES2 (ATTRIBUTE_ALWAYS_INLINE, ATTRIBUTE_HOT) inline void LSReconstructCellCenter_(const MUint noSpecies)
 
 ATTRIBUTES2 (ATTRIBUTE_HOT, ATTRIBUTE_FLATTEN) virtual void computeSurfaceValues(MInt timerId
 
 ATTRIBUTES2 (ATTRIBUTE_ALWAYS_INLINE, ATTRIBUTE_HOT) inline void computeSurfaceValues_(const MUint)
 
 ATTRIBUTES2 (ATTRIBUTE_HOT, ATTRIBUTE_FLATTEN) virtual void computeSurfaceValuesLimited(MInt timerId
 
 ATTRIBUTES2 (ATTRIBUTE_HOT, ATTRIBUTE_ALWAYS_INLINE) inline void computePrimitiveVariables_()
 
 ATTRIBUTES2 (ATTRIBUTE_HOT, ATTRIBUTE_ALWAYS_INLINE) inline MBool uDLimiter(const MFloat *const
 
 ATTRIBUTES2 (ATTRIBUTE_HOT, ATTRIBUTE_ALWAYS_INLINE) inline void computeConservativeVariables_()
 
 ATTRIBUTES2 (ATTRIBUTE_HOT, ATTRIBUTE_ALWAYS_INLINE) inline MBool rungeKuttaStep_(const MUint)
 
 ATTRIBUTES2 (ATTRIBUTE_HOT, ATTRIBUTE_ALWAYS_INLINE) inline MBool rungeKuttaStepEEGas()
 
void LSReconstructCellCenterCons (const MUint noSpecies)
 
virtual void computeSurfaceValuesLOCD (MInt timerId=-1)
 
virtual void computeLimitedSurfaceValues (MInt timerId=-1)
 
virtual void computeSurfaceValuesLimitedSlopes (MInt timerId=-1)
 
virtual void computeSurfaceValuesLimitedSlopesMan (MInt timerId=-1)
 aaplies the slope limiter to the slopes before calling computeSurfaceValues_ More...
 
virtual void initComputeSurfaceValuesLimitedSlopesMan1 ()
 initializes the limiter at cells, that are in the vicinity of a given stl-geometry More...
 
virtual void initComputeSurfaceValuesLimitedSlopesMan2 ()
 can be used to apply the slope limiter at certain positions such as refinement interfaces, cut off boundaries(sponge) etc. ... More...
 
void computeGridCellCoordinates (MFloat *)
 computes the coordinates of the grid cell centers and stores them into a one-dimensional array More...
 
void findNghbrIdsMGC ()
 
void findDirectNghbrs (MInt cellId, std::vector< MInt > &nghbrList)
 Obtain list of direct neighbors of given cell. More...
 
void findNeighborHood (MInt cellId, MInt layer, std::vector< MInt > &nghbrList)
 Obtain list of neighbors for the given extend. More...
 
void refineCell (const MInt) override
 
void removeChilds (const MInt) override
 
void removeCell (const MInt) override
 Remove the given cell. More...
 
void swapCells (const MInt, const MInt) override
 
void resizeGridMap () override
 Swap the given cells. More...
 
void swapProxy (const MInt, const MInt) override
 
MBool cellOutside (const MInt)
 
MInt cellOutside (const MFloat *, const MInt, const MInt) override
 
virtual void resetSurfaces ()
 
virtual void resetBoundaryCells (const MInt offset=0)
 
void reInitActiveCellIdsMemory ()
 Allocate memory to arrays according to the current number of cells. More...
 
void reInitSmallCellIdsMemory ()
 Reallocate memory to small and master cell id arrays according to the current number of cells. More...
 
void prepareAdaptation () override
 
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 the adaptation (i.e. which cell should be refined/removed?) More...
 
void postAdaptation () override
 
void finalizeAdaptation () override
 
void sensorInterface (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen) override
 
void sensorInterfaceDelta (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen)
 
void sensorInterfaceLsMb (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen)
 
void sensorInterfaceLs (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen)
 
void sensorCutOff (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen)
 
void sensorPatch (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen) override
 
void bandRefinementSensorDerivative (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, MInt sensorOffset, MInt sen, const std::vector< MFloat > &tau, const MFloat sensorThreshold)
 
virtual void updateMultiSolverInformation (MBool fullReset=false)
 
void resetSolver () override
 Reset the solver prior to load balancing. More...
 
virtual void resetSolverFull ()
 
void setCellWeights (MFloat *) override
 
void balance (const MInt *const noCellsToReceiveByDomain, const MInt *const noCellsToSendByDomain, const MInt *const targetDomainsByCell, const MInt oldNoCells) override
 Balance the solver. More...
 
void balancePre () override
 Reinitialize solver for DLB prior to setting solution data. More...
 
void balancePost () override
 Reinitialize solver after setting solution data in DLB. More...
 
void finalizeBalance () override
 Reinitialize solver after all data structures have been recreated. More...
 
MInt noLoadTypes () const override
 
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 saveSolverSolution (const MBool forceOutput=false, const MBool finalTimeStep=false) override
 Manages solver-specific output. More...
 
void writeRestartFile (const MBool, const MBool, const MString, MInt *) override
 
void writeRestartFile (MBool) override
 
MBool prepareRestart (MBool, MBool &) override
 Prepare the solvers for a grid-restart. More...
 
void saveSampleFiles ()
 
virtual void saveRestartFile (const MBool)
 
void saveDebugRestartFile ()
 Saves the solver restart file and the grid restartFile NOTE: for debugging purposes only! for regular output use the saveRestartFile above! More...
 
void loadRestartFile () override
 
More...
 
void computeConservativeVariablesCoarseGrid ()
 Computes the primitive variables: velocity, density, and pressure from the conservative variables and stores the primitive variables in a_pvariable( i , v ) More...
 
void writeCenterLineVel ()
 
void computeForceCoefficients (MFloat *)
 
void checkInfinityVarsConsistency ()
 Check that all infinity (or other global) variables are equal on all ranks. More...
 
void computeInitialPressureLossForChannelFlow ()
 Computes pressure loss for the initial condition of channel flow testcases as \( \Delta_p = \frac{(\mathit{M} \mathit{Re}_{\tau} \sqrt{T_{\infty}})^{2}}{\mathit{Re}} \frac{\rho_{\infty}}{ L_{\infty} } \). Requires property ReTau to be set in the property file. More...
 
void Ausm_ (F &fluxFct)
 
void viscousFlux_ (F &viscousFluxFct)
 Computes the viscous flux using a central difference scheme to approximate the slopes at the surface centroids (5-point stencil). More...
 
void viscousFluxCompact_ (F &viscousFluxFct)
 Computes the viscous fluxes using a compact stencil with increased stability for flows with dominating viscous effects. Uses a 3-point centered-differences stencil for the normal derivative and distance-weighted averaging of the cell slopes for the tangential derivatives (i.e., a variant of the method described by Berger et al. in AIAA 2012-1301) More...
 
void viscousFluxMultiSpecies_ ()
 
void computeConservativeVariablesMultiSpecies_ (const MUint)
 
void computePrimitiveVariablesMultiSpecies_ (const MUint)
 
virtual void distributeFluxToCells ()
 Distributes the surface fluxes to the cell RHS. More...
 
void implicitTimeStep () override
 
void computeCellVolumes ()
 
void computeSamplingTimeStep ()
 
void computeSamplingTimeStep_ ()
 computes the time step according to the sample variables More...
 
void computeCoarseGridCorrection (MInt)
 
void linearInterpolation (MInt, MInt, MInt *)
 
void bilinearInterpolation (MInt, MInt, MInt *)
 
void bilinearInterpolationAtBnd (MInt, MInt, MInt *)
 
void initCutOffBoundaryCondition ()
 
virtual void setConservativeVariables (MInt cellId)
 computes conservative from primitive variables for given cell id More...
 
void setPrimitiveVariables (MInt cellId)
 computes primitive from primitive variables for given cell id. This is the version for all SysEqn. More...
 
void initDepthCorrection ()
 
void divCheck (MInt)
 
MInt getAdjacentLeafCells (const MInt, const MInt, MIntScratchSpace &, MIntScratchSpace &)
 retrieves the first 'noLayers' layers of direct and(or diagonal neighbors to the given cell More...
 
MInt getNghbrLeafCells (const MInt cellId, MInt refCell, MInt layer, MInt *nghbrs, MInt dir, MInt dir1=-1, MInt dir2=-1) const
 returns the neighbor leaf cells in the specified direction 'dir' (dir1 and dir2 are used to identify only neighboring children beeing adjacent to the root cell) More...
 
void reduceVariables ()
 Check whether any of the extracted cells lie below the halo cell level and interpolate their variables in that case. More...
 
void computeSlopesByCentralDifferences ()
 
void generateBndryCells ()
 
void createBoundaryCells ()
 identifies bndry cells (Sets a_isInterface for the solver!) More...
 
void getInterpolatedVariables (const MInt cellId, const MFloat *position, MFloat *vars) override
 calculates interpolated variables for a given position in a given cell More...
 
void getInterpolatedVariables (const MInt cellId, const MFloat *position, MFloat *vars)
 
void getInterpolatedVariablesInCell (const MInt cellId, const MFloat *position, MFloat *vars)
 calculates interpolated variables for a given position in a given cell More...
 
void interpolateVariables (const MInt cellId, const MFloat *position, MFloat *result)
 calculates interpolated variables (in the range a, b) for a given position in a given cell More...
 
void interpolateVariablesInCell (const MInt cellId, const MFloat *position, std::function< MFloat(MInt, MInt)> variables, MFloat *result)
 Interpolate the given variable field inside a cell at a given position (based on interpolateVariables() but uses the stored interpolation information for a cell). More...
 
MFloat crankAngle (const MFloat, const MInt)
 help-function for engine calculations which returns the crank-angle for a given time mode = 0: return CAD in range of (0-720) mode = 1: return accumulated crankAnge in radian More...
 
MFloat cv_p (MInt cellId) const noexcept
 Returns the pressure computed from the conservative variables of the cell cellId. More...
 
MFloat cv_T (MInt cellId) const noexcept
 Returns the temperature computed from the conservative variables of the cell cellId. More...
 
MFloat cv_a (MInt cellId) const noexcept
 Returns the speed-of-sound computed from the conservative variables of the cell cellId. More...
 
void setTimeStep ()
 
void initSandpaperTrip ()
 
void applySandpaperTrip ()
 
void saveSandpaperTripVars ()
 
void tripForceCoefficients (MFloat *, MFloat *, MFloat *, MInt, MInt)
 
void tripFourierCoefficients (MFloat *, MInt, MFloat, MFloat)
 
void dumpCellData (const MString name)
 Dump cell data of each rank to a separate file for debugging purposes. More...
 
- Public Member Functions inherited from maia::CartesianSolver< nDim, SolverType >
 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 MLonglocalPartitionCellGlobalIds (const MInt cellId) const
 
MLong localPartitionCellOffsets (const MInt index) const
 
MInt noMinCells () const
 
MInt minCell (const MInt id) const
 
const MInthaloCell (const MInt domainId, const MInt cellId) const
 
const MIntwindowCell (const MInt domainId, const MInt cellId) const
 
MBool isActive () const override
 
constexpr GridProxygrid () const
 
GridProxygrid ()
 
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)
 
template<typename T >
void exchangeData (T *data, const MInt dataBlockSize=1)
 Exchange memory in 'data' assuming a solver size of 'dataBlockSize' per cell. More...
 
template<typename T >
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...
 
template<class G , class S , class M >
void exchangeSparseLeafValues (G getData, S setData, const MInt dataSize, M cellMapping)
 Exchange of sparse data structures on max Level. More...
 
template<typename T >
void exchangeAzimuthalPer (T *data, MInt dataBlockSize=1, MInt firstBlock=0)
 Exchange of sparse data structures on max Level. More...
 
template<typename T >
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...
 
template<typename T >
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...
 
template<typename T >
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 MFloata_slope (const MInt, MInt const, const MInt)
 
virtual MBool a_isBndryCell (const MInt) const
 
virtual MFloata_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

MFloat m_advectionVelocity [nDim]
 
- Public Attributes inherited from FvCartesianSolverXD< 2, FvSysEqnNS< 2 > >
Geometry< nDim > * m_geometry
 
MFloat m_eps
 
MInt m_noSpecies
 
FvSysEqnNS< 2 > m_sysEqn
 
FvBndryCndXD< nDim_, FvSysEqnNS< 2 > > * m_fvBndryCnd
 
std::shared_ptr< Cantera::Solution > m_canteraSolution
 
std::shared_ptr< Cantera::ThermoPhase > m_canteraThermo
 
std::shared_ptr< Cantera::Kinetics > m_canteraKinetics
 
std::shared_ptr< Cantera::Transport > m_canteraTransport
 
std::unique_ptr< OneDFlamem_oneDimFlame
 
std::vector< MStringm_speciesName
 
std::map< std::string, MIntspeciesMap
 
MFloatm_molarMass
 
MFloatm_fMolarMass
 
MFloatm_standardHeatFormation
 
MFloatm_YInfinity
 
MBool m_detChemExtendedOutput
 
MBool m_isInitSamplingVars
 Indicator if sampling variables are initialized. More...
 
std::array< MFloat **, s_maxNoSamplingVariablesm_samplingVariables
 Storage for solver specific sampling variables. More...
 
std::array< MInt, 2 *s_maxNoSamplingVariablesm_samplingVariablesStatus
 Status of sampling variables to check if variable is already computed and exchanged. More...
 
MBool m_localTS
 
List< MInt > * m_sortedPeriodicCells
 
MInt m_totalnosplitchilds
 
MInt m_totalnoghostcells
 
MBool m_constructGField
 
MBool m_deleteNeighbour
 
MBool m_bndryLevelJumps
 
MInt m_lsCutCellBaseLevel
 
MInt m_noOuterBndryCells
 
MBool m_refineDiagonals
 
MFloatm_sweptVolume
 
MFloatm_sweptVolumeBal
 
MBool m_engineSetup
 
Collector< PointBasedCell< nDim > > * m_extractedCells
 
Collector< CartesianGridPoint< nDim > > * m_gridPoints
 
MFloat RKSemiImplicitFactor
 
MFloat ** uOtherPhase
 
MFloat ** uOtherPhaseOld
 
MFloat ** gradUOtherPhase
 
MFloat ** vortOtherPhase
 
MFloatnuTOtherPhase
 
MFloatnuEffOtherPhase
 
MFloat Eo0
 
MFloat bubbleDiameter
 
MFloat CD
 
MFloat CL
 
MInt dragModel
 
MFloat liquidDensity
 
MFloat eps
 
MInt gasSource
 
MFloat gasSourceMassFlow
 
std::vector< MIntgasSourceCells
 
MInt noGasSourceBoxes
 
std::vector< MFloatgasSourceBox
 
MBool bubblePathDispersion
 
MFloat massSource
 
MFloat initialAlpha
 
MFloat alphaInf
 
MFloat alphaIn
 
MFloat schmidtNumber
 
MBool uDLimiter
 
MFloat uDLim
 
MBool depthCorrection
 
std::vector< MFloatgravity
 
std::vector< MFloatgravityRefCoords
 
std::vector< MFloatdepthCorrectionCoefficients
 
MFloat interpolationFactor
 
MFloat infTemperature
 
MFloat infPressure
 
MFloat infPhi
 
MStringinfSpeciesName
 
MFloatinfSpeciesMassFraction
 
MFloat infVelocity
 
MFloat laminarFlameSpeedFactor
 
MBool hasChemicalReaction
 
MString reactionMechanism
 
MString phaseName
 
MString transportModel
 
MBool soretEffect
 
SysEqn::PrimitiveVariables * PV
 
SysEqn::ConservativeVariables * CV
 
SysEqn::FluxVariables * FV
 
SysEqn::AdditionalVariables * AV
 
SysEqn::SurfaceCoefficients * SC
 
MInt ** m_setToBodiesTable
 
MFloatm_bodyCenter
 
MFloatm_bodyVelocity
 
MFloatm_bodyVelocityDt1
 
MFloatm_bodyVelocityDt2
 
MFloatm_bodyAcceleration
 
MFloatm_bodyAngularVelocity
 
MFloatm_bodyAngularAcceleration
 
MFloatm_bodyTemperature
 
MFloatm_bodyTemperatureDt1
 
MFloatm_bodyHeatFlux
 
MInt m_volumeForcingDir
 
MFloat m_pipeRadius
 
MInt m_noEmbeddedBodies
 
MInt m_noPeriodicGhostBodies
 
MIntm_internalBodyId
 
MInt m_levelSetAdaptationScheme
 
MBool m_closeGaps
 
MInt m_gapInitMethod
 
MInt m_noGapRegions
 
std::vector< MIntm_gapCellId
 
std::vector< FvGapCell > m_gapCells
 
MInt m_periodicCells
 
MFloat ** m_periodicDataToSend
 
MFloat ** m_periodicDataToReceive
 
MIntm_noPerCellsToSend
 
MIntm_noPerCellsToReceive
 
MIntm_noPeriodicCellsDom
 
MFloat ** m_periodicCellDataDom
 
MInt m_noPeriodicData
 
MInt m_noPeriodicCellData
 
MFloat m_oldPressure_Gradient
 
MFloat m_oldUbulk
 
MFloat m_target_Ubulk
 
MInt m_oldTimeStep
 
MFloat UbulkDiff
 
MFloat m_referenceTemperature
 
MFloat m_sutherlandConstant
 
MFloat m_sutherlandConstantThermal
 
MFloat m_sutherlandPlusOne
 
MFloat m_sutherlandPlusOneThermal
 
MBool m_sensorBandRefinement
 
MInt m_sensorBandRefinementAdditionalLayers
 
MFloatconst
 
void(FvCartesianSolverXD::* m_reconstructSurfaceData )(MInt)
 
void(FvCartesianSolverXD::* m_computeViscousFlux )()
 
void(FvCartesianSolverXD::* m_computeViscousFluxMultiSpecies )(MInt)
 
MFloat m_meanCoord [3]
 
MInt m_adaptationLevel
 
MBool m_wasAdapted
 
MBool m_wasBalancedZonal
 
MBool m_firstUseUpdateSpongeLayerCase51
 
MPI_Comm comm_sponge
 
MInt m_noSpongeZonesIn
 
MInt m_noSpongeZonesOut
 
MInt m_spongeDirectionsIn [s_maxNoSpongeZones]
 
MInt m_spongeDirectionsOut [s_maxNoSpongeZones]
 
MInt m_secondSpongeDirectionsIn [s_maxNoSpongeZones]
 
MInt m_secondSpongeDirectionsOut [s_maxNoSpongeZones]
 
MInt m_spongeAveragingIn [s_maxNoSpongeZones]
 
MInt m_spongeAveragingOut [s_maxNoSpongeZones]
 
MBool m_hasCellsInSpongeLayer
 
MFloat m_timeOfMaxPdiff
 
MFloatm_coordSpongeIn
 
MFloatm_secondCoordSpongeIn
 
MFloatm_coordSpongeOut
 
MFloatm_secondCoordSpongeOut
 
MFloatm_uNormal_r
 
std::map< MInt, std::vector< MInt > > m_cellToNghbrHood
 
MFloat m_maxLsValue
 
MBool m_linerLvlJump
 
MInt m_tripNoTrips
 
MInt m_tripNoModes
 
MInt m_tripTotalNoCells
 
MInt m_tripSeed
 
MBool m_tripUseRestart
 
MFloat m_tripDomainWidth
 
MBool m_tripAirfoil
 
MFloat m_tripAirfoilChordLength
 
MFloat m_tripAirfoilAOA
 
MFloatm_tripAirfoilNosePos
 
MFloatm_tripAirfoilChordPos
 
MFloatm_tripAirfoilForceDir
 
MIntm_tripAirfoilOrientation
 
MIntm_tripAirfoilBndryId
 
MIntm_tripAirfoilSide
 
std::vector< MIntm_tripCellIds
 
std::vector< MFloatm_tripCoords
 
MIntm_tripTimeStep
 
MIntm_tripNoCells
 
MIntm_tripCellOffset
 
MFloatm_tripDelta1
 
MFloatm_tripXOrigin
 
MFloatm_tripXLength
 
MFloatm_tripYOrigin
 
MFloatm_tripYHeight
 
MFloatm_tripCutoffZ
 
MFloatm_tripMaxAmpSteady
 
MFloatm_tripMaxAmpFluc
 
MFloatm_tripDeltaTime
 
MFloatm_tripG
 
MFloatm_tripH1
 
MFloatm_tripH2
 
MFloatm_tripModesG
 
MFloatm_tripModesH1
 
MFloatm_tripModesH2
 
MBool m_useMpiStartall
 
MBool m_onlyMaxLvlMpiRequests
 
MInt m_noMaxLvlMpiSendNeighbors
 
MInt m_noMaxLvlMpiRecvNeighbors
 
std::vector< MIntm_maxLvlMpiSendNeighbor
 
std::vector< MIntm_maxLvlMpiRecvNeighbor
 
- Public Attributes inherited from Solver
std::set< MIntm_freeIndices
 
MBool m_singleAdaptation = false
 
MBool m_splitAdaptation = true
 
MBool m_saveSensorData = false
 

Static Private Attributes

static constexpr const MInt nDim = 2
 

Additional Inherited Members

- Public Types inherited from FvCartesianSolverXD< 2, FvSysEqnNS< 2 > >
using Cell = typename maia::grid::tree::Tree< nDim >::Cell
 
using FvSurfaceCollector = maia::fv::surface_collector::FvSurfaceCollector< nDim >
 
using SolverCell = FvCell
 
using CartesianSolver = typename maia::CartesianSolver< nDim, FvCartesianSolverXD >
 
using Grid = typename CartesianSolver::Grid
 
using GridProxy = typename CartesianSolver::GridProxy
 
using Geom = Geometry< nDim >
 
using PrimitiveVariables = typename SysEqn::PrimitiveVariables
 
- Public Types inherited from maia::CartesianSolver< nDim, SolverType >
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
 
- Static Public Attributes inherited from FvCartesianSolverXD< 2, FvSysEqnNS< 2 > >
static constexpr MInt nDim
 
static constexpr const MInt m_noDirs
 
static constexpr const MInt m_noEdges
 
static constexpr const MInt m_noCorners
 
static constexpr MFloat m_volumeThreshold
 
static constexpr MInt s_maxNoSamplingVariables
 
static constexpr MBool hasAV
 
static constexpr MBool hasSC
 
static constexpr MInt s_maxNoSpongeZones
 
static constexpr MInt s_maxNoEmbeddedBodies
 
- Protected Types inherited from FvCartesianSolverXD< 2, FvSysEqnNS< 2 > >
using Timers = maia::fv::Timers_
 
- Protected Types inherited from maia::CartesianSolver< nDim, SolverType >
using fun = void(CartesianSolver< nDim, SolverType >::*)(std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt)
 
- Protected Member Functions inherited from FvCartesianSolverXD< 2, FvSysEqnNS< 2 > >
Geomgeometry ()
 Access the solver's geometry (non-const version) More...
 
FvSurfaceCollectorm_surfaceCollector ()
 
void computeWallNormalPointCoords ()
 
void findWallNormalCellIds ()
 
MFloat interpolateWallNormalPointVars (MInt var, MFloat coords[], MInt localId, std::vector< MInt > neighborList)
 
std::vector< MIntfindWallNormalNeighbors (MInt pointId)
 
void getWallNormalPointVars ()
 
void initSpanAvgSrfcProbes ()
 
void writeSpanAvgSrfcProbes ()
 
MFloat computeWMViscositySpalding (MInt)
 
MFloat computeWMViscositySpalding3D (MInt)
 
void initWMSurfaceProbes ()
 
void writeWMSurfaceProbes ()
 
void writeWMTimersASCII ()
 
void initWMExchange ()
 
void exchangeWMVars ()
 
void gatherWMVars ()
 
void receiveWMVars ()
 
void sendWMVars ()
 
void scatterWMVars ()
 
void readWallModelProperties ()
 
void restartWMSurfaces ()
 
void initChannelForce ()
 
void applyChannelForce ()
 
virtual void viscousFlux_Gequ_Pv ()
 Computes the viscous flux using a central difference scheme. More...
 
virtual void viscousFlux_Gequ_Pv_Plenum ()
 Computes the viscous flux using a central difference scheme, modified version for flame plenum computations. More...
 
virtual void updateJet ()
 jet volume forcing jet volume forcing with vortex rings. Velocity profile and forcing ref: "Effects of Inflow Conditions and Forcing on Subsonic Jet Flows and Noise" Bogey and Bailly. More...
 
virtual void writeListOfActiveFlowCells ()
 
MFloat reduceData (const MInt cellId, MFloat *data, const MInt dataBlockSize=1, const MBool average=true)
 determines the value of 'data' in the given cell by recusively volumetric averaging among all its offsprings More...
 
void sensorEntropyGrad (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen) override
 
void sensorEntropyQuot (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen) override
 
void sensorVorticity (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen) override
 
void sensorDerivative (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen) override
 computes the sensor values for a derivative sensor More...
 
void sensorSpecies (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen) override
 
void sensorParticle (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen) override
 
virtual void setCellProperties ()
 
void initSpongeLayer ()
 
void determineStructuredCells ()
 
void tagCellsNeededForSurfaceFlux ()
 
void writeCutCellsToGridFile ()
 Writes cut cell information to an existing grid file in order to visualize it in ParaView. More...
 
virtual MBool gridPointIsInside (MInt, MInt)
 
void saveGridFlowVarsPar (const MChar *fileName, MInt noTotalCells, MLong noInternalCells, MFloatScratchSpace &variables, std::vector< MString > &dbVariablesName, MInt, MIntScratchSpace &idVariables, std::vector< MString > &idVariablesName, MInt, MFloatScratchSpace &dbParameters, std::vector< MString > &dbParametersName, MIntScratchSpace &idParameters, std::vector< MString > &idParametersName, const MInt *recalcIds)
 This function stores the massivley parallel flow information of the cells. More...
 
void computeVorticity3D (MFloat *const vorticity)
 
void computeVorticity2D (MFloat *const vorticity)
 
void computeVorticity3DT (MFloat *const vorticity)
 Compute vorticity and store in vorticity pointer (transposed version) More...
 
void computeQCriterion (MFloatScratchSpace &qCriterion)
 
void loadRestartTime (const MChar *fileName, MInt &globalTimeStepInput, MFloat &timeInput, MFloat &physicalTimeInput)
 This function loads the flow information of the cells such as variables and attributes like u_velocity,density,etc.,. More...
 
virtual void loadOldVariables (const MString &fileName)
 This function loads oldVariable data from a restartFile-type file. More...
 
virtual void loadGridFlowVarsPar (const MChar *fileName)
 This function loads the flow information of the cells such as variables and attributes like u_velocity,density,etc.,. More...
 
virtual void loadRestartMaterial ()
 
virtual void initCellMaterialNo ()
 
virtual MFloat entropy (MInt cellId)
 
void setAndAllocateJetProperties ()
 reads in the jet properties More...
 
void initializeTimers ()
 Initializes the communication timers. More...
 
MFloat timeStep (MBool canSolver=false) noexcept
 
MBool useTimeStepFromRestartFile () const
 Returns true if the time-step from a restart file should be reused. More...
 
MBool requiresTimeStepUpdate () const
 Returns true if the time-step should be updated on this step. More...
 
void setRestartFileOutputTimeStep ()
 
void computeSourceTerms ()
 
MFloat computeTimeStep (MInt cellId) const noexcept
 
MFloat computeTimeStepMethod (MInt cellId) const noexcept
 Computes the time-step of the cell cellId. More...
 
MFloat computeTimeStepEulerDirectional (MInt cellId) const noexcept
 
MFloat computeTimeStepApeDirectional (MInt cellId) const noexcept
 
MBool cellParticipatesInTimeStep (MInt cellId) const noexcept
 Does the cell cellId participate in the time-step computation? More...
 
MFloat computeTimeStepDiffusionNS (MFloat density, MFloat temperature, MFloat Re, MFloat C, MFloat dx) const noexcept
 
void computeAndSetTimeStep ()
 
- Protected Member Functions inherited from maia::CartesianSolver< nDim, SolverType >
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)
 
template<MBool cartesianInterpolation>
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
 
- Protected Attributes inherited from FvCartesianSolverXD< 2, FvSysEqnNS< 2 > >
FvSurfaceCollector m_surfaces
 
maia::fv::collector::FvCellCollector< nDimm_cells
 Collector for FV cells. More...
 
MFloat m_maRot
 
MFloat m_MaHg
 
MFloat m_THg
 
MFloat m_UHg
 
MFloat m_VHg
 
MFloat m_WHg
 
MFloat m_PHg
 
MFloat m_rhoHg
 
MFloat m_MaCg
 
MFloat m_TCg
 
MFloat m_UCg
 
MFloat m_VCg
 
MFloat m_WCg
 
MFloat m_PCg
 
MFloat m_rhoCg
 
MIntm_bndryRfnJumpInformation
 
MIntm_bndryRfnJumpInformation_
 
MInt m_sweepStartFirstCell
 
MIntm_activeCellIds
 
MInt m_noActiveCells
 
MInt m_noActiveHaloCellOffset
 
MIntm_cellsInsideSpongeLayer
 
MInt m_noCellsInsideSpongeLayer
 
MIntm_smallCellIds
 
MIntm_masterCellIds
 
MInt ** m_maxLevelWindowCells
 
MIntm_noMaxLevelWindowCells
 
MInt ** m_maxLevelHaloCells
 
MIntm_noMaxLevelHaloCells
 
MInt m_slopeMemory
 
MInt m_surfaceVarMemory
 
std::set< MIntm_splitSurfaces
 
std::vector< MIntm_splitCells
 
std::vector< std::vector< MInt > > m_splitChilds
 
std::set< MIntm_cutOffInterface
 
MFloat ** m_A
 
MFloat ** m_ATA
 
MFloat ** m_ATAi
 
MIntm_reconstructionDataPeriodic
 
MUint m_reconstructionDataSize
 
std::vector< MFloatm_reconstructionConstants
 
std::vector< MIntm_reconstructionCellIds
 
std::vector< MIntm_reconstructionNghbrIds
 
MFloatm_reconstructionConstantsPeriodic
 
std::vector< std::vector< MInt > > m_azimuthalMaxLevelHaloCells
 
std::vector< std::vector< MInt > > m_azimuthalMaxLevelWindowCells
 
std::vector< std::vector< MInt > > m_azimuthalRemappedHaloCells
 
std::vector< std::vector< MInt > > m_azimuthalRemappedWindowCells
 
std::vector< MIntm_azimuthalRemappedNeighborDomains
 
std::vector< MIntm_azimuthalRemappedNeighborsDomainIndex
 
MBool m_azimuthalRecConstSet
 
MBool m_azimuthalNearBndryInit
 
const MInt m_maxNoAzimuthalRecConst
 
MBool m_planeInterp
 
std::vector< MIntm_noAzimuthalReconstNghbrs
 
std::vector< MFloatm_azimuthalRecConsts
 
std::vector< MIntm_azimuthalReconstNghbrIds
 
std::vector< MIntm_azimuthalBndrySide
 
std::vector< MFloatm_azimuthalCutRecCoord
 
std::vector< std::vector< MInt > > m_azimuthalMaxLevelWindowMap
 
std::vector< MIntm_azimuthalHaloActive
 
const MInt m_azimuthalNearBoundaryBackupMaxCount
 
MFloat m_azimuthalAngle
 
std::vector< MIntm_rotIndVarsPV
 
std::vector< MIntm_rotIndVarsCV
 
MFloat m_angularBodyVelocity
 
MFloat m_surfaceTangentialVelocity
 
MIntm_secondBodyId
 
MFloat ** m_rhs0
 
MFloatm_volumeAcceleration
 
MFloatm_rotAxisCoord
 
MFloatm_heatRelease
 
MFloatm_limPhi
 
std::vector< MFloatm_dampFactor
 
MString m_reactionScheme
 
MFloat m_hInfinity
 
MFloat m_gasConstant
 
MFloat m_thickeningFactor
 
MFloat m_referenceDensityTF
 
MFloat m_heatReleaseReductionFactor
 
MInt m_temperatureChange
 
MFloat m_burntUnburntTemperatureRatio
 
MFloat m_burntUnburntTemperatureRatioEnd
 
MFloat m_burntUnburntTemperatureRatioStart
 
MFloatm_molecularWeight
 
MFloatm_FmolecularWeight
 
MFloatm_molarFormationEnthalpy
 
MFloatm_formationEnthalpy
 
MFloatm_referenceComposition
 
MFloatm_secondaryReferenceComposition
 
MBool m_jet
 
MBool m_jetForcing
 
MFloat m_jetForcingPosition
 
MFloat m_jetRandomSeed
 
MFloat m_jetHalfWidth
 
MFloat m_jetCoflowOffset
 
MFloat m_jetCoflowEndOffset
 
MFloat m_jetHalfLength
 
MInt m_noJetConst
 
MFloatm_jetConst
 
MFloat m_forceCoefficient
 
MFloat m_densityRatio
 
MFloat m_shearLayerThickness
 
MFloat m_MaCoflow
 
MFloat m_jetTemperature
 
MFloat m_jetDensity
 
MFloat m_jetPressure
 
MFloat m_jetHeight
 
MFloat m_primaryJetRadius
 
MFloat m_secondaryJetRadius
 
MInt m_modeNumbers
 
MFloat m_targetVelocityFactor
 
MFloat m_momentumThickness
 
MInt m_jetType
 
MBool m_chevron
 
MFloat m_inletRadius
 
MFloat m_outletRadius
 
MFloat m_normJetTemperature
 
MFloat m_maNozzleExit
 
MFloat m_nozzleExitMaJet
 
MFloat m_nozzleExitTemp
 
MFloat m_nozzleExitRho
 
MFloat m_nozzleExitU
 
MFloat m_maNozzleInlet
 
MFloat m_nozzleInletTemp
 
MFloat m_nozzleInletP
 
MFloat m_nozzleInletRho
 
MFloat m_nozzleInletU
 
MFloat m_c0
 
MFloat m_laminarFlameThickness
 
MFloat m_subfilterVariance
 
MFloat m_maxReactionRate
 
MFloat m_MaFlameTube
 
MFloat m_temperatureFlameTube
 
MFloat m_velocityFlameTube
 
MFloat m_rhoFlameTube
 
MFloat m_rhoUnburnt
 
MFloat m_rhoBurnt
 
MFloat m_pressureFlameTube
 
MFloat m_pressureUnburnt
 
MFloat m_inletTubeAreaRatio
 
MFloat m_flameOutletAreaRatio
 
MFloat m_inletOutletAreaRatio
 
MBool m_twoFlames
 
MFloat m_dampingDistanceFlameBase
 
MFloat m_dampingDistanceFlameBaseExtVel
 
MFloat m_realRadiusFlameTube
 
MFloat m_radiusVelFlameTube
 
MFloat m_radiusInjector
 
MFloat m_yOffsetInjector
 
MFloat m_radiusFlameTube
 
MFloat m_radiusFlameTube2
 
MFloat m_initialFlameHeight
 
MFloat m_xOffsetFlameTube
 
MFloat m_xOffsetFlameTube2
 
MFloat m_yOffsetFlameTube
 
MFloat m_yOffsetFlameTube2
 
MFloat m_deltaXtemperatureProfile
 
MFloat m_deltaYtemperatureProfile
 
MFloat m_thermalProfileStartFactor
 
MFloat m_flameRadiusOffset
 
MFloat m_shearLayerStrength
 
MFloat m_ScT
 
MFloat m_NuT
 
MFloat m_integralAmplitude
 
MFloat m_integralLengthScale
 
MInt m_spongeLayerLayout
 
MFloatm_domainBoundaries
 
MFloatm_spongeCoord
 
MBool m_levelSet
 
MBool m_levelSetMb
 
MBool m_LsRotate
 
MBool m_levelSetRans
 
MBool m_combustion
 
MBool m_LSSolver
 
MBool m_acousticAnalysis
 
MBool m_thickenedFlame
 
std::vector< MFloat > * m_levelSetValues
 
MFloatm_levelSetValuesMb
 
MIntm_associatedBodyIds
 
MInt m_noLevelSetsUsedForMb
 
MInt m_noLevelSetFieldData
 
std::vector< MFloat > * m_curvatureG
 
std::vector< MFloat > * m_flameSpeedG
 
MInt m_noSets
 
MBool m_reComputedBndry
 
MString m_currentGridFileName
 
MBool m_adaptationSinceLastRestart
 
MBool m_adaptationSinceLastRestartBackup
 
MBool m_forceRestartGrid
 
MBool m_force1DFiltering
 
MBool m_gridConvergence
 
MBool m_gridInterfaceFilter
 
MBool m_totalDamp
 
MBool m_heatReleaseDamp
 
MBool m_useCorrectedBurningVelocity
 
MBool m_modelCheck
 
MBool m_recordBodyData
 
MBool m_recordLandA
 
MBool m_recordPressure
 
MBool m_vtkTest
 
MBool m_recordFlameFrontPosition
 
MBool m_recordWallVorticity
 
MBool m_structuredFlameOutput
 
MBool m_surfDistParallel
 
MBool m_surfDistCartesian
 
MInt m_writeOutData
 
MBool m_writeCutCellsToGridFile
 
MBool m_restartOldVariables
 
MBool m_restartOldVariablesReset
 
MBool m_bodyIdOutput
 
MBool m_levelSetOutput
 
MBool m_isActiveOutput
 
MBool m_domainIdOutput
 
MBool m_multipleFvSolver
 
const MChar ** m_variablesName
 
const MChar ** m_vorticityName
 
MBool m_saveVorticityToRestart
 
MBool m_vorticityOutput
 
MInt m_vorticitySize
 
MBool m_qCriterionOutput
 
MBool m_vtuWritePointData
 
MBool m_vtuWriteGeometryFile
 
MBool m_vtuWriteParticleFile
 
MBool m_vtuCutCellOutput
 
std::set< MIntm_vtuGeometryOutput
 
MBool m_vtuGlobalIdOutput
 
MBool m_vtuDomainIdOutput
 
MBool m_vtuDensityOutput
 
MBool m_vtuLevelSetOutput
 
MBool m_vtuQCriterionOutput
 
MBool m_vtuLambda2Output
 
MBool m_vtuVorticityOutput
 
MBool m_vtuVelocityGradientOutput
 
MBool m_vtuGeometryOutputExtended
 
MBool m_vtuSaveHeaderTesting
 
MInt m_vtuLevelThreshold
 
MFloatm_vtuCoordinatesThreshold
 
MBool m_checkCellSurfaces
 
MBool m_considerVolumeForces
 
MBool m_considerRotForces
 
MString m_outputFormat
 
MBool m_allowInterfaceRefinement
 
MInt m_bndryCellSurfacesOffset
 
MInt m_bndrySurfacesOffset
 
MInt m_cellToRecordData
 
MInt m_counterCx
 
MInt m_dragOutputInterval
 
MBool m_integratedHeatReleaseOutput
 
MInt m_integratedHeatReleaseOutputInterval
 
MBool m_dualTimeStepping
 
MBool m_euler
 
MInt m_bndryGhostCellsOffset
 
MInt m_initialCondition
 
MInt m_limiter
 
MInt m_maxNoTimeSteps
 
MInt m_maxNoSurfaces
 
MInt m_noGNodes
 
MInt m_noRKSteps
 
MInt m_noSamples
 
MInt m_maxIterations
 
MInt m_orderOfReconstruction
 
MInt m_restartBackupInterval
 
MBool m_restartBc2800
 
MFloat m_restartTimeBc2800
 
MInt m_RKStep
 
MInt m_rungeKuttaOrder
 
MInt m_noTimeStepsBetweenSamples
 
MInt m_forceNoTimeSteps
 
MInt m_structuredFlameOutputLevel
 
MFloat m_adaptationDampingDistance
 
MFloatm_angle
 
MFloatm_RKalpha
 
MBool m_isEEGas
 
struct {
   MFloat   RKSemiImplicitFactor
 
   MFloat **   uOtherPhase = nullptr
 
   MFloat **   uOtherPhaseOld = nullptr
 
   MFloat **   gradUOtherPhase = nullptr
 
   MFloat **   vortOtherPhase = nullptr
 
   MFloat *   nuTOtherPhase = nullptr
 
   MFloat *   nuEffOtherPhase = nullptr
 
   MFloat   Eo0
 
   MFloat   bubbleDiameter
 
   MFloat   CD
 
   MFloat   CL
 
   MInt   dragModel
 
   MFloat   liquidDensity
 
   MFloat   eps
 
   MInt   gasSource
 
   MFloat   gasSourceMassFlow
 
   std::vector< MInt >   gasSourceCells
 
   MInt   noGasSourceBoxes
 
   std::vector< MFloat >   gasSourceBox
 
   MBool   bubblePathDispersion
 
   MFloat   massSource
 
   MFloat   initialAlpha
 
   MFloat   alphaInf
 
   MFloat   alphaIn
 
   MFloat   schmidtNumber
 
   MBool   uDLimiter
 
   MFloat   uDLim
 
   MBool   depthCorrection
 
   std::vector< MFloat >   gravity
 
   std::vector< MFloat >   gravityRefCoords
 
   std::vector< MFloat >   depthCorrectionCoefficients
 
   MFloat   interpolationFactor
 
m_EEGas
 
struct {
   MFloat   infTemperature
 
   MFloat   infPressure
 
   MFloat   infPhi
 
   MString *   infSpeciesName
 
   MFloat *   infSpeciesMassFraction
 
   MFloat   infVelocity
 
   MFloat   laminarFlameSpeedFactor
 
   MBool   hasChemicalReaction
 
   MString   reactionMechanism
 
   MString   phaseName
 
   MString   transportModel
 
   MBool   soretEffect
 
m_detChem
 
MIntm_storeNghbrIds
 
MIntm_identNghbrIds
 
MBool m_zonal
 
MInt m_zonalRestartInterpolationSolverId
 
MBool m_resetInitialCondition
 
MBool m_rans
 
MInt m_noRansEquations
 
MFloat m_turbulenceDegree
 
MFloat m_ransTransPos
 
MInt m_zonalAveragingTimeStep
 
MInt m_zonalTransferInterval
 
MInt m_noRANSVariables
 
MInt m_noLESVariables
 
std::vector< MFloat > * m_RANSValues
 
std::vector< MFloat > * m_LESValues
 
std::vector< MFloat > * m_LESVarAverage
 
std::vector< MFloat > * m_LESVarAverageBal
 
std::vector< MIntm_LESAverageCells
 
MInt m_LESNoVarAverage
 
std::vector< MFloatm_averagePos
 
std::vector< MIntm_averageDir
 
std::vector< MBoolm_averageReconstructNut
 
MBool m_calcLESAverage
 
MBool m_restartLESAverage
 
MInt m_averageStartTimeStep
 
MInt m_rntStartTimeStep
 
MString m_bc7909RANSSolverType
 
MInt m_stgStartTimeStep
 
MBool m_stgIsActive
 
MFloat m_pressureRatioChannel
 
MInt m_pressureRatioStartTimeStep
 
MInt m_pressureRatioEndTimeStep
 
MInt m_spongeTimeVelocity
 
MFloat ** m_stgEddieCoverage
 
MInt m_stgSpongeTimeStep
 
MFloatm_stgSpongePositions
 
MInt m_noStgSpongePositions
 
MBool m_STGSponge
 
MBool m_preliminarySponge
 
MInt m_spongeRoot
 
MFloat m_7901Position
 
MInt m_7901faceNormalDir
 
MInt m_7901wallDir
 
MInt m_7901periodicDir
 
std::vector< MFloat > * m_STGSpongeFactor
 
MFloat ** m_LESPeriodicAverage
 
MFloatm_uvErr
 
MFloatm_uvRans
 
MFloatm_uvInt
 
MFloat m_spongeLimitFactor
 
MPI_Comm m_spongeComm
 
MInt m_spongeCommSize
 
MInt m_spongeRank
 
MInt m_noSpongeCells
 
MInt m_globalNoSpongeLocations
 
MIntm_globalNoPeriodicExchangeCells
 
std::vector< MInt > * m_spongeAverageCellId
 
std::vector< MIntm_spongeCells
 
std::vector< MFloatm_spongeLocations
 
MFloatm_globalBcStgLocationsG
 
std::vector< std::pair< MFloat, MFloat > > m_globalSpongeLocations
 
MFloat m_tkeFactor
 
MFloat m_kInfinityFactor
 
MFloat m_omegaInfinityFactor
 
std::vector< FvWMSurface< nDim > > m_wmSurfaces
 
MInt m_wmSurfaceProbeInterval
 
MInt m_wmGlobalNoSrfcProbeIds
 
MInt m_wmDomainId
 
MInt m_wmNoDomains
 
MBool m_wmLES
 
MBool m_wmOutput
 
MBool m_wmTimeFilter
 
MBool m_wmUseInterpolation
 
MFloat m_wmDistance
 
MInt m_wmIterator
 
MPI_Comm m_comm_wm
 
MIntm_wmLocalNoSrfcProbeIds
 
MIntm_noWMImgPointsSend
 
MIntm_noWMImgPointsRecv
 
MIntm_wmImgRecvIdMap
 
MFloatm_wmImgSendBuffer
 
MFloatm_wmImgRecvBuffer
 
MFloatm_wmSrfcProbeSendBuffer
 
MFloatm_wmSrfcProbeRecvBuffer
 
MPI_Request * m_mpi_wmRequest
 
MPI_Request * m_mpi_wmSendReq
 
MPI_Request * m_mpi_wmRecvReq
 
std::vector< std::vector< MInt > > m_wmImgCellIds
 
std::vector< std::vector< MInt > > m_wmImgWMSrfcIds
 
std::vector< std::vector< MFloat > > m_wmImgCoords
 
std::vector< MIntm_wmSurfaceProbeIds
 
std::vector< MIntm_wmSurfaceProbeSrfcs
 
MFloat m_normalLength
 
MInt m_normalNoPoints
 
MInt m_normalOutputInterval
 
MInt m_normalOutputInitCounter
 
MInt m_normalBcId
 
MBool m_wallNormalOutput
 
MBool m_useWallNormalInterpolation
 
std::vector< MFloatm_normalSamplingCoords
 
std::vector< MIntm_normalSamplingSide
 
MInt m_noWallNormals
 
std::vector< MFloatm_wallNormalPointCoords
 
std::vector< MFloatm_wallNormalVectors
 
std::vector< MFloatm_wallSetupOrigin
 
std::vector< MIntm_wallSetupOriginSide
 
std::vector< MIntm_wallNormalPointDomains
 
std::vector< MIntm_wallNormalPointCellIDs
 
std::vector< std::vector< MInt > > m_neighborPointIds
 
std::vector< MFloatTensorm_interpolationMatrices
 
std::vector< MIntm_interpolationPosition
 
MInt m_saNoSrfcProbes
 
MInt m_saSrfcProbeInterval
 
MInt m_saSrfcProbeStart
 
MBool m_saSrfcProbes
 
MString m_saSrfcProbeDir
 
std::vector< std::vector< MInt > > m_saSrfcProbeIds
 
std::vector< std::vector< MInt > > m_saSrfcProbeSrfcs
 
MFloatm_saSrfcProbeBuffer
 
MIntm_saSrfcProbeNoSamples
 
MBool m_useSandpaperTrip
 
MBool m_useChannelForce
 
MFloat m_channelVolumeForce
 
MFloat m_chi
 
MInt m_upwindMethod
 
MInt m_reConstSVDWeightMode
 
MBool m_relocateCenter
 
MBool m_reExcludeBndryDiagonals
 
MBool m_2ndOrderWeights
 
MFloat m_cfl
 
MFloat m_cflViscous
 
MFloat m_convergenceCriterion
 
MFloat m_deltaP
 
MFloat m_deltaPL
 
MFloat m_gamma
 
MFloat m_globalUpwindCoefficient
 
MFloat m_inflowTemperatureRatio
 
MFloat ** m_kronecker
 
MFloat m_massConsumption
 
MFloat m_maxTemp
 
MFloat m_meanPressure
 
MFloat m_meanY
 
MFloat m_physicalTime
 
MFloat m_physicalTimeStep
 
MFloat m_Pr
 
MFloat m_rPr
 
MFloat m_rRe0
 
MFloat m_referenceLength
 
MFloat m_previousMa
 
MBool m_changeMa
 
MBool m_useCreateCutFaceMGC
 
MFloat m_sampleRate
 
MFloat m_samplingTimeBegin
 
MFloat m_samplingTimeEnd
 
MInt m_spongeLayerType
 
MFloat m_sigmaSponge
 
MFloat m_sigmaSpongeInflow
 
MFloat m_spongeReductionFactor
 
MFloatm_spongeFactor
 
MFloat m_spongeLayerThickness
 
MBool m_createSpongeBoundary
 
MInt m_noSpongeFactors
 
MInt m_noSpongeBndryCndIds
 number of sponge boundary IDs More...
 
MInt m_noMaxSpongeBndryCells
 
MFloatm_sigmaSpongeBndryId
 
MFloatm_sigmaEndSpongeBndryId
 
MIntm_spongeDirections
 
MIntm_spongeBndryCndIds
 
MFloatm_spongeStartIteration
 
MFloatm_spongeEndIteration
 
MIntm_spongeTimeDependent
 
MBool m_spongeTimeDep
 
MBool m_velocitySponge
 
MFloat m_spongeWeight
 
MFloat m_spongeBeta
 
MFloat m_targetDensityFactor
 
MBool m_outputPhysicalTime
 
MFloat m_time
 
MFloat m_timeRef
 
MFloat m_totalHeatReleaseRate
 
MInt ** m_cellSurfaceMapping
 
MUlong m_randomDeviceSeed
 
MBool m_useCentralDifferencingSlopes
 
MFloat m_oldMomentOfVorticity
 
MFloat m_oldNegativeMomentOfVorticity
 
MFloat m_oldPositiveMomentOfVorticity
 
MFloat ** m_vorticity
 
MBool m_loadSampleVariables
 
MString m_testCaseName
 
MFloat m_timeStepConvergenceCriterion
 
MFloat ** m_externalSource
 
MFloat ** m_externalSourceDt1
 
MIntm_noParts
 
MBool m_hasExternalSource
 
std::map< MInt, std::vector< MFloat > > m_vapourData
 
MBool m_calcSlopesAfterStep
 
MBool m_multilevel
 Stores whether this solver is part of a multilevel computation. More...
 
MBool m_isMultilevelPrimary
 Stores whether this solver is the primary solver (i.e., it has the finshest mesh) of a multilevel computation. More...
 
MBool m_isLowestSecondary
 
MInt m_maxLevelBeforeAdaptation
 
MBool m_statisticCombustionAnalysis
 
MBool m_averageVorticity
 
MInt m_movingAvgInterval
 
MBool m_averageSpeedOfSound
 
MInt m_skewness
 
MInt m_kurtosis
 
std::set< MIntm_activeMeanVars
 
MFloat ** m_sendBuffers
 
MFloat ** m_receiveBuffers
 
MInt m_dataBlockSize
 
MBool m_nonBlockingComm
 
MFloat ** m_sendBuffersNoBlocking
 
MFloat ** m_receiveBuffersNoBlocking
 
MPI_Request * m_mpi_request
 
MPI_Request * m_mpi_sendRequest
 
MPI_Request * m_mpi_receiveRequest
 
MBool m_mpiRecvRequestsOpen
 
MBool m_mpiSendRequestsOpen
 
MBool m_splitMpiCommRecv
 
Collector< FvBndryCell< nDim, FvSysEqnNS< 2 > > > * m_bndryCells
 
std::vector< MIntm_associatedInternalCells
 
std::map< MInt, MIntm_splitChildToSplitCell
 
MString m_surfaceValueReconstruction
 
MString m_viscousFluxScheme
 
MString m_advectiveFluxScheme
 
MFloat m_enhanceThreePointViscFluxFactor
 
MInt m_noLimitedSlopesVar
 
MIntm_limitedSlopesVar
 
MInt m_computeExtVel
 
MBool m_massFlux
 
MBool m_plenumWall
 
MBool m_plenum
 
MBool m_confinedFlame
 
MBool m_filterFlameTubeEdges
 
MFloat m_filterFlameTubeEdgesDistance
 
MBool m_divergenceTreatment
 
MBool m_specialSpongeTreatment
 
MInt m_constantFlameSpeed
 
MFloat m_flameSpeed
 
MFloat m_turbFlameSpeed
 
MFloat m_Da
 
MFloat m_noReactionCells
 
MFloat m_velocityOutlet
 
MFloat m_analyticIntegralVelocity
 
MInt m_pressureLossFlameSpeed
 
MFloat m_pressureLossCorrection
 
MFloat m_meanVelocity
 
MFloat m_meanVelocityOutlet
 
MFloat m_tubeLength
 
MFloat m_outletLength
 
MFloat m_radiusOutlet
 
MFloat m_strouhal
 
MFloat m_strouhalInit
 
MFloat m_flameStrouhal
 
MFloat m_neutralFlameStrouhal
 
MInt m_samplingEndCycle
 
MInt m_samplingStartCycle
 
MInt m_samplingStartIteration
 
MInt m_noSamplingCycles
 
MFloat m_samplesPerCycle
 
MInt m_noForcingCycles
 
MBool m_forcing
 
MFloat m_forcingAmplitude
 
MFloat m_perturbationAmplitude
 
MFloat m_perturbationAmplitudeCorr
 
MFloat m_lambdaPerturbation
 
MInt m_outputOffset
 
MFloat m_marksteinLength
 
MFloat m_marksteinLengthPercentage
 
MBool m_zeroLineCorrection
 
MFloat m_marksteinLengthTh
 
MInt m_loadBalancingReinitStage
 
MBool m_weightBndryCells
 
MBool m_weightCutOffCells
 
MBool m_weightBc1601
 
MBool m_weightInactiveCell
 
MBool m_weightNearBndryCells
 
MBool m_limitWeights
 
MBool m_weightLvlJumps
 
MBool m_weightSmallCells
 
MFloat m_weightBaseCell
 
MFloat m_weightLeafCell
 
MFloat m_weightActiveCell
 
MFloat m_weightBndryCell
 
MFloat m_weightNearBndryCell
 
MFloat m_weightMulitSolverFactor
 
MInt m_timerGroup
 
std::array< MInt, Timers::_countm_timers
 
MInt m_tgfv
 
MInt m_tcomm
 
MInt m_texchange
 
MInt m_tgatherAndSend
 
MInt m_tgatherAndSendWait
 
MInt m_tscatterWaitSome
 
MInt m_tgather
 
MInt m_tsend
 
MInt m_treceive
 
MInt m_tscatter
 
MInt m_treceiving
 
MInt m_treceiveWait
 
MInt m_texchangeDt
 
MFloat m_UInfinity
 
MFloat m_VInfinity
 
MFloat m_WInfinity
 
MFloat m_PInfinity
 
MFloat m_TInfinity
 
MFloat m_DthInfinity
 
MFloat m_nuTildeInfinity
 
MFloat m_kInfinity
 
MFloat m_omegaInfinity
 
MFloat m_DInfinity
 
MFloat m_SInfinity
 
MFloat m_VVInfinity [3]
 
MFloat m_rhoUInfinity
 
MFloat m_rhoVInfinity
 
MFloat m_rhoWInfinity
 
MFloat m_rhoEInfinity
 
MFloat m_rhoInfinity
 
MFloat m_rhoVVInfinity [3]
 
MFloatm_postShockPV
 
MFloatm_postShockCV
 
MInt m_timeStepMethod
 
MBool m_timeStepVolumeWeighted
 Should the time-step in the boundary cells be weighted by their volume? More...
 
MFloat m_timeStep
 
MBool m_timeStepNonBlocking
 Reduce the timeStep using non-blocking communication;. More...
 
MPI_Request m_timeStepReq
 Request for reducing the time-step using non-blocking comm. More...
 
MBool m_timeStepAvailable
 Has the non-blocking reduction of the time-step finished? More...
 
MBool m_timeStepUpdated
 time-step has been updated More...
 
MFloat m_timeStepFixedValue
 Forces the time-step to be set to a fixed value: More...
 
MInt m_timeStepComputationInterval
 How often should the time-step be recomputed? More...
 
MFloat m_restartFileOutputTimeStep
 
MBool m_static_logCell_firstRun
 
MBool m_static_smallCellCorrection_first
 
MInt m_static_smallCellCorrection_slipDirection
 
MFloat m_static_smallCellCorrection_slipCoordinate
 
MBool m_static_computeSurfaceValuesLimitedSlopesMan_checkedBndryCndIds
 
MBool m_static_computeSurfaceValuesLimitedSlopesMan_correctWallBndryFluxes
 
MFloat m_static_getDistanceSplitSphere_h
 
MBool m_static_getDistanceSplitSphere_first
 
MBool m_static_constructGFieldPredictor_firstRun
 
MBool m_static_constructGFieldPredictor_adaptiveGravity
 
MFloat m_static_advanceSolution_meanDragCoeff
 
MFloat m_static_advanceSolution_meanDrag
 
MFloat m_static_advanceSolution_dragCnt
 
MBool m_static_advanceSolution_firstRun
 
MBool m_static_updateBodyProperties_c453_firstRun
 
MBool m_static_updateBodyProperties_c455_firstRun
 
MBool m_static_updateBodyProperties_firstTime
 
MBool m_static_redistributeMass_firstRun
 
MBool m_static_applyBoundaryCondition_firstRun
 
MFloat m_static_applyBoundaryCondition_ERhoL1
 
MFloat m_static_applyBoundaryCondition_ERhoL2
 
MFloat m_static_applyBoundaryCondition_ERhoLoo
 
MFloat m_static_applyBoundaryCondition_EVelL1
 
MFloat m_static_applyBoundaryCondition_EVelL2
 
MFloat m_static_applyBoundaryCondition_EVelLoo
 
MFloat m_static_applyBoundaryCondition_refMass
 
MFloat m_static_applyBoundaryCondition_oldMass
 
MFloat m_static_applyBoundaryCondition_oldVol2
 
MBool m_static_updateSpongeLayer_mbSpongeLayer
 
MBool m_static_updateSpongeLayer_first
 
MBool m_static_logData_firstRun4
 
MBool m_static_logData_ic45299_first
 
MFloat m_static_logData_ic45299_amplitude [s_logData_ic45299_maxNoEmbeddedBodies]
 
MFloat m_static_logData_ic45299_freqFactor [s_logData_ic45299_maxNoEmbeddedBodies]
 
MFloat m_static_logData_ic45299_maxF
 
MFloat m_static_logData_ic45299_maxA
 
MFloat m_static_logData_ic45299_cutOffAngle
 
MFloat m_static_logData_ic45299_xCutOff
 
MBool m_static_logData_ic45301_first
 
MFloat m_static_logData_ic45301_Strouhal
 
MFloat m_static_logData_ic45301_freqFactor [s_logData_ic45301_maxNoEmbeddedBodies]
 
MFloat m_static_logData_ic45301_maxF
 
MFloat m_static_logData_ic45301_pressurePoints [s_logData_ic45301_maxNoPressurePoints *nDim]
 
MInt m_static_logData_ic45301_noPressurePoints
 
MInt m_static_logData_ic45301_containingCellIds [s_logData_ic45301_maxNoPressurePoints]
 
MBool m_static_saveSolverSolutionxd_firstRun
 
MFloat m_static_computeFlowStatistics_thetaDensityAverage [s_computeFlowStatistics_noSamples *s_computeFlowStatistics_thetaSize *s_computeFlowStatistics_noDat]
 
MFloat m_static_computeFlowStatistics_thetaDensityAverage2 [s_computeFlowStatistics_noSamples *s_computeFlowStatistics_thetaSize *s_computeFlowStatistics_noDat]
 
MInt m_static_computeFlowStatistics_currentIndex
 
MFloat m_static_computeFlowStatistics_pdfAverage [s_computeFlowStatistics_noSamples2 *s_computeFlowStatistics_noPdfs *s_computeFlowStatistics_noPdfPoints]
 
MFloat m_static_computeFlowStatistics_pdfAverage2 [s_computeFlowStatistics_noSamples2 *s_computeFlowStatistics_noPdfs *s_computeFlowStatistics_noPdfPoints]
 
MFloat m_static_computeFlowStatistics_jointPdfAverage [s_computeFlowStatistics_noSamples2 *s_computeFlowStatistics_noJointPdfs *s_computeFlowStatistics_noPdfPoints *s_computeFlowStatistics_noPdfPoints]
 
MInt m_static_computeFlowStatistics_currentIndex2
 
MFloat m_static_computeFlowStatistics_sdatAverage [s_computeFlowStatistics_noSamples *s_computeFlowStatistics_noAngles *s_computeFlowStatistics_noAngleDat]
 
MFloat m_static_computeFlowStatistics_sdatAverage2 [s_computeFlowStatistics_noSamples *s_computeFlowStatistics_noAngles *s_computeFlowStatistics_noAngleDat]
 
MFloat m_static_computeFlowStatistics_sdatSum [s_computeFlowStatistics_noSamples *s_computeFlowStatistics_noAngles]
 
MInt m_static_computeFlowStatistics_currentIndex3
 
MInt m_maxNearestBodies
 
MInt m_static_computeFlowStatistics_currentIndex4
 
MInt m_static_computeFlowStatistics_currentCnt
 
MFloat m_static_computeFlowStatistics_bodyCntAvg [s_computeFlowStatistics_noSamples *s_computeFlowStatistics_noReClasses]
 
MBool m_static_computeFlowStatistics_firstBD
 
MBool m_static_writeVtkXmlFiles_firstCall
 
MBool m_static_writeVtkXmlFiles_firstCall2
 
MBool m_static_logCellxd_firstRun
 
std::vector< MIntm_cellInterpolationIndex
 
std::vector< std::vector< MFloat > > m_cellInterpolationMatrix
 
std::vector< std::vector< MInt > > m_cellInterpolationIds
 
- Protected Attributes inherited from maia::CartesianSolver< nDim, SolverType >
MIntm_rfnBandWidth
 
MInt m_noSensors
 
MInt m_adaptationInterval
 
MInt m_adaptationStep = F0
 
std::vector< MIntm_maxSensorRefinementLevel
 
std::vector< MFloatm_sensorWeight
 
std::vector< MFloatm_sensorDerivativeVariables
 
MBool m_adaptation
 
MBool m_adapts
 
MInt m_noInitialSensors
 
MBool m_resTriggeredAdapt = false
 
MInt m_noSmoothingLayers = -1
 
MInt m_sensorBandAdditionalLayers
 
MBool m_sensorInterface
 
MBool m_sensorParticle
 
std::vector< MStringm_sensorType
 
MIntm_recalcIds = nullptr
 
std::vector< funm_sensorFnPtr
 
MInt m_maxNoSets = -1
 
std::vector< MFloatm_azimuthalCartRecCoord
 
const MInt m_revDir [6] = {1, 0, 3, 2, 5, 4}
 
const MInt m_noDirs = 2 * nDim
 
- Protected Attributes inherited from Solver
MFloat m_Re {}
 the Reynolds number More...
 
MFloat m_Ma {}
 the Mach number More...
 
MInt m_solutionInterval
 The number of timesteps before writing the next solution file. More...
 
MInt m_solutionOffset {}
 
std::set< MIntm_solutionTimeSteps
 
MInt m_restartInterval
 The number of timesteps before writing the next restart file. More...
 
MInt m_restartTimeStep
 
MInt m_restartOffset
 
MString m_solutionOutput
 
MBool m_useNonSpecifiedRestartFile = false
 
MBool m_initFromRestartFile
 
MInt m_residualInterval
 The number of timesteps before writing the next residual. More...
 
const MInt m_solverId
 a unique solver identifier More...
 
MFloatm_outerBandWidth = nullptr
 
MFloatm_innerBandWidth = nullptr
 
MIntm_bandWidth = nullptr
 
MBool m_restart = false
 
MBool m_restartFile = false
 
- Static Protected Attributes inherited from FvCartesianSolverXD< 2, FvSysEqnNS< 2 > >
static constexpr MInt s_logData_ic45299_maxNoEmbeddedBodies
 
static constexpr MInt s_logData_ic45301_maxNoEmbeddedBodies
 
static constexpr MInt s_logData_ic45301_maxNoPressurePoints
 
static constexpr MInt s_computeFlowStatistics_noSamples
 
static constexpr MInt s_computeFlowStatistics_thetaSize
 
static constexpr MInt s_computeFlowStatistics_noDat
 
static constexpr MInt s_computeFlowStatistics_noPdfPoints
 
static constexpr MInt s_computeFlowStatistics_noPdfs
 
static constexpr MInt s_computeFlowStatistics_noJointPdfs
 
static constexpr MInt s_computeFlowStatistics_noSamples2
 
static constexpr MInt s_computeFlowStatistics_noSamples3
 
static constexpr MInt s_computeFlowStatistics_noAngles
 
static constexpr MInt s_computeFlowStatistics_noAngleDat
 
static constexpr MInt s_computeFlowStatistics_noReClasses
 
static constexpr MInt s_computeFlowStatistics_noSamples4
 

Detailed Description

Definition at line 14 of file fvcartesianapesolver2d.h.

Constructor & Destructor Documentation

◆ FvApeSolver2D()

FvApeSolver2D::FvApeSolver2D ( MInt  solverId,
MInt  noSpecies,
MBool propertiesGroups,
maia::grid::Proxy< 2 > &  gridProxy_,
Geometry< 2 > &  geometry_,
const MPI_Comm  comm 
)

Definition at line 11 of file fvcartesianapesolver2d.cpp.

13 : FvCartesianSolverXD<2, FvSysEqnNS<2>>(solverId, noSpecies, propertiesGroups, gridProxy_, geometry_, comm) {
15 Context::getSolverProperty<MFloat>("advectionVelocity", this->m_solverId, AT_, &m_advectionVelocity[0], 0);
17 Context::getSolverProperty<MFloat>("advectionVelocity", this->m_solverId, AT_, &m_advectionVelocity[1], 1);
18 IF_CONSTEXPR(nDim == 3) {
20 Context::getSolverProperty<MFloat>("advectionVelocity", this->m_solverId, AT_, &m_advectionVelocity[2], 2);
21 }
22 TRACE();
23}
MFloat m_advectionVelocity[nDim]
static constexpr const MInt nDim
MInt solverId() const
Return the solverId.
Definition: solver.h:425
const MInt m_solverId
a unique solver identifier
Definition: solver.h:90

Member Function Documentation

◆ Ausm()

void FvApeSolver2D::Ausm ( )
virtual

The objective is to encourage the compiler to generate different optimized version depending on the value of m_noSpecies.

Reimplemented from FvCartesianSolverXD< 2, FvSysEqnNS< 2 > >.

Definition at line 25 of file fvcartesianapesolver2d.cpp.

25 {
26 // TRACE();
27 const MUint noVars = 2 + nDim;
28 const MUint surfaceVarMemory = 2 * noVars;
29 const MUint noSurfaces = a_noSurfaces();
30 // const MUint noInternalSurfaces = m_bndrySurfacesOffset;
31 // static constexpr MFloat epsilon = 0.000000000001; // pow( 10.0, -12.0 );
32
33 MFloat* const RESTRICT fluxes = ALIGNED_MF(&a_surfaceFlux(0, 0));
34 const MFloat* const RESTRICT surfaceVars = ALIGNED_F(&a_surfaceVariable(0, 0, 0));
35 const MFloat* const RESTRICT area = ALIGNED_F(&a_surfaceArea(0));
36 const MInt* const RESTRICT orientations = ALIGNED_I(&a_surfaceOrientation(0));
37 // const MInt *const RESTRICT bndryCndIds = ALIGNED_I(srfcs[0].m_bndryCndId);
38
39 // loop over all surfaces
40#ifdef _OPENMP
41#pragma omp parallel for
42#endif
43 for(MUint srfcId = 0; srfcId < noSurfaces; ++srfcId) {
44 // const MUint orientation = orientations[ srfcId ];
45
46 const MUint offset = srfcId * surfaceVarMemory;
47 const MFloat* const RESTRICT leftVars = ALIGNED_F(surfaceVars + offset);
48 const MFloat* const RESTRICT rightVars = ALIGNED_F(leftVars + noVars);
49
50 // catch the primitive variables u, v, rho and p,
51 const MFloat UL = leftVars[PV->U];
52 const MFloat VL = leftVars[PV->V];
53 const MFloat PL = leftVars[CV->RHO_E];
54
55 const MFloat UR = rightVars[PV->U];
56 const MFloat VR = rightVars[PV->V];
57 const MFloat PR = rightVars[CV->RHO_E];
58
59 // catch cell surface area A and advection velocity components
60 const MFloat A = area[srfcId];
61
62 const MFloat uBar = m_advectionVelocity[0];
63 const MFloat vBar = m_advectionVelocity[1];
64
65 const MUint fluxOffset = srfcId * noVars;
66 MFloat* const RESTRICT flux = ALIGNED_MF(fluxes + fluxOffset);
67
68 /* // APE fluxes are not yet implemented: here is a first draft of how they can be implemented
69 in 2D
70
71 //calc flux function, uses description of APE flux from Bauer 2011: Airframe noise prediction
72 using a DG method
73 //calc average density
74 const MFloat rho0 = 1.0; //not yet implemented
75 //calc speed of sound
76 const MFloat c0 = 1.0 ; //not yet implemented
77 //calc left fluxes
78 const MFloat flux_u_l = orientations[srfcId]==0? uBar * UL + vBar * VL + rho0 * PL : 0.0
79 ; const MFloat flux_v_l = orientations[srfcId]==1? uBar * UL + vBar * VL + rho0 * PL : 0.0 ;
80 const MFloat flux_p_l = (rho0 * c0 * c0 * + PL) * (orientations[srfcId]==0? UL:VL) ;
81 //calc right fluxes
82 const MFloat flux_u_r = orientations[srfcId]==0? uBar * UR + vBar * VR + rho0 * PR : 0.0
83 ; const MFloat flux_v_r = orientations[srfcId]==1? uBar * UR + vBar * VR + rho0 * PR : 0.0 ;
84 const MFloat flux_p_r = (rho0 * c0 * c0 * + PR) * (orientations[srfcId]==0? UR:VR) ;
85
86 //calc numerical flux using a Lax-Friedrichs-scheme as in Schlottke-Lakemper et al 2017
87 const MFloat lambdaMax = max(abs(orientations[srfcId]==0? UL:VL),
88 abs(orientations[srfcId]==0? UR:VR)); flux[FV->RHO_U] = 0.5 * (flux_u_l + flux_u_r + lambdaMax *
89 (UL-UR) ); flux[FV->RHO_V] = 0.5 * (flux_v_l + flux_v_r + lambdaMax * (VL-VR) );
90
91 //flux of perturbed pressure (for APE purposes we use the energy density for the perturbed
92 pressure) flux[FV->RHO_E] = 0.5 * (flux_p_l + flux_p_r + lambdaMax * (PL-PR) );
93 */
94
95 // Temporary LAE: ic 1184 is used as a testcase for flux calculation with fluxes
96 // for the 2D linear advection equation in the rhoU variable while the APE fluxes are still in
97 // development. The other state variables(RHO_V, RHO_E, etc) are unused, since the LAE are only
98 // for a one-dimensional time dependent state. Feel free to remove this as soon as APE fluxes
99 // are implemented and well tested.
100 if(m_initialCondition == 1184) {
101 flux[FV->RHO_U] =
102 orientations[srfcId] == 0 ? (uBar > 0.0 ? UL : UR) * A * uBar : (vBar > 0.0 ? UL : UR) * A * vBar;
103 flux[FV->RHO_V] = 0.0;
104 flux[FV->RHO_E] = 0.0;
105 // This silences " ... is unused"-type warnings,
106 // because these variables will be used for APE, but are not used for LAE.
107 static_cast<void>(PL);
108 static_cast<void>(PR);
109 static_cast<void>(VL);
110 static_cast<void>(VR);
111 }
112 flux[FV->RHO] = 0.0;
113 }
114}
MInt a_noSurfaces()
Returns the number of surfaces.
MFloat & a_surfaceVariable(const MInt srfcId, const MInt dir, const MInt varId)
Returns the variable varId of surface srfcId in direction dir.
MInt & a_surfaceOrientation(const MInt srfcId)
Returns the orientation of surface srfcId.
MFloat & a_surfaceArea(const MInt srfcId)
Returns the area of surface srfcId.
MFloat & a_surfaceFlux(const MInt srfcId, const MInt fVarId)
Returns the flux fVarId for surface srfcId.
int32_t MInt
Definition: maiatypes.h:62
uint32_t MUint
Definition: maiatypes.h:63
double MFloat
Definition: maiatypes.h:52

◆ maxResidual()

MBool FvApeSolver2D::maxResidual ( MInt  mode)
virtual
Author
Lennart Schneiders

Reimplemented from FvCartesianSolverXD< 2, FvSysEqnNS< 2 > >.

Definition at line 120 of file fvcartesianapesolver2d.cpp.

120 {
121 const MInt noVars = 2 + nDim;
122
123 MFloat domainErrorSquared = 0.0;
124#ifdef _OPENMP
125#pragma omp parallel for reduction(+ : domainErrorSquared)
126#endif
127 for(MInt cellId = 0; cellId < noInternalCells(); cellId++) { // TODO labels:FV iterate only over inner cells
128 if(!a_hasProperty(cellId, SolverCell::IsOnCurrentMGLevel)) continue;
129 if(a_isPeriodic(cellId)) continue;
130 if(a_hasProperty(cellId, SolverCell::IsPeriodicWithRot)) continue;
131 if(a_hasProperty(cellId, SolverCell::IsCutOff)) continue;
132 if(a_hasProperty(cellId, SolverCell::IsInvalid)) continue;
133 MInt gridcellId = cellId;
134 if(a_hasProperty(cellId, SolverCell::IsSplitClone)) {
135 gridcellId = m_splitChildToSplitCell.find(cellId)->second;
136 }
137 if(c_noChildren(gridcellId) > 0) continue;
138 if(a_bndryId(cellId) > -1 && m_fvBndryCnd->m_bndryCells->a[a_bndryId(cellId)].m_linkedCellId > -1) continue;
139
140 MFloat cellErrorSquared = 0.0;
141 for(MInt var = 0; var < noVars; var++) {
142 if(var != 0) {
143 continue; // for LAE, only RHO_U is used
144 }
145 // This analytical solution matches the initial condition prescribed at the start of the
146 // simulation.
147 if(m_initialCondition == 1184) {
148 MFloat pulse_radius = 0;
149 for(MInt spaceId = 0; spaceId < nDim; spaceId++) {
150 pulse_radius += std::pow(a_coordinate(cellId, spaceId) - 0.5 - m_advectionVelocity[spaceId] * m_time, 2.0);
151 }
152 MFloat analyticalSolutionCell = m_rhoVVInfinity[var] * (1.0 + std::exp(-pulse_radius * 20.0));
153 cellErrorSquared += POW2(analyticalSolutionCell - a_variable(cellId, var));
154 }
155 }
156 domainErrorSquared += cellErrorSquared;
157 }
158 m_log << "time: " << m_time << " domainerror: " << std::sqrt(domainErrorSquared) << std::endl;
159
160 return true;
161}
Collector< FvBndryCell< nDim, SysEqn > > * m_bndryCells
MBool a_isPeriodic(const MInt cellId) const
Returns IsPeriodic of the cell cellId.
FvBndryCndXD< nDim_, FvSysEqnNS< 2 > > * m_fvBndryCnd
MFloat & a_variable(const MInt cellId, const MInt varId)
Returns conservative variable v of the cell cellId for variables varId.
MBool a_hasProperty(const MInt cellId, const Cell p) const
Returns grid cell property p of the cell cellId.
MInt c_noChildren(const MInt cellId) const
Returns the number of children of the cell cellId.
MFloat & a_coordinate(const MInt cellId, const MInt dir)
Returns the coordinate of the cell from the fvcellcollector cellId for dimension dir.
MInt & a_bndryId(const MInt cellId)
Returns the bndryId of the cell cellId.
constexpr Real POW2(const Real x)
Definition: functions.h:119
InfoOutFile m_log
void const MInt cellId
Definition: collector.h:239

Member Data Documentation

◆ m_advectionVelocity

MFloat FvApeSolver2D::m_advectionVelocity[nDim]

Definition at line 19 of file fvcartesianapesolver2d.h.

◆ nDim

constexpr const MInt FvApeSolver2D::nDim = 2
staticconstexprprivate

Definition at line 22 of file fvcartesianapesolver2d.h.


The documentation for this class was generated from the following files: