MAIA bb96820c
Multiphysics at AIA
Loading...
Searching...
No Matches
LsCartesianSolverSemiLagrangian< nDim > Class Template Reference

A LS solver based on the semi-lagrangian method // TODO labels:LS documentation LsCartesianSolverSemiLagrangian. More...

#include <lscartesiansolversemilagrangian.h>

Inheritance diagram for LsCartesianSolverSemiLagrangian< nDim >:
[legend]
Collaboration diagram for LsCartesianSolverSemiLagrangian< nDim >:
[legend]

Public Types

using CartesianSolver = typename maia::CartesianSolver< nDim, LsCartesianSolverSemiLagrangian >
 
using Grid = typename CartesianSolver::Grid
 
using GridProxy = typename CartesianSolver::GridProxy
 
using Geom = Geometry< nDim >
 
- Public Types inherited from LsCartesianSolver< nDim >
using Cell = typename maia::grid::tree::Tree< nDim_ >::Cell
 
using GCellCollector = maia::ls::collector::GCells< nDim_ >
 
using PropertyReference = typename GCellCollector::BitsetType::reference
 
using CartesianSolver = typename maia::CartesianSolver< nDim, LsCartesianSolver >
 
using Grid = typename CartesianSolver::Grid
 
using GridProxy = typename CartesianSolver::GridProxy
 
using Geom = Geometry< nDim >
 
- Public Types inherited from maia::CartesianSolver< nDim_, LsCartesianSolver< nDim_ > >
using Grid = CartesianGrid< nDim >
 
using GridProxy = typename maia::grid::Proxy< nDim >
 
using Geom = Geometry< nDim >
 
using TreeProxy = maia::grid::tree::TreeProxy< nDim >
 
using Cell = maia::grid::tree::Cell
 

Public Member Functions

 LsCartesianSolverSemiLagrangian (const MInt solverId, const MBool *propertiesGroups, GridProxy &gridProxy_, Geom &geometry_, const MPI_Comm comm)
 
- Public Member Functions inherited from LsCartesianSolver< nDim >
MFloat time () const override
 Return the time. More...
 
MFloat timeStep () const
 Returns the timeStep. More...
 
MInt noVariables () const override
 Return the number of variables. More...
 
virtual void saveSolverSolution (const MBool, const MBool)
 
virtual void cleanUp ()
 
Geomgeometry () const
 Access the solver's geometry. More...
 
 LsCartesianSolver (MInt, const MBool *, GridProxy &gridProxy_, Geom &geometry_, const MPI_Comm comm)
 
CHECKNORMAL< nDim > & checkNormal () const
 
MInt noSolverTimers (const MBool allTimings) override
 
MInt maxLevel () const
 
MFloat c_cellLengthAtCell (const MInt gCellId) const
 
MFloat cellVolumeAtCell (const MInt gCellId) const
 
MFloat c_cellLengthAtLevel (const MInt level) const
 
MInt noInternalCells () const override
 Return the number of internal cells within this solver. More...
 
void extendVelocity (const MInt set)
 
MInt a_noCells () const
 
void a_appendCollector ()
 
void a_resetPropertiesSolver (const MInt cellId)
 Returns property p of the cell cellId. More...
 
maia::ls::cell::BitsetType::reference a_isBndryCellG (const MInt cellId)
 
MBool a_isBndryCellG (const MInt cellId) const
 
MInt a_maxGCellLevel (const MInt set=-1) const
 
MFloata_extensionVelocityG (const MInt cellId, const MInt dim, const MInt set)
 Returns fExt of the cell cellId for index n. More...
 
MFloat a_extensionVelocityG (const MInt cellId, const MInt dim, const MInt set) const
 Returns fExt of the cell cellId for index n. More...
 
maia::ls::cell::BitsetTypeSet::reference a_inBandG (const MInt cellId, const MInt set)
 
MBool a_inBandG (const MInt cellId, const MInt set) const
 
maia::ls::cell::BitsetTypeSet::reference a_isGBoundaryCellG (const MInt cellId, const MInt set)
 
MBool a_isGBoundaryCellG (const MInt cellId, const MInt set) const
 
MBool a_isGZeroCell (const MInt cellId, const MInt set) const
 
maia::ls::cell::BitsetTypeSet::reference a_isGZeroCell (const MInt cellId, const MInt set)
 
MBool a_wasGZeroCell (const MInt cellId, const MInt set) const
 
maia::ls::cell::BitsetTypeSet::reference a_wasGZeroCell (const MInt cellId, const MInt set)
 
maia::ls::cell::BitsetTypeSet::reference a_hasPositiveSign (const MInt cellId, const MInt set)
 Returns the hasPositiveSigncellId for the setset. More...
 
MBool a_hasPositiveSign (const MInt cellId, const MInt set) const
 Returns the hasPositiveSigncellId for the setset. More...
 
MInt a_levelSetSign (const MInt cellId, const MInt set)
 Returns the signed (MInt) version of hasPositiveSigncellId for the setset. More...
 
MFloata_normalVectorG (const MInt cellId, const MInt dim, const MInt set)
 Returns normalVector of the cell cellId for index n. More...
 
MFloat a_normalVectorG (const MInt cellId, const MInt dim, const MInt set) const
 Returns normalVector of the cell cellId for index n. More...
 
maia::ls::cell::BitsetType::reference a_nearGapG (const MInt cellId)
 
MBool a_nearGapG (const MInt cellId) const
 
maia::ls::cell::BitsetType::reference a_regridTriggerG (const MInt cellId)
 
MBool a_regridTriggerG (const MInt cellId) const
 
MInta_bodyIdG (const MInt cellId, const MInt set)
 Returns bodyId of the cell cellId for set set. More...
 
MInt a_bodyIdG (const MInt cellId, const MInt set) const
 Returns bodyId of the cell cellId for set set. More...
 
MInta_secondBodyId (const MInt cellId)
 Returns secondBodyId of the cell cellId for set set. More...
 
MInt a_secondBodyId (const MInt cellId) const
 Returns secondBodyId of the cell cellId for set set. More...
 
MFloata_curvatureG (const MInt cellId, const MInt set)
 Returns curvature of the cell cellId for set set. More...
 
MFloat a_curvatureG (const MInt cellId, const MInt set) const
 Returns curvature of the cell cellId for set set. More...
 
MFloata_levelSetFunctionG (const MInt cellId, const MInt set)
 Returns levelSetFunction of the cell cellId. More...
 
MFloat a_levelSetFunctionG (const MInt cellId, const MInt set) const
 Returns levelSetFunction of the cell cellId. More...
 
MFloata_oldLevelSetFunctionG (const MInt cellId, const MInt set)
 Returns the old levelSetFunction of the cell cellId. More...
 
MFloat a_oldLevelSetFunctionG (const MInt cellId, const MInt set) const
 Returns the old levelSetFunction of the cell cellId. More...
 
MFloata_levelSetFunctionSlope (const MInt cellId, const MInt dim, const MInt set)
 Returns ls-FunctionSlope of the cell cellId for set dim set. More...
 
MFloat a_levelSetFunctionSlope (const MInt cellId, const MInt dim, const MInt set) const
 Returns ls-FunctionSlope of the cell cellId for set dim set. More...
 
MFloata_levelSetRHS (const MInt cellId, const MInt set)
 Returns ls-RHS of the cell cellId for set set. More...
 
MFloat a_levelSetRHS (const MInt cellId, const MInt set) const
 Returns ls-RHS of the cell cellId for set set. More...
 
MFloata_correctedBurningVelocity (const MInt cellId, const MInt set)
 Returns corrected burning velocity of the cell cellId for set set. More...
 
MFloat correctedBurningVelocity (const MInt cellId, const MInt set) const
 Returns corrected burning velocity of the cell cellId for set set. More...
 
MLonga_containingCell (const MInt cellId, const MInt body)
 Returns the containing cellcellId. More...
 
MLong a_containingCell (const MInt cellId, const MInt body) const
 Returns the containing cellcellId. More...
 
MInta_containingDomain (const MInt cellId, const MInt body)
 Returns the containing DomaincellId. More...
 
MInt a_containingDomain (const MInt cellId, const MInt body) const
 Returns the containing DomaincellId. More...
 
MFloata_gapWidth (const MInt id)
 Returns the gap widthcellId. More...
 
MFloat a_gapWidth (const MInt id) const
 Returns the gap widthcellId. More...
 
MInta_potentialGapCell (const MInt id)
 Returns the potential gap cellcellId. More...
 
MInt a_potentialGapCell (const MInt id) const
 Returns the potential gap cellcellId. More...
 
MInta_potentialGapCellClose (const MInt id)
 Returns the potential gap cell closecellId. More...
 
MInt a_potentialGapCellClose (const MInt id) const
 Returns the potential gap cell closecellId. More...
 
MFloata_meanCoord (const MInt dir)
 
MFloat a_meanCoord (const MInt dir) const
 
MInt c_noCells () const
 
MInt c_parentId (const MInt gCellId) const
 
MInt c_noChildren (const MInt gCellId) const
 
MInt c_childId (const MInt gCellId, const MInt pos) const
 
MFloat c_coordinate (const MInt gCellId, const MInt dim) const
 Returns the coordinate of the cell cellId for direction dim. More...
 
MInt c_neighborId (const MInt gCellId, const MInt dir) const
 
MInt a_bandNghbrIdsG (const MInt cellId, const MInt dir, const MInt set) const
 Returns bandNeighborId of the cell cellId for index n. More...
 
MInt a_hasNeighbor (const MInt gCellId, const MInt dir) const
 Returns noNeighborIds of the gcell CellId variables varId. More...
 
MBool a_isWindow (const MInt gCellId) const
 Returns IsWindow of the cell cellId. More...
 
maia::ls::cell::BitsetType::reference a_isWindow (const MInt gCellId)
 Returns IsWindow of the cell cellId. More...
 
MLong c_globalId (const MInt gCellId) const
 
MInt a_domainId (const MLong gGlobalId)
 
MInt a_localId (const MLong gGlobalId)
 
MBool c_isLeafCell (const MInt gCellId) const
 
MBool a_isHalo (const MInt gCellId) const
 Returns IsHalo of the cell cellId. More...
 
maia::ls::cell::BitsetType::reference a_isHalo (const MInt gCellId)
 Returns IsHalo of the cell cellId. More...
 
MInt a_level (const MInt gCellId) const
 Returns the level of the gcell gCellId. More...
 
MFloata_flameSpeedG (const MInt cellId, const MInt set)
 Returns flameSpeed of the cell cellId for index n. More...
 
MFloat a_flameSpeedG (const MInt cellId, const MInt set) const
 Returns flameSpeed of the cell cellId for index n. More...
 
MBool forceAdaptation () override
 Returns the levelSet-Adaptation-forcing. More...
 
constexpr MInt a_bandCellId (MInt id, MInt set) const
 
constexpr MInt a_internalBandCellId (MInt id, MInt set) const
 
constexpr MInt a_bandBndryCellId (MInt id, MInt set) const
 
constexpr MInt a_G0CellId (MInt id, MInt set) const
 
constexpr MInt a_gBndryCellId (MInt id, MInt set) const
 
constexpr MInt a_noBandCells (MInt set) const
 
constexpr MInt a_noInternalBandCells (MInt set) const
 
constexpr MInt a_noBandBndryCells (MInt set) const
 
constexpr MInt a_noG0Cells (MInt set) const
 
constexpr MInt a_noGBndryCells (MInt set) const
 
MInta_bandLayer (MInt id, MInt set)
 
MInt a_bandLayer (MInt id, MInt set) const
 
MInta_internalBandLayer (MInt id, MInt set)
 
MInt a_internalBandLayer (MInt id, MInt set) const
 
MInt getCurrentTimeStep () const override
 
void resetExtensionVelocity ()
 
void initSolver () override
 
void initLocalizedLevelSetCG ()
 
void createBaseGgridCG ()
 
void createGgridCG (MBool=false)
 
void generateListOfGExchangeCellsCG ()
 
void buildLevelSetTube (MInt mode=-1)
 
void fastBuildLevelSetTubeCG ()
 
void testCellsCG ()
 
void restartLocalizedLevelSetCG ()
 
MInt loadLevelSetGridFlowVarsParCG (const MChar *fileName)
 
virtual void writeRestartLevelSetFileCG (MBool, const MString &, const MString &)
 
void prepareAdaptation () override
 prepare adaptation for split adaptation before the adaptation loop More...
 
void setSensors (std::vector< std::vector< MFloat > > &sensors, std::vector< MFloat > &sensorWeight, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MInt > &sensorSolverId) override
 set solver sensors for split adaptation within the adaptation loop More...
 
void postAdaptation () override
 post adaptation for split adaptation within the adaptation loop More...
 
void finalizeAdaptation () override
 finalize adaptation for split sadptation after the adaptation loop More...
 
void sensorInterface (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen) override
 
void removeChilds (const MInt) override
 Coarsen the given cell. More...
 
void removeCell (const MInt) override
 Remove the given cell. More...
 
void refineCell (const MInt) override
 Refine the given cell. More...
 
void swapCells (const MInt, const MInt) override
 Swap the given cells. More...
 
void swapProxy (const MInt cellId0, const MInt cellId1) override
 Swap the given cells. More...
 
MInt cellOutside (const MFloat *, const MInt, const MInt) override
 Check whether cell is outside the fluid domain. More...
 
void exchangeAllLevelSetData ()
 
void exchangeLevelSet ()
 
void exchangeLs (MFloat *, MInt, MInt)
 
void exchangeGapInfo ()
 
void initAzimuthalExchange ()
 
void resizeGridMap () override
 Swap the given cells. More...
 
MBool levelSetAdaptationTrigger ()
 
void getContainingCellFromNeighbor (MInt body, MInt cellId, MFloat *xCoord, MFloat *xOld)
 
MInt getContainingCellHalo (MFloat *point)
 
void finalizeInitSolver () override
 
void initRotatingLS ()
 
void resetContainingGCells ()
 
void updateContainingGCells (MInt mode=0)
 
void copyWindowToHaloIds ()
 
void checkHaloCells ()
 
void setInterfaceList (MIntScratchSpace &interfaceCells)
 
void resetSolverFull ()
 
void resetSolver () override
 Reset the solver/solver for load balancing. More...
 
void balance (const MInt *const noCellsToReceiveByDomain, const MInt *const noCellsToSendByDomain, const MInt *const targetDomainsByCell, const MInt oldNoCells) override
 
void balancePre () override
 
void balancePost () override
 
void finalizeBalance () override
 
MBool hasSplitBalancing () const override
 Return if load balancing for solver is split into multiple methods or implemented in balance() More...
 
void localToGlobalIds () override
 
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
 
void getCellDataDlb (const MInt dataId, const MInt oldNoCells, const MInt *const bufferIdToCellId, MInt *const data) override
 Return solver data for DLB. More...
 
void getCellDataDlb (const MInt dataId, const MInt oldNoCells, const MInt *const bufferIdToCellId, MFloat *const data) override
 
void setCellDataDlb (const MInt dataId, const MInt *const data) override
 Set solver data for DLB. More...
 
void setCellDataDlb (const MInt dataId, const MFloat *const data) override
 
void setCellWeights (MFloat *) override
 Set cell weights. More...
 
MInt noLoadTypes () const override
 
void getDefaultWeights (MFloat *weights, std::vector< MString > &names) const override
 
void getLoadQuantities (MInt *const loadQuantities) const override
 
MFloat getCellLoad (const MInt cellId, const MFloat *const weights) const override
 
void getSolverTimings (std::vector< std::pair< MString, MFloat > > &solverTimings, const MBool allTimings) override
 
void limitWeights (MFloat *) override
 
void getDomainDecompositionInformation (std::vector< std::pair< MString, MInt > > &domainInfo) override
 
void reconstructOldGField ()
 
void rotateLevelSet (MInt returnMode, MFloat *cellData, MInt body, const MFloat *xCoord, const MFloat *xCenter, const MFloat *angle)
 
void processRotatingLevelSet (MFloat &phi, MInt &cellId, MInt &domId, MFloat *point, MInt set)
 
MInt checkSecondLayerCells (std::vector< MInt > &diag2Cells, std::map< MInt, std::vector< MInt > > &dirCode, MFloat *point)
 
void prepareGlobalComm (MInt *noCellsToDom)
 
void globalToLocalIdsContainingCells ()
 
void localToGlobalIdsContainingCells ()
 
void computeLevelSetRHS ()
 
void levelSetConstrainedReinitialization (MInt methodId, MInt startSet, MInt endSet, MInt gapMode)
 
void levelSetHighOrderConstrainedReinitialization (MInt methodId, MInt startSet, MInt endSet, MInt gapMode)
 
void maintainOuterBandLayers (MInt order, MInt startSet, MInt endSet)
 
void determineMinMaxMeanInterfacePosition ()
 
void determineSteadyFlameLength ()
 
void determineMinMaxMeanRegionInterfacePosition (MFloat xRegN, MFloat xRegP, MFloat yRegN, MFloat yRegP, MInt set)
 
void reinitBand (MInt startSet, MInt endSet)
 
void initializeGControlPoint ()
 this function is used to initialize the control point. More...
 
void initializeIntegrationScheme ()
 
void initializeIntegrationScheme_semiLagrange ()
 
void setGCellBndryProperty ()
 
void applyLevelSetBoundaryConditions ()
 
void initializeGField ()
 Initializes the solver values with the values of the undisturbed flow The values are given by the property file. The conservative and primitive variables are calculated and set with the given values as also the variables of the cells. More...
 
void constructGFieldFromSTL (MInt ConstructFlag)
 Used for initializing G field into the domain. ConstructFlag == 0: only reinitialization part will be called (used cell-type depends on the initMode) == 1: only initialization part will be called (which uses all cells in the domain) == 2: both initialization and reinitialization part will be called (currently unused!) (however only cells in the band are used for the initialization, only usefull after band-cells have been found!) == 3: only initialization part will be called (which uses all band-cells in the domain) only usefull after band-cells have been found! More...
 
void rotateSTL (MInt direction)
 
void rotateSTL (MInt direction, MInt body, MFloat *center)
 
void spatiallyAdaptiveCorrectionFromSTL ()
 this function does a correction based on the curvature of the geometry. The high curvature regions are corrected, while the low curvature regions are left untouched. The number of the corrected is controlled by the multiple level thresholds. remarks: this works only with control 2 (moving STL). More...
 
void levelSetReinitialization (MInt mode=1)
 
void setBandNewArrivals (MInt computingSet=-1)
 
void updateLowerGridLevels (MInt mode=-1)
 
void updateAllLowerGridLevels (MInt mode=-1)
 
void determineG0Cells (MInt computingSet=-1)
 
void determineBandCells (MInt mode=-1)
 
void updateBndryCellList ()
 
void resetOutsideCells (MInt mode=-1)
 
void resetOldOutsideCells ()
 
void computeCurvature (MInt mode=-1)
 
void computeCurvaturePeriodic ()
 
void determinePropagationSpeed ()
 
void computeNormalVectors (MInt mode=-1)
 
void computeNormalVectorsPeriodic ()
 
void computeNormalVectorsAtFront ()
 
void computeExtensionVelocityGEQUPVMarksteinOpt (MFloat *FfluidDensity, MInt set)
 
void computeGCellTimeStep ()
 
void levelSetRestriction ()
 
void computeZeroLevelSetArcLength ()
 
void setUpBodyToSetTable ()
 
void computeBodyPropertiesForced (MInt returnMode, MFloat *bodyData, MInt body, MFloat time, MBool printPosition=false)
 returns a specific property of the specifuec body used to provide a unique function for both level-set and moving boundary code return mode: 1: body venter 2: body velocity 3: body acceleration 4: body temperature More...
 
void identifyBodies (MInt mode=0)
 sets a_bodyIdG(gCells,set) for all sets exept for the collected levelset (this is done in buildCollectedLevelSet()) More...
 
void setUpLevelSetInterpolationStencil (MInt cellId, MInt *interpolationCells, MInt position)
 
MInt setUpLevelSetInterpolationStencil (MInt cellId, MInt *interpolationCells, MFloat *point)
 
void shiftOldLevelSetField (MInt dir, MInt set, MInt body)
 
void buildCollectedLevelSet (MInt mode=1)
 
void reBuildCollectedLevelSet (MInt mode)
 
void gapHandling ()
 
void levelSetGapCorrect ()
 
void levelSetGapRecorrect ()
 
void finalizeLevelSetInitialization ()
 
void setUpPotentialGapCells ()
 Set up cells, that may be tagged as gap cells during the solver run! Initialises the arrays, according to the specifiec properties: More...
 
void allocateLevelSetMemory ()
 
void allocateRotatingLs ()
 
void initializeCollectedLevelSet (MInt mode)
 
void regionGrowing (MInt cellId, MInt region)
 
void setChildRegions (MInt cellId, MInt region)
 
MBool levelSetSolver ()
 
MBool gRungeKutta ()
 
MBool semiLagrangeTimeStep ()
 
MBool regridLevelSet ()
 
MBool levelSetReinitializationTrigger ()
 
MBool inCell (MInt cellId, MFloat *point)
 
MBool gapCellsExist ()
 
MBool localGapCellsExist ()
 
MFloat firstOrderEikonalSolver (MInt cellListSize, MInt maxIterations, MInt set)
 
MFloat secondOrderEikonalSolver (MFloat *q, const MInt *nghbrs, MInt cellListSize, MInt maxIterations, MInt set)
 
MFloat fifthOrderEikonalSolver (MInt cellListSize, MInt maxIterations, MInt *crCells, MInt noCRCells, MFloat *factors, MInt crMode, MInt set)
 
MFloat computeDistanceFromSTL (MFloat *target, MInt *closestElement, MFloat *closestPoint, MInt set, MFloat sphereRadiusFactor=F5)
 
MFloat interpolateOldLevelSet (MInt *interpolationCells, MFloat *point, MInt referenceSet)
 
MFloat interpolateLevelSet (MInt *interpolationCells, MFloat *point, MInt referenceSet)
 
MInt determineLevelSetSignFromSTL (MFloat *target, MInt set)
 this function checks if the "target" coordinates is inside(return 1) or outside (return -1) STL and return level set sign. More...
 
MInt hyperbolicExtensionOpt (MFloat *q, MInt *cellList, MInt cellListSize, MFloat convergenceCriterion, MInt set)
 
MInt getContainingCell (MFloat *point)
 
MInt getContainingCell (MInt startCell, MFloat *point, MInt set=-1)
 
void exchangeIntBuffers (MInt *, MInt *, MInt, MInt)
 
void exchangeBuffersGlobal (T *sendBuffer, T *receiveBuffer, MInt *, MInt *, MInt *, MInt *, MInt, MInt offset=1)
 
void readLevelSetProperties ()
 
void preTimeStep () override
 
void postTimeStep () override
 
void buildMultipleLevelSet (MInt mode=1)
 
MBool _levelSetSolutionStep ()
 
MBool finalizeLevelSet_ (const MInt t_levelSet, const MInt t_output)
 
MBool solutionStep () override
 
void finalizeLevelSet ()
 
void saveRestartFile (const MBool, MInt *)
 
void writeRestartFile (const MBool, const MBool, const MString, MInt *recalcIdTree) override
 
void reIntAfterRestart (MBool) override
 
MBool prepareRestart (MBool, MBool &) override
 Prepare the solvers for a grid-restart. More...
 
MFloat reduceData (const MInt, MFloat *data, const MInt dataBlockSize=1)
 
MFloat crankAngle (const MFloat, const MInt)
 
void determinePeriodicDistance ()
 
- Public Member Functions inherited from maia::CartesianSolver< nDim_, LsCartesianSolver< nDim_ > >
 CartesianSolver (const MInt solverId, GridProxy &gridProxy_, const MPI_Comm comm, const MBool checkActive=false)
 
MInt minLevel () const
 Read-only accessors for grid data. More...
 
MInt maxLevel () const
 
MInt maxNoGridCells () const
 
MInt maxRefinementLevel () const
 
MInt maxUniformRefinementLevel () const
 
MInt noNeighborDomains () const
 
MInt neighborDomain (const MInt id) const
 
MLong domainOffset (const MInt id) const
 
MInt noHaloLayers () const
 
MInt noHaloCells (const MInt domainId) const
 
MInt haloCellId (const MInt domainId, const MInt cellId) const
 
MInt noWindowCells (const MInt domainId) const
 
MInt windowCellId (const MInt domainId, const MInt cellId) const
 
MString gridInputFileName () const
 
MFloat reductionFactor () const
 
MFloat centerOfGravity (const MInt dir) const
 
MInt neighborList (const MInt cellId, const MInt dir) const
 
const 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)
 
void exchangeData (T *data, const MInt dataBlockSize=1)
 Exchange memory in 'data' assuming a solver size of 'dataBlockSize' per cell. More...
 
void exchangeLeafData (std::function< T &(MInt, MInt)> data, const MInt noDat=1)
 Blocking exchange memory in 'data' assuming a solver size of 'dataBlockSize' per cell NOTE: exchange is only performed on leaf-cells and leaf-NeighborDomains Assumes, that updateLeafCellExchange has been called in the proxy previously! More...
 
void exchangeSparseLeafValues (G getData, S setData, const MInt dataSize, M cellMapping)
 Exchange of sparse data structures on max Level. More...
 
void exchangeAzimuthalPer (T *data, MInt dataBlockSize=1, MInt firstBlock=0)
 Exchange of sparse data structures on max Level. More...
 
void collectVariables (T *variablesIn, ScratchSpace< T > &variablesOut, const std::vector< MString > &variablesNameIn, std::vector< MString > &variablesNameOut, const MInt noVars, const MInt noCells, const MBool reverseOrder=false)
 generalised helper function for writing restart files! This is necessary for example if the minLevel shall be raised at the new restart! More...
 
void collectVariables (T **variablesIn, ScratchSpace< T > &variablesOut, const std::vector< MString > &variablesNameIn, std::vector< MString > &variablesNameOut, const MInt noVars, const MInt noCells)
 generalised helper function for writing restart files! This is necessary for example if the minLevel shall be raised at the new restart! More...
 
void saveGridFlowVars (const MChar *fileName, const MChar *gridFileName, const MInt noTotalCells, const MInt noInternal, MFloatScratchSpace &dbVariables, std::vector< MString > &dbVariablesName, MInt noDbVars, MIntScratchSpace &idVariables, std::vector< MString > &idVariablesName, MInt noIdVars, MFloatScratchSpace &dbParameters, std::vector< MString > &dbParametersName, MIntScratchSpace &idParameters, std::vector< MString > &idParametersName, MInt *recalcIds, MFloat time)
 This function writes the parallel Netcdf cartesian grid cell based solution/restart file currently used in PostData, LPT and LS solvers! More...
 
void collectParameters (T, ScratchSpace< T > &, const MChar *, std::vector< MString > &)
 This function collects a single parameters for the massivley parallel IO functions. More...
 
void calcRecalcCellIdsSolver (const MInt *const recalcIdsTree, MInt &noCells, MInt &noInternalCellIds, std::vector< MInt > &recalcCellIdsSolver, std::vector< MInt > &reorderedCellIds)
 Derive recalc cell ids of the solver and reordered cell ids. More...
 
- Public Member Functions inherited from Solver
MString getIdentifier (const MBool useSolverId=false, const MString preString="", const MString postString="_")
 
virtual ~Solver ()=default
 
virtual MInt noInternalCells () const =0
 Return the number of internal cells within this solver. More...
 
virtual MFloat time () const =0
 Return the time. More...
 
virtual MInt noVariables () const
 Return the number of variables. More...
 
virtual void getDimensionalizationParams (std::vector< std::pair< MFloat, MString > > &) const
 Return the dimensionalization parameters of this solver. More...
 
void updateDomainInfo (const MInt domainId, const MInt noDomains, const MPI_Comm mpiComm, const MString &loc)
 Set new domain information. More...
 
virtual 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 ()
 

Additional Inherited Members

- Public Attributes inherited from LsCartesianSolver< nDim >
GCellCollector m_cells
 
Geomm_geometry
 
CHECKNORMAL< nDim > * m_checkNormal
 
MBool m_semiLagrange
 
MFloatm_semiLagrange_xShift_ref
 
LsControlPoint< nDimm_gCtrlPnt
 
MBool m_static_semiLagrangeTimeStep_firstTime
 
MInt m_lsCollectorMode
 
MBool m_LsRotate
 
MBool m_reconstructOldG
 
MInt m_rotatingReinitTrigger
 
MFloatm_semiLagrange_xRot_ref
 
MFloatm_semiLagrange_xRot_STL
 
MIntm_globalSndOffsets
 
MIntm_globalRcvOffsets
 
MIntm_initialGCell
 
std::vector< MIntm_newCells
 
std::map< MInt, MIntm_swapIds
 
std::vector< MIntm_bodiesToCompute
 
MInt m_noBodiesToCompute
 
MIntm_cellDomIds
 
MFloatm_bodyAngularVelocity
 
MFloatm_bodyAngularAcceleration
 
MFloatm_omega
 
MFloatm_bodyRadius
 
MFloat m_referenceLength
 
MFloat m_referenceVelocity
 
MBool m_periodicMovement
 
MInt m_periodicDirection
 
MFloat m_periodicDistance
 
MFloat m_meanCoord [3]
 
std::map< MInt, MIntm_refinedCells
 
MInt m_reconstructBand
 
MBool m_newRefinedBand
 
MInt m_adaptationLevel
 
MBool m_forceAdaptation
 
MBool m_initialRefinement
 
MBool m_adaptationSinceLastRestart
 
MBool m_refineDiagonals
 
std::map< MInt, MIntm_oldG0Cells
 
MBoolm_geometryChange
 
MInt m_maxNoCells
 
MInt m_noSets
 
MInt m_startSet
 
MBool m_buildCollectedLevelSetFunction
 
MBool m_determineG0CellsMode
 
MInt m_noBodyBndryCndIds
 
MIntm_levelSetSign
 
MBoolm_computeSet
 
MBoolm_computeSet_tmp
 
MBoolm_computeSet_backup
 
MBoolm_changedSet
 
MBool m_GFieldInitFromSTL
 
MBool m_GFieldFromSTLInitCheck
 
MInt m_STLReinitMode
 
MBool m_GWithReConstruction
 
MIntm_bodyToSetTable
 
MIntm_noBodiesInSet
 
MInt ** m_setToBodiesTable
 
MIntm_bodyBndryCndIds
 
MInt m_noInitGFieldFromSTLBndCndIds
 
MIntm_initGFieldFromSTLBndCndIds
 
MBool m_highOrderDeltaFunction
 
MBool m_fourthOrderNormalCurvatureComputation
 
MBool m_curvatureDamp
 
MFloat m_curvatureDampFactor
 
MBool m_useLocalMarksteinLength
 
MBool m_sharpDamp
 
MBool m_hyperbolicCurvature
 
MInt m_gRKMethod
 
MString m_levelSetDiscretizationScheme
 
MInt m_gBandWidth
 
MInt m_gShadowWidth
 
MInt m_gShadowWidthRans
 
MInt m_gInnerBound
 
MBool m_gCellLevelJump
 
MFloat m_gCellDistance
 
MFloat m_FgCellDistance
 
MInt m_computeExtVel
 
MBool m_smoothExtVel
 
MInt m_extVelIterations
 
MFloat m_extVelConvergence
 
MFloat m_extVelCFL
 
MString m_reinitMethod
 
MInt m_gReinitIterations
 
MInt m_minReinitializationSteps
 
MInt m_maintenanceIterations
 
MBool m_guaranteeReinit
 
MFloat m_reinitCFL
 
MInt m_intermediateReinitIterations
 
MFloat m_reinitConvergence
 
MFloat m_reinitConvergenceReset
 
MFloat m_reinitThreshold
 
MFloat m_reinitThresholdAvg
 
MFloat m_omegaReinit
 
MFloat m_relaxationFactor
 
MInt m_levelSetTestCase
 
MInt m_levelSetBoundaryCondition
 
MString m_levelSetBC
 
MInt m_noHaloLayers
 
MInt m_reinitInterval
 
MBool m_maintainOuterBandLayers
 
MBool m_writeReinitializationStatistics
 
MBool m_interpolateFlowFieldToFlameFront
 
MBool m_writeOutAllLevelSetFunctions
 
MBool m_writeOutAllExtensionVelocities
 
MBool m_writeOutAllCurvatures
 
MBool m_writeOutAllCorrectedBurningVelocity
 
MBool m_writeOutAllFlameSpeeds
 
MBool m_writeOutAllNormalVectors
 
MIntm_outerBandWidth
 
MIntm_cellList
 
std::vector< MInt > * m_bandCells
 
std::vector< MInt > * m_internalBandCells
 
MIntm_bandLayer
 
MIntm_internalBandLayer
 
std::vector< MInt > * m_bandBndryCells
 
std::vector< MInt > * m_G0Cells
 
std::vector< MInt > * m_gBndryCells
 
MInt m_gRKStep
 
MInt m_nogRKSteps
 
MFloatm_gRKalpha
 
MFloat m_outsideGValue
 
MInt ** m_phiRatioCells
 
MInt m_GCtrlPntMethod
 
MFloatm_signG
 
MFloat ** m_phiRatio
 
MFloatm_correction
 
MFloatm_d
 
MInt ** m_intSendBuffers
 
MInt ** m_intReceiveBuffers
 
MFloat ** m_gSendBuffers
 
MFloat ** m_gReceiveBuffers
 
MFloatm_hypTanLSF
 
MBool m_trackMovingBndry
 
MInt m_trackMbStart
 
MInt m_trackMbEnd
 
MBool m_constructGField
 
MBool m_levelSetMb
 
MBool m_levelSetRans
 
MBool m_levelSetLb
 
MBool m_combustion
 
MBool m_freeSurface
 
MBool m_LSSolver
 
MBool m_levelSetFv
 
MInt m_noEmbeddedBodies
 
MFloatm_maxFlameFrontPosition
 
MFloatm_minFlameFrontPosition
 
MFloatm_meanFlameFrontPosition
 
MFloat m_steadyFlameAngle
 
MFloat m_steadyFlameLength
 
MFloat m_yOffsetFlameTube
 
MFloat m_yOffsetFlameTube2
 
MFloat m_radiusFlameTube
 
MFloat m_radiusFlameTube2
 
MFloat m_xOffsetFlameTube
 
MFloat m_xOffsetFlameTube2
 
MFloat m_marksteinLength
 
MFloat m_marksteinLengthPercentage
 
MFloatm_localMarksteinLength
 
MFloat m_realRadiusFlameTube
 
MBool m_forcing
 
MFloat m_flameRadiusOffset
 
MBool m_twoFlames
 
MFloat m_dampingDistanceFlameBase
 
MFloat m_dampingDistanceFlameBaseExtVel
 
MFloat m_noReactionCells
 
MFloat m_jetHalfWidth
 
MFloat m_jetHalfLength
 
MFloat m_initialFlameHeight
 
MBool m_filterFlameTubeEdges
 
MFloat m_filterFlameTubeEdgesDistance
 
MBool m_useCorrectedBurningVelocity
 
MFloat m_flameSpeed
 
MFloat m_massConsumption
 
MFloat m_arcLength
 
MBool m_plenum
 
MFloat m_rhoFlameTube
 
MFloat m_rhoInfinity
 
MFloatm_oldHypTanLSF
 
MFloatm_hypTanLSFRHS
 
MString m_currentGridFileName
 
MString m_currentFileName
 
MBool m_bodyIdOutput
 
MBool m_maxLevelChange
 
MInt m_initialCondition
 
MInt m_loadBalancingReinitStage
 
MInt m_timeStepMethod
 
MFloat m_cfl
 
MFloat m_time
 
MFloat m_timeStep
 
MBool m_static_identifyBodies_first
 
MFloat m_static_identifyBodies_initialInsidePoints [s_maxNoEmbeddedBodies *3]
 
MFloat m_static_identifyBodies_shiftTime
 
MInt m_noGapCells
 
MInt m_noOldGapCells
 
MBool m_closeGaps
 
MInt m_forceNoGaps
 
MInt m_gapInitMethod
 
MInt m_noGapRegions
 
std::vector< MFloatm_minGapWidth
 
std::vector< MFloatm_minGapWidthDt1
 
MString m_gapReinitMethod
 
MFloat m_gapDeltaMin
 
MFloat m_gapDeltaMinOrig
 
MFloatm_gapAngleClose
 
MFloatm_gapAngleOpen
 
MFloatm_gapSign
 
MBool m_virtualSurgery
 
MFloat m_sphereRadiusLimit
 
MFloat ** m_correctedDistances
 
MIntm_cellIsInDiffRegion
 
MInt m_noInterpolationRegions
 
MInt m_approxNoInterpReg
 
MIntm_interpStartTime
 
MIntm_noInterpTimeSteps
 
MBool m_engineSetup
 
MInt m_G0regionId
 
- Public Attributes inherited from Solver
std::set< MIntm_freeIndices
 
MBool m_singleAdaptation = false
 
MBool m_splitAdaptation = true
 
MBool m_saveSensorData = false
 
- Static Public Attributes inherited from LsCartesianSolver< nDim >
static constexpr MInt nDim
 
static constexpr const MInt m_noCorners
 
static constexpr MInt s_maxNoEmbeddedBodies
 
static constexpr const MInt m_noDirs
 
- Protected Types inherited from maia::CartesianSolver< nDim_, LsCartesianSolver< nDim_ > >
using fun = void(CartesianSolver< nDim, LsCartesianSolver< nDim_ > >::*)(std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt)
 
- Protected Member Functions inherited from maia::CartesianSolver< nDim_, LsCartesianSolver< nDim_ > >
void identifyBoundaryCells (MBool *const isInterface, const std::vector< MInt > &bndCndIds=std::vector< MInt >())
 
void identifyBoundaryCells ()
 
MBool cellIsOnGeometry (MInt cellId, Geometry< nDim > *geom)
 checks whether a cell lies on a certain geometry copied the essential part from identifyBoundaryCells More...
 
void setBoundaryDistance (const MBool *const interfaceCell, const MFloat *const outerBandWidth, MFloatScratchSpace &distance)
 transverses over all neighboring cells for a specified length More...
 
void markSurrndCells (MIntScratchSpace &inList, const MInt bandWidth, const MInt level, const MBool refineDiagonals=true)
 
void receiveWindowTriangles ()
 Receives triangles from neighbors contained in their window cells and inserts them locally. More...
 
void compactCells ()
 Removes all holes in the cell collector and moves halo cells to the back of the collector. More...
 
MInt createCellId (const MInt gridCellId)
 
void removeCellId (const MInt cellId)
 
MInt inCell (const MInt cellId, MFloat *point, MFloat fac=F1)
 
MInt setUpInterpolationStencil (const MInt cellId, MInt *, const MFloat *, std::function< MBool(MInt, MInt)>, MBool allowIncompleteStencil)
 
MFloat interpolateFieldData (MInt *, MFloat *, MInt varId, std::function< MFloat(MInt, MInt)> scalarField, std::function< MFloat(MInt, MInt)> coordinate)
 
MFloat leastSquaresInterpolation (MInt *, MFloat *, MInt varId, std::function< MFloat(MInt, MInt)> scalarField, std::function< MFloat(MInt, MInt)> coordinate)
 
void checkNoHaloLayers ()
 check that each solver has the required number of haloLayers for leaf cells!!! TODO labels:toenhance under production, needs to be cleaned up! More...
 
void mapInterpolationCells (std::map< MInt, MInt > &cellMap)
 
void setHaloCellsOnInactiveRanks ()
 
void patchRefinement (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen)
 
void reOrderCellIds (std::vector< MInt > &reOrderedCells)
 reOrder cellIds before writing the restart file! This is necessary for example if the minLevel shall be raised at the new restart! More...
 
void recomputeGlobalIds (std::vector< MInt > &, std::vector< MLong > &)
 reOrder cellIds before writing the restart file! This is necessary for example if the minLevel shall be raised at the new restart! More...
 
void extractPointIdsFromGrid (Collector< PointBasedCell< nDim > > *&, Collector< CartesianGridPoint< nDim > > *&, const MBool, const std::map< MInt, MInt > &, MInt levelThreshold=999999, MFloat *bBox=nullptr, MBool levelSetMb=false) const
 Creates a list of unique corner points for all cells using a hash map levelThreshold optionally specifies the maximum cell level to be extracted bBox optionally specifies a bounding to box to which the extracted domain shall be truncated. More...
 
- Protected Member Functions inherited from Solver
 Solver (const MInt solverId, const MPI_Comm comm, const MBool isActive=true)
 
MFloat returnLoadRecord () const
 
MFloat returnIdleRecord () const
 
- Protected Attributes inherited from LsCartesianSolver< nDim >
MBool m_static_createBaseGgrid_firstRun
 
- Protected Attributes inherited from maia::CartesianSolver< nDim_, LsCartesianSolver< nDim_ > >
MIntm_rfnBandWidth
 
MInt m_noSensors
 
MInt m_adaptationInterval
 
MInt m_adaptationStep
 
std::vector< MIntm_maxSensorRefinementLevel
 
std::vector< MFloatm_sensorWeight
 
std::vector< MFloatm_sensorDerivativeVariables
 
MBool m_adaptation
 
MBool m_adapts
 
MInt m_noInitialSensors
 
MBool m_resTriggeredAdapt
 
MInt m_noSmoothingLayers
 
MInt m_sensorBandAdditionalLayers
 
MBool m_sensorInterface
 
MBool m_sensorParticle
 
std::vector< MStringm_sensorType
 
MIntm_recalcIds
 
std::vector< funm_sensorFnPtr
 
MInt m_maxNoSets
 
std::vector< MFloatm_azimuthalCartRecCoord
 
const MInt m_revDir [6]
 
const MInt m_noDirs
 
- 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
 

Detailed Description

template<MInt nDim>
class LsCartesianSolverSemiLagrangian< nDim >

Definition at line 16 of file lscartesiansolversemilagrangian.h.

Member Typedef Documentation

◆ CartesianSolver

Definition at line 18 of file lscartesiansolversemilagrangian.h.

◆ Geom

template<MInt nDim>
using LsCartesianSolverSemiLagrangian< nDim >::Geom = Geometry<nDim>

Definition at line 21 of file lscartesiansolversemilagrangian.h.

◆ Grid

template<MInt nDim>
using LsCartesianSolverSemiLagrangian< nDim >::Grid = typename CartesianSolver::Grid

Definition at line 19 of file lscartesiansolversemilagrangian.h.

◆ GridProxy

template<MInt nDim>
using LsCartesianSolverSemiLagrangian< nDim >::GridProxy = typename CartesianSolver::GridProxy

Definition at line 20 of file lscartesiansolversemilagrangian.h.

Constructor & Destructor Documentation

◆ LsCartesianSolverSemiLagrangian()

template<MInt nDim>
LsCartesianSolverSemiLagrangian< nDim >::LsCartesianSolverSemiLagrangian ( const MInt  solverId,
const MBool propertiesGroups,
GridProxy gridProxy_,
Geom geometry_,
const MPI_Comm  comm 
)

Definition at line 10 of file lscartesiansolversemilagrangian.cpp.

14 : LsCartesianSolver<nDim>(solverId, propertiesGroups, gridProxy, geometry, comm) {}
Geom & geometry() const
Access the solver's geometry.
MInt solverId() const
Return the solverId.
Definition: solver.h:425

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