MAIA bb96820c
Multiphysics at AIA
|
#include <lpt.h>
Classes | |
struct | PrimitiveVariables |
Static indices for accessing primitive variables in nDim spatial dimensions. More... | |
Public Types | |
using | CartesianSolver = typename maia::CartesianSolver< nDim, LPT > |
using | Cell = typename maia::grid::tree::Tree< nDim >::Cell |
using | Geom = Geometry< nDim > |
using | Grid = typename CartesianSolver::Grid |
using | GridProxy = typename CartesianSolver::GridProxy |
using | LptCellCollector = maia::lpt::collector::LptCells< nDim > |
Public Types inherited from maia::CartesianSolver< nDim, LPT< 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 | |
Geom & | geometry () const |
Access the solver's geometry. More... | |
LPT (const MInt solverId, GridProxy &gridProxy_, Geom &geometry_, const MPI_Comm comm) | |
Solver constructor. More... | |
virtual | ~LPT () |
LPT (const LPT &)=delete | |
LPT & | operator= (const LPT &)=delete |
void | preTimeStep () override |
prepare the LPT timeStep More... | |
MBool | solutionStep () override |
Time stepping of particles NOTE: the solutionStep is split into sub-steps, to allow for an interleafed computation when coupled with a different solver! More... | |
void | postTimeStep () override |
after the LPT time-Step! More... | |
void | initSolver () override |
void | finalizeInitSolver () override |
void | saveSolverSolution (const MBool, const MBool) override |
void | cleanUp () override |
void | prepareAdaptation () override |
prepare solver adaptation More... | |
void | setSensors (std::vector< std::vector< MFloat > > &, std::vector< MFloat > &, std::vector< std::bitset< 64 > > &, std::vector< MInt > &) override |
set the sensors for a single adaptation step More... | |
void | swapProxy (MInt, MInt) override |
void | resizeGridMap () override |
Swap the given cells. More... | |
void | postAdaptation () override |
post adaptation for split adaptation within the adaptation loop More... | |
void | finalizeAdaptation () override |
reinit the solver after the full adaptation loop! More... | |
void | removeChilds (const MInt) override |
coarseining a cartesian cell More... | |
void | removeCell (const MInt) override |
Remove the given cell. More... | |
void | refineCell (const MInt) override |
refining a cartesian cell More... | |
void | swapCells (const MInt, const MInt) override |
swap Cell information when the grid collector is restructured during adaptation cleanup More... | |
MInt | cellOutside (const MFloat *, const MInt, const MInt) override |
checks if a child lies outSide of the domain! necessary for refinement at the bndry! More... | |
void | sensorParticle (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen) override |
set the sensors around the particle positions to get the markedCells More... | |
void | sensorInterface (std::vector< std::vector< MFloat > > &sensors, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen) override |
set the sensors around the boundary positions to get the markedCells More... | |
MBool | forceAdaptation () override |
Returns the LPT adaptation forcing. More... | |
MBool | prepareRestart (MBool force, MBool &) override |
before writing a restart file More... | |
void | writeRestartFile (const MBool, const MBool, const MString, MInt *) override |
writing a restart File as regularly called from the grid-controller! More... | |
void | writeParticleRestartFile () |
Write particle restart file. More... | |
void | writeCellSolutionFile (const MString &, MInt *) |
Write lpt cell based solution file currently ony used for debugging! More... | |
void | reIntAfterRestart (MBool) override |
void | saveDebugRestartFile () |
writing a restart File NOTE: for debugging purposes only! More... | |
void | writeRestartFile (MBool) override |
void | setCellWeights (MFloat *) override |
set cell weight for partitioning More... | |
void | getSolverTimings (std::vector< std::pair< std::string, MFloat > > &, const MBool allTimings) override |
Get solver timings. More... | |
void | getDefaultWeights (MFloat *weights, std::vector< MString > &names) const override |
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 | limitWeights (MFloat *) override |
Limit weight of base cell. More... | |
void | getDomainDecompositionInformation (std::vector< std::pair< MString, MInt > > &domainInfo) override |
Return decomposition information, i.e. number of local elements,... More... | |
MInt | noSolverTimers (const MBool allTimings) override |
MInt | noLoadTypes () const override |
void | resetSolverFull () |
reset the solver during balancing More... | |
void | resetSolver () override |
actually doing some pre-balance-stuff More... | |
void | balancePre () override |
reset the solver during balancing More... | |
void | balancePost () override |
Reinitialize solver after setting solution data in DLB. More... | |
void | finalizeBalance () override |
re-inits the solver after the balance More... | |
void | cancelMpiRequests () override |
actually doing same pre-partitioneing stuff during balcne 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 cellId) 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, 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 |
Store the solver data for a given data id ordered in the given buffer for DLB. More... | |
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 |
Set the solver cell data after 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 for DLB (same on each domain) More... | |
MBool | hasSplitBalancing () const override |
Return if load balancing for solver is split into multiple methods or implemented in balance() More... | |
MFloat | computeTimeStep () |
computes the non-dimensional LPT time-step on the assumption that a particle may only travel for a complete cell length with cfl = 1 at current velocity! More... | |
MFloat | timeStep () |
void | forceTimeStep (const MFloat timeStep) |
MInt | a_timeStepComputationInterval () |
MInt | a_hasNeighbor (const MInt cellId, const MInt dir) const |
MInt | mpiTag (const MString exchangeType) |
MFloat | reduceData (const MInt cellId, MFloat *data, const MInt dataBlockSize=1, const MBool average=true) |
reduce data to lower level More... | |
template<class LPTParticle = LPTSpherical<nDim>> | |
MInt | a_noParticles () |
MInt | a_noSphericalParticles () const |
MInt | a_noEllipsoidalParticles () const |
MInt | a_noCells () const |
template<class LPTParticle > | |
std::vector< LPTParticle > & | a_particleList () |
MFloat & | a_volumeFraction (const MInt cellId) |
MFloat | a_volumeFraction (const MInt cellId) const |
MInt & | a_noParticlesInCell (const MInt cellId) |
MInt | a_noParticlesInCell (const MInt cellId) const |
MInt & | a_noEllipsoidsInCell (const MInt cellId) |
MInt | a_noEllipsoidsInCell (const MInt cellId) const |
MInt & | a_bndryCellId (const MInt cellId) |
MInt | a_bndryCellId (const MInt cellId) const |
MFloat & | a_fluidVariable (const MInt cellId, const MInt var) |
MFloat | a_fluidVariable (const MInt cellId, const MInt var) const |
MFloat & | a_fluidVelocity (const MInt cellId, const MInt dim) |
MFloat | a_fluidVelocity (const MInt cellId, const MInt dim) const |
MFloat & | a_fluidDensity (const MInt cellId) |
MFloat | a_fluidDensity (const MInt cellId) const |
MFloat & | a_fluidPressure (const MInt cellId) |
MFloat | a_fluidPressure (const MInt cellId) const |
MFloat & | a_fluidTemperature (const MInt cellId) |
MFloat | a_fluidTemperature (const MInt cellId) const |
MFloat & | a_fluidSpecies (const MInt cellId) |
MFloat | a_fluidSpecies (const MInt cellId) const |
MFloat & | a_heatFlux (const MInt cellId) |
MFloat | a_heatFlux (const MInt cellId) const |
MFloat & | a_massFlux (const MInt cellId) |
MFloat | a_massFlux (const MInt cellId) const |
MFloat & | a_momentumFlux (const MInt cellId, const MInt dim) |
MFloat | a_momentumFlux (const MInt cellId, const MInt dim) const |
MFloat & | a_workFlux (const MInt cellId) |
MFloat | a_workFlux (const MInt cellId) const |
MFloat & | a_velocitySlope (const MInt cellId, const MInt varId, const MInt dir) |
MFloat | a_velocitySlope (const MInt cellId, const MInt varId, const MInt dir) const |
void | a_resetPropertiesSolver (const MInt cellId) |
MBool | a_isHalo (const MInt cellId) const |
maia::lpt::cell::BitsetType::reference | a_isHalo (const MInt cellId) |
MBool | a_isWindow (const MInt cellId) const |
maia::lpt::cell::BitsetType::reference | a_isWindow (const MInt cellId) |
MBool | a_isValidCell (const MInt cellId) const |
maia::lpt::cell::BitsetType::reference | a_isValidCell (const MInt cellId) |
MBool | a_regridTrigger (const MInt cellId) const |
maia::lpt::cell::BitsetType::reference | a_regridTrigger (const MInt cellId) |
MBool | a_isBndryCell (const MInt cellId) const override |
const MFloat & | a_coordinate (const MInt cellId, const MInt dim) const |
template<class P , MInt a, MInt b> | |
void | interpolateAndCalcWeights (P &particle, const MInt cellId, const MFloat *position, const MFloat *interpolatedVar, std::vector< MFloat > &weight) |
template<MInt a, MInt b, MBool interpolateVelocitySlopes> | |
void | interpolateVariablesLS (const MInt cellId, const MFloat *const position, MFloat *const interpolatedVar) |
calculates interpolated variables (in the range a, b) for a given position in a given cell More... | |
template<MInt a, MInt b> | |
void | interpolateVariablesLS (const MInt cellId, const MFloat *const position, MFloat *const interpolatedVar) |
void | updateFluidFraction () |
MFloat | injectionDuration () const |
MFloat | timeSinceSOI () const |
MInt | injectorCellId () const |
MInt | globalNoParticles () |
MInt | globalNoEllipsoids () |
template<class LPTParticle > | |
MBool | pushToQueue (std::vector< std::map< MInt, MInt > > &pointsTo, const MInt partPos) |
MFloat | time () const override |
Return the time. More... | |
MInt | noVariables () const override |
Return the number of variables. More... | |
MInt | c_noCells () const |
MInt | c_childId (const MInt cellId, const MInt pos) const |
MInt | c_noChildren (const MInt cellId) const |
MInt | c_parentId (const MInt cellId) const |
MFloat | c_cellLengthAtLevel (const MInt level) const |
MFloat | c_cellLengthAtCell (const MInt cellId) const |
MInt | c_level (const MInt cellId) const |
MInt | a_level (const MInt cellId) const |
MFloat | c_cellVolume (const MInt cellId) const |
MFloat | c_coordinate (const MInt cellId, const MInt dir) const |
MBool | c_isLeafCell (const MInt cellId) const |
MLong | c_globalId (const MInt cellId) const |
MInt | noInternalCells () const override |
Return the number of internal cells within this solver. More... | |
MInt | domainId () const override |
Return the domainId (rank) More... | |
MInt | noDomains () const override |
MInt | c_hasNeighbor (const MInt cellId, const MInt dir) const |
MInt | c_neighborId (const MInt cellId, const MInt dir) const |
MBool | a_validCell (const MInt cellId) |
void | loadSampleVariables (MInt timeStep) |
void | getSampleVariables (MInt cellId, const MFloat *&vars) |
void | getSampleVariables (const MInt cellId, std::vector< MFloat > &) |
void | calculateHeatRelease () |
void | getHeatRelease (MFloat *&heatRelease) |
Public Member Functions inherited from maia::CartesianSolver< nDim, LPT< nDim > > | |
CartesianSolver (const MInt solverId, GridProxy &gridProxy_, const MPI_Comm comm, const MBool checkActive=false) | |
MInt | minLevel () const |
Read-only accessors for grid data. More... | |
MInt | maxLevel () const |
MInt | maxNoGridCells () const |
MInt | maxRefinementLevel () const |
MInt | maxUniformRefinementLevel () const |
MInt | noNeighborDomains () const |
MInt | neighborDomain (const MInt id) const |
MLong | domainOffset (const MInt id) const |
MInt | noHaloLayers () const |
MInt | noHaloCells (const MInt domainId) const |
MInt | haloCellId (const MInt domainId, const MInt cellId) const |
MInt | noWindowCells (const MInt domainId) const |
MInt | windowCellId (const MInt domainId, const MInt cellId) const |
MString | gridInputFileName () const |
MFloat | reductionFactor () const |
MFloat | centerOfGravity (const MInt dir) const |
MInt | neighborList (const MInt cellId, const MInt dir) const |
const MLong & | localPartitionCellGlobalIds (const MInt cellId) const |
MLong | localPartitionCellOffsets (const MInt index) const |
MInt | noMinCells () const |
MInt | minCell (const MInt id) const |
const MInt & | haloCell (const MInt domainId, const MInt cellId) const |
const MInt & | windowCell (const MInt domainId, const MInt cellId) const |
MBool | isActive () const override |
constexpr GridProxy & | grid () const |
GridProxy & | grid () |
virtual void | sensorDerivative (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorDivergence (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorTotalPressure (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorEntropyGrad (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorEntropyQuot (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorVorticity (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorInterface (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
void | sensorLimit (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt, std::function< MFloat(MInt)>, const MFloat, const MInt *, const MBool, const MBool allowCoarsening=true) |
simple sensor to apply a limit for a value More... | |
void | sensorSmooth (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
sensor to smooth level jumps NOTE: only refines additional cells to ensure a smooth level transition this requires that all other sensors are frozen i.e. no refine/coarse sensors set! More... | |
void | sensorBand (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
This sensor generates a max refinement band around the cells with max refinement level. In order for it to work, the property addedAdaptationSteps has to be equal to /maxRefinementLevel() - minLevel()/. This sensor also ensures a smooth transition between levels. Do not use together with sensorSmooth. More... | |
virtual void | sensorMeanStress (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorParticle (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorSpecies (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
virtual void | sensorPatch (std::vector< std::vector< MFloat > > &sensor, std::vector< std::bitset< 64 > > &sensorCellFlag, std::vector< MFloat > &sensorWeight, MInt sensorOffset, MInt sen) |
virtual void | sensorCutOff (std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
void | saveSensorData (const std::vector< std::vector< MFloat > > &sensors, const MInt &level, const MString &gridFileName, const MInt *const recalcIds) override |
Saves all sensor values for debug/tunig purposes. More... | |
void | assertValidGridCellId (const MInt) const |
MLong | c_parentId (const MInt cellId) const |
Returns the grid parent id of the cell cellId . More... | |
MLong | c_neighborId (const MInt cellId, const MInt dir) const |
Returns the grid neighbor id of the grid cell cellId dir . More... | |
MInt | c_noCells () const |
MInt | c_level (const MInt cellId) const |
MLong | c_globalGridId (const MInt cellId) |
void | exchangeData (T *data, const MInt dataBlockSize=1) |
Exchange memory in 'data' assuming a solver size of 'dataBlockSize' per cell. More... | |
void | exchangeLeafData (std::function< T &(MInt, MInt)> data, const MInt noDat=1) |
Blocking exchange memory in 'data' assuming a solver size of 'dataBlockSize' per cell NOTE: exchange is only performed on leaf-cells and leaf-NeighborDomains Assumes, that updateLeafCellExchange has been called in the proxy previously! More... | |
void | exchangeSparseLeafValues (G getData, S setData, const MInt dataSize, M cellMapping) |
Exchange of sparse data structures on max Level. More... | |
void | exchangeAzimuthalPer (T *data, MInt dataBlockSize=1, MInt firstBlock=0) |
Exchange of sparse data structures on max Level. More... | |
void | collectVariables (T *variablesIn, ScratchSpace< T > &variablesOut, const std::vector< MString > &variablesNameIn, std::vector< MString > &variablesNameOut, const MInt noVars, const MInt noCells, const MBool reverseOrder=false) |
generalised helper function for writing restart files! This is necessary for example if the minLevel shall be raised at the new restart! More... | |
void | collectVariables (T **variablesIn, ScratchSpace< T > &variablesOut, const std::vector< MString > &variablesNameIn, std::vector< MString > &variablesNameOut, const MInt noVars, const MInt noCells) |
generalised helper function for writing restart files! This is necessary for example if the minLevel shall be raised at the new restart! More... | |
void | saveGridFlowVars (const MChar *fileName, const MChar *gridFileName, const MInt noTotalCells, const MInt noInternal, MFloatScratchSpace &dbVariables, std::vector< MString > &dbVariablesName, MInt noDbVars, MIntScratchSpace &idVariables, std::vector< MString > &idVariablesName, MInt noIdVars, MFloatScratchSpace &dbParameters, std::vector< MString > &dbParametersName, MIntScratchSpace &idParameters, std::vector< MString > &idParametersName, MInt *recalcIds, MFloat time) |
This function writes the parallel Netcdf cartesian grid cell based solution/restart file currently used in PostData, LPT and LS solvers! More... | |
void | collectParameters (T, ScratchSpace< T > &, const MChar *, std::vector< MString > &) |
This function collects a single parameters for the massivley parallel IO functions. More... | |
void | calcRecalcCellIdsSolver (const MInt *const recalcIdsTree, MInt &noCells, MInt &noInternalCellIds, std::vector< MInt > &recalcCellIdsSolver, std::vector< MInt > &reorderedCellIds) |
Derive recalc cell ids of the solver and reordered cell ids. More... | |
Public Member Functions inherited from Solver | |
MString | getIdentifier (const MBool useSolverId=false, const MString preString="", const MString postString="_") |
virtual | ~Solver ()=default |
virtual MInt | noInternalCells () const =0 |
Return the number of internal cells within this solver. More... | |
virtual MFloat | time () const =0 |
Return the time. More... | |
virtual MInt | noVariables () const |
Return the number of variables. More... | |
virtual void | getDimensionalizationParams (std::vector< std::pair< MFloat, MString > > &) const |
Return the dimensionalization parameters of this solver. More... | |
void | updateDomainInfo (const MInt domainId, const MInt noDomains, const MPI_Comm mpiComm, const MString &loc) |
Set new domain information. More... | |
virtual MFloat & | a_slope (const MInt, MInt const, const MInt) |
virtual MBool | a_isBndryCell (const MInt) const |
virtual MFloat & | a_FcellVolume (MInt) |
virtual MInt | getCurrentTimeStep () const |
virtual void | accessSampleVariables (MInt, MFloat *&) |
virtual void | getSampleVariableNames (std::vector< MString > &NotUsed(varNames)) |
virtual MBool | a_isBndryGhostCell (MInt) const |
virtual void | saveCoarseSolution () |
virtual void | getSolverSamplingProperties (std::vector< MInt > &NotUsed(samplingVarIds), std::vector< MInt > &NotUsed(noSamplingVars), std::vector< std::vector< MString > > &NotUsed(samplingVarNames), const MString NotUsed(featureName)="") |
virtual void | initSolverSamplingVariables (const std::vector< MInt > &NotUsed(varIds), const std::vector< MInt > &NotUsed(noSamplingVars)) |
virtual void | calcSamplingVariables (const std::vector< MInt > &NotUsed(varIds), const MBool NotUsed(exchange)) |
virtual void | calcSamplingVarAtPoint (const MFloat *NotUsed(point), const MInt NotUsed(id), const MInt NotUsed(sampleVarId), MFloat *NotUsed(state), const MBool NotUsed(interpolate)=false) |
virtual void | balance (const MInt *const NotUsed(noCellsToReceiveByDomain), const MInt *const NotUsed(noCellsToSendByDomain), const MInt *const NotUsed(targetDomainsByCell), const MInt NotUsed(oldNoCells)) |
Perform load balancing. More... | |
virtual MBool | hasSplitBalancing () const |
Return if load balancing for solver is split into multiple methods or implemented in balance() More... | |
virtual void | balancePre () |
virtual void | balancePost () |
virtual void | finalizeBalance () |
virtual void | resetSolver () |
Reset the solver/solver for load balancing. More... | |
virtual void | cancelMpiRequests () |
Cancel open mpi (receive) requests in the solver (e.g. due to interleaved execution) More... | |
virtual void | setCellWeights (MFloat *) |
Set cell weights. More... | |
virtual MInt | noLoadTypes () const |
virtual void | getDefaultWeights (MFloat *NotUsed(weights), std::vector< MString > &NotUsed(names)) const |
virtual void | getLoadQuantities (MInt *const NotUsed(loadQuantities)) const |
virtual MFloat | getCellLoad (const MInt NotUsed(cellId), const MFloat *const NotUsed(weights)) const |
virtual void | limitWeights (MFloat *NotUsed(weights)) |
virtual void | localToGlobalIds () |
virtual void | globalToLocalIds () |
virtual MInt | noCellDataDlb () const |
Methods to inquire solver data information. More... | |
virtual MInt | cellDataTypeDlb (const MInt NotUsed(dataId)) const |
virtual MInt | cellDataSizeDlb (const MInt NotUsed(dataId), const MInt NotUsed(cellId)) |
virtual void | getCellDataDlb (const MInt NotUsed(dataId), const MInt NotUsed(oldNoCells), const MInt *const NotUsed(bufferIdToCellId), MInt *const NotUsed(data)) |
virtual void | getCellDataDlb (const MInt NotUsed(dataId), const MInt NotUsed(oldNoCells), const MInt *const NotUsed(bufferIdToCellId), MLong *const NotUsed(data)) |
virtual void | getCellDataDlb (const MInt NotUsed(dataId), const MInt NotUsed(oldNoCells), const MInt *const NotUsed(bufferIdToCellId), MFloat *const NotUsed(data)) |
virtual void | setCellDataDlb (const MInt NotUsed(dataId), const MInt *const NotUsed(data)) |
virtual void | setCellDataDlb (const MInt NotUsed(dataId), const MLong *const NotUsed(data)) |
virtual void | setCellDataDlb (const MInt NotUsed(dataId), const MFloat *const NotUsed(data)) |
virtual void | getGlobalSolverVars (std::vector< MFloat > &NotUsed(globalFloatVars), std::vector< MInt > &NotUsed(globalIntVars)) |
virtual void | setGlobalSolverVars (std::vector< MFloat > &NotUsed(globalFloatVars), std::vector< MInt > &NotUsed(globalIdVars)) |
void | enableDlbTimers () |
void | reEnableDlbTimers () |
void | disableDlbTimers () |
MBool | dlbTimersEnabled () |
void | startLoadTimer (const MString name) |
void | stopLoadTimer (const MString &name) |
void | stopIdleTimer (const MString &name) |
void | startIdleTimer (const MString &name) |
MBool | isLoadTimerRunning () |
virtual MInt | noSolverTimers (const MBool NotUsed(allTimings)) |
virtual void | getSolverTimings (std::vector< std::pair< MString, MFloat > > &NotUsed(solverTimings), const MBool NotUsed(allTimings)) |
virtual void | getDomainDecompositionInformation (std::vector< std::pair< MString, MInt > > &NotUsed(domainInfo)) |
void | setDlbTimer (const MInt timerId) |
virtual void | prepareAdaptation (std::vector< std::vector< MFloat > > &, std::vector< MFloat > &, std::vector< std::bitset< 64 > > &, std::vector< MInt > &) |
virtual void | reinitAfterAdaptation () |
virtual void | prepareAdaptation () |
prepare adaptation for split adaptation before the adaptation loop More... | |
virtual void | setSensors (std::vector< std::vector< MFloat > > &, std::vector< MFloat > &, std::vector< std::bitset< 64 > > &, std::vector< MInt > &) |
set solver sensors for split adaptation within the adaptation loop More... | |
virtual void | saveSensorData (const std::vector< std::vector< MFloat > > &, const MInt &, const MString &, const MInt *const) |
virtual void | postAdaptation () |
post adaptation for split adaptation within the adaptation loop More... | |
virtual void | finalizeAdaptation () |
finalize adaptation for split sadptation after the adaptation loop More... | |
virtual void | refineCell (const MInt) |
Refine the given cell. More... | |
virtual void | removeChilds (const MInt) |
Coarsen the given cell. More... | |
virtual void | removeCell (const MInt) |
Remove the given cell. More... | |
virtual void | swapCells (const MInt, const MInt) |
Swap the given cells. More... | |
virtual void | swapProxy (const MInt, const MInt) |
Swap the given cells. More... | |
virtual MInt | cellOutside (const MFloat *, const MInt, const MInt) |
Check whether cell is outside the fluid domain. More... | |
virtual void | resizeGridMap () |
Swap the given cells. More... | |
virtual MBool | prepareRestart (MBool, MBool &) |
Prepare the solvers for a grid-restart. More... | |
virtual void | reIntAfterRestart (MBool) |
MPI_Comm | mpiComm () const |
Return the MPI communicator used by this solver. More... | |
virtual MInt | domainId () const |
Return the domainId (rank) More... | |
virtual MInt | noDomains () const |
virtual MBool | isActive () const |
void | setSolverStatus (const MBool status) |
MBool | getSolverStatus () |
Get the solver status indicating if the solver is currently active in the execution recipe. More... | |
MString | testcaseDir () const |
Return the testcase directory. More... | |
MString | outputDir () const |
Return the directory for output files. More... | |
MString | restartDir () const |
Return the directory for restart files. More... | |
MString | solverMethod () const |
Return the solverMethod of this solver. More... | |
MString | solverType () const |
Return the solverType of this solver. More... | |
MInt | restartInterval () const |
Return the restart interval of this solver. More... | |
MInt | restartTimeStep () const |
Return the restart interval of this solver. More... | |
MInt | solverId () const |
Return the solverId. More... | |
MBool | restartFile () |
MInt | readSolverSamplingVarNames (std::vector< MString > &varNames, const MString featureName="") const |
Read sampling variables names, store in vector and return the number of sampling variables. More... | |
virtual MBool | hasRestartTimeStep () const |
virtual MBool | forceAdaptation () |
virtual void | preTimeStep ()=0 |
virtual void | postTimeStep ()=0 |
virtual void | initSolver ()=0 |
virtual void | finalizeInitSolver ()=0 |
virtual void | saveSolverSolution (const MBool NotUsed(forceOutput)=false, const MBool NotUsed(finalTimeStep)=false)=0 |
virtual void | cleanUp ()=0 |
virtual MBool | solutionStep () |
virtual void | preSolutionStep (MInt) |
virtual MBool | postSolutionStep () |
virtual MBool | solverConverged () |
virtual void | getInterpolatedVariables (MInt, const MFloat *, MFloat *) |
virtual void | loadRestartFile () |
virtual MInt | determineRestartTimeStep () const |
virtual void | writeRestartFile (MBool) |
virtual void | writeRestartFile (const MBool, const MBool, const MString, MInt *) |
virtual void | setTimeStep () |
virtual void | implicitTimeStep () |
virtual void | prepareNextTimeStep () |
Public Attributes | |
Geom * | m_geometry |
LptCellCollector | m_cells |
PrimitiveVariables | PV |
Collector< LPTBndryCell< nDim > > * | m_bndryCells = nullptr |
std::unique_ptr< ParticleCollision< nDim > > | m_collisionModel |
std::map< MInt, std::vector< MFloat > > | m_injData |
MFloat | m_sutherlandConstant = -1 |
MFloat | m_sutherlandPlusOne = -1 |
MBool | m_nonDimensional = false |
MInt | m_noSolutionSteps = 1 |
MInt | m_solutionStep = 0 |
MInt | m_restartTimeStep {} |
Public Attributes inherited from Solver | |
std::set< MInt > | m_freeIndices |
MBool | m_singleAdaptation = false |
MBool | m_splitAdaptation = true |
MBool | m_saveSensorData = false |
Protected Types | |
using | Timers = maia::lpt::Timers_ |
Protected Types inherited from maia::CartesianSolver< nDim, LPT< nDim > > | |
using | fun = void(CartesianSolver< nDim, LPT< nDim > >::*)(std::vector< std::vector< MFloat > > &, std::vector< std::bitset< 64 > > &, std::vector< MFloat > &, MInt, MInt) |
Protected Member Functions | |
void | calculateTerminalVelocities () |
calculates the terminal velocity of particles used for initialization More... | |
MFloat | calculateAverageRep () |
MFloat | calculateVRMS () |
MFloat | calculateTotalKineticEnergy () |
void | particleRespawn () |
respawn of Particles More... | |
void | spawnParticles () |
Spawn new particles (used for testing) More... | |
MInt | addParticle (const MInt cellId, const MFloat diameter, const MFloat particleDensityRatio, const MInt random=1, const MInt addMode=0, const MFloat *velocity=nullptr, const MFloat *position=nullptr, const MInt parcelSize=1) |
Add new particle. More... | |
MInt | addEllipsoid (const MInt cellId, const MFloat semiMinorAxis, const MFloat aspectRatio, const MFloat particleDensityRatio, const MInt random=1, const MInt addMode=0, const MFloat *velocity=nullptr, const MFloat *position=nullptr) |
Add new ellipsoidal particle. More... | |
MInt | loadParticleRestartFile () |
Read particle restart file and create new particle instances accordingly. More... | |
void | writePartData () |
write particle snapshot to Netcdf file (using parallel output) More... | |
void | crankAngleSolutionOutput () |
save a full solutionOutput at timeSteps closesed to a specified crankAngle Interval save a solution slice at timeSteps closesed to a specified slice Interval More... | |
template<class LPTParticle > | |
MInt | elemPerP () |
template<class LPTParticle > | |
MInt | intElemPerP () |
template<class LPTParticle > | |
MInt | bufSize () |
template<class LPTParticle > | |
MInt | intBufSize () |
void | exchangeParticles (const MBool collOnly, const MInt offset, const MBool allowNonLeaf=false) |
Calls exchange for the different particle types. More... | |
template<class LPTParticle > | |
void | exchangeParticles_ (const MBool collOnly, const MInt offset, const MBool allowNonLeaf=false) |
exchange particles to neighboring domains, can be either non-blocking or blocking communication! More... | |
template<class LPTParticle > | |
void | sendAndReceiveParticles (const MBool allowNonLeaf) |
Particle transfer between solvers The particles to be sent are in the queueToSend array MBool mayExist is true for particle transfer after collisions, since in that case the particle may already be found on this rank. More... | |
template<MBool allNeighbors, class LPTParticle > | |
void | sendParticles () |
send particles non-blocking More... | |
template<MBool allNeighbors> | |
void | receiveParticles () |
Calls particle receive function for different particle types. More... | |
template<MBool allNeighbors, class LPTParticle > | |
void | receiveParticles_ () |
receive particles that have been sent non-blocking before More... | |
void | exchangeOffset (MInt noParticles) |
In case of multisolver, communicate particle id offset to ensure consistent particle ids across the solvers. More... | |
void | exchangeSourceTerms () |
exchanges the source terms on the LPT grid, this is necessary a) before writing the cell solution file for consistent/rank-independant data b) before the adaptation, so that all relevant data is stored on window-cells c) before transferring the source terms to the coupled solver, so that all relevant data is stored on window cells More... | |
void | sendSourceTerms () |
exchanges the source terms on the LPT grid, non-Blocking version from above More... | |
void | receiveSourceTerms () |
exchanges the source terms on the LPT grid, non-Blocking version from above More... | |
void | sendFlowField () |
exchanges the flow Field data on the LPT grid, non-Blocking version More... | |
void | receiveFlowField () |
exchanges the flow Field data on the LPT grid, non-Blocking version More... | |
void | waitForSendReqs () |
wait on all mpi send calls, prior to balance, adaptation or IO More... | |
void | sendVelocitySlopes () |
exchanges the velocity slopes on the LPT grid, non-Blocking version More... | |
void | receiveVelocitySlopes () |
exchanges the velocity slopes on the LPT grid, non-Blocking version More... | |
void | checkParticles () |
some debug check for partcles More... | |
void | checkCells () |
some debug check for cells More... | |
void | resetSourceTerms (const MInt) |
reset all source terms with cellId larger than the offset More... | |
template<class T , class Pred > | |
void | own_sort (T &c, Pred &p) |
template<class T , class Pred > | |
void | sort_impl_ (T &c, Pred &p, std::random_access_iterator_tag) |
template<class T , class Pred > | |
void | own_remove_if (T &c, Pred &p) |
template<class T , class Pred > | |
void | remove_if_impl_ (T &c, Pred &p, std::random_access_iterator_tag) |
MBool | smallParticle (const LPTSpherical< nDim > &particle) |
std::mt19937_64 & | randomSpawn (const MInt calls) |
std::mt19937_64 & | randomRespawn () |
std::mt19937_64 & | randomInit () |
Protected Member Functions inherited from maia::CartesianSolver< nDim, LPT< 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 |
Private Member Functions | |
void | readModelProps () |
Read model configuration properties from configuration file. More... | |
void | readSpawnProps () |
Read properties related to creating particles from configuration file. More... | |
void | readEllipsoidProps () |
Read properties specific to ellipsoids. More... | |
void | readMomentumCouplingProps () |
Read properties specific to the momentum coupling. More... | |
void | findSpawnCellId () |
Find spawn cellId. More... | |
MBool | fiveStageSolutionStep () |
Splitting the solutionStep into 5 separate parts to match the 5-stage Runge-Kutta time-stepping for inter-leafed computation! More... | |
MBool | oneStageSolutionStep () |
single solution step for pure LPT computation or without interleafed coupling! More... | |
void | initMPI (const MBool=true) |
Init MPI buffers and communication datastructures. More... | |
void | initialCondition () |
Initialize particles. More... | |
void | initSummary () |
Print information at the start of simulation. More... | |
void | initCollector () |
init LPT cell collector More... | |
void | initBndryCells () |
init LPT boundary-cells used for the wall-collision More... | |
void | initParticleVector () |
init LPT spherical and ellipsoids particle vectors (i.e. set length and read non-dimensionalisation Parameters!) More... | |
void | initGridProperties () |
calculate Grid Properties for periodic boundaries, adapted from rigedbodies More... | |
void | initParticleLog () |
void | writeParticleLog () |
void | computeBoundingBox (MFloat *globalBbox) |
void | addBndryCell (const MInt, MFloat *, MFloat *, MFloatScratchSpace &, MFloat *) |
add an LPT bndryCell to the collector and fill the data More... | |
void | packParticles (std::vector< LPTSpherical< nDim > * > &particlesToSend, MInt *intBuffer, MFloat *floatBuffer, std::vector< MInt >) |
Pack particles for sending. More... | |
void | packParticles (std::vector< LPTEllipsoidal< nDim > * > &particlesToSend, MInt *intBuffer, MFloat *floatBuffer, std::vector< MInt >) |
Pack ellipsoids to be sent. More... | |
template<class LPTParticle , MBool t_search> | |
void | unpackParticles (const MInt num, const MInt *intBuffer, const MFloat *floatBuffer, const MInt domainId=-1, const MBool allowNonLeaf=false) |
Unpack particles. More... | |
void | unpackParticle (LPTSpherical< nDim > &thisParticle, const MInt *intBuffer, MInt &z, const MFloat *floatBuffer, MInt &h, MInt &step, MInt id) |
Unpack spherical particle from buffers. More... | |
void | unpackParticle (LPTEllipsoidal< nDim > &thisParticle, const MInt *intBuffer, MInt &z, const MFloat *floatBuffer, MInt &h, MInt &step, MInt id) |
Unpack ellipsoidal particle and fill buffers. More... | |
void | broadcastInjected (const MUint prevNumPart) |
Send newly created particles. More... | |
void | recvInjected () |
receive particles generated during injection More... | |
void | sendInjected (const MUint prevNumPart) |
void | updateExchangeCells () |
Set exchange properties in LPT cell collector (a_isHalo/a_isWindow) and set m_pointsToHalo and m_pointsToWindow lists. More... | |
void | motionEquation (const MInt offset) |
void | motionEquationEllipsoids (const MInt offset) |
void | evaporation (const MInt offset) |
void | coupling (MInt offset) |
void | advanceParticles (const MInt offset) |
void | perCellStats () |
set cell-particle mapping which is used to merge particle in reduceParticles! More... | |
void | countParticlesInCells () |
set accessor for a_noParticlesInCell which is used for the particle-sensor during adaptation More... | |
void | reduceParticles () |
void | mergeParticles (LPTSpherical< nDim > *partA, LPTSpherical< nDim > *partB) |
void | spawnTimeStep () |
spawn new particles and compute their timeStep NOTE: this is an older functionality which is only used in testcases... More... | |
void | sprayInjection () |
void | removeInvalidParticles (const MBool) |
void | wallCollision () |
collision step with LPT wall More... | |
void | particleWallCollisionStep (const MInt) |
void | writeCollData () |
void | setRegridTrigger () |
set a_regridTriggerG around all particles to allow for an adaptation check More... | |
void | checkRegridTrigger () |
check if any of the cells with the regrid Trigger also have particles inside More... | |
void | recvRegridTrigger () |
void | initializeTimers () |
Initializes the communication timers. More... | |
Static Private Attributes | |
static constexpr MInt | m_addInjDataCnt = 4 |
Friends | |
template<MInt nDim_> | |
class | LPTBase |
template<MInt nDim_> | |
class | LPTSpherical |
template<MInt nDim_> | |
class | LPTEllipsoidal |
template<MInt nDim_> | |
class | SprayModel |
template<MInt nDim_> | |
class | CouplingParticle |
template<MInt nDim_, class SysEqn > | |
class | CouplerFvParticle |
template<MInt nDim_, MInt nDist, class SysEqn > | |
class | LbLpt |
template<MInt nDim_, class SysEqn > | |
class | PostProcessingFvLPT |
template<MInt nDim_> | |
class | PostProcessingLbLPT |
template<MInt nDim_> | |
class | PostProcessingLPT |
template<MInt nDim_> | |
class | ParticleCollision |
template<MInt nDim_> | |
class | MaterialState |
using LPT< nDim >::CartesianSolver = typename maia::CartesianSolver<nDim, LPT> |
using LPT< nDim >::Cell = typename maia::grid::tree::Tree<nDim>::Cell |
using LPT< nDim >::LptCellCollector = maia::lpt::collector::LptCells<nDim> |
|
protected |
LPT< nDim >::LPT | ( | const MInt | solverId, |
GridProxy & | gridProxy_, | ||
Geom & | geometry_, | ||
const MPI_Comm | comm | ||
) |
Definition at line 391 of file lpt.h.
|
inline |
Definition at line 400 of file lpt.h.
Definition at line 409 of file lpt.h.
|
inline |
|
inline |
|
inline |
Definition at line 412 of file lpt.h.
|
inlineoverridevirtual |
|
inline |
Definition at line 434 of file lpt.h.
|
inline |
|
inline |
Definition at line 415 of file lpt.h.
|
inline |
Definition at line 418 of file lpt.h.
|
inline |
Definition at line 373 of file lpt.h.
Definition at line 388 of file lpt.h.
|
inline |
Definition at line 366 of file lpt.h.
Definition at line 385 of file lpt.h.
|
inline |
|
inline |
Definition at line 431 of file lpt.h.
|
inline |
Definition at line 424 of file lpt.h.
|
inline |
Definition at line 382 of file lpt.h.
Definition at line 421 of file lpt.h.
|
private |
Definition at line 6391 of file lpt.cpp.
|
protected |
cellId | |
semiMinorAxis | |
aspectRatio | |
particleDensityRatio | |
random |
Definition at line 5607 of file lpt.cpp.
|
protected |
[in] | cellId | CellId of the cell in which the particle is to be created. |
[in] | diameter | Diameter of the added particle. |
[in] | particleDensityRatio | The density ratio of the added particle. |
[in] | random | Add random displacement to particle position. |
[in] | addMode | 0: as initial-condition 1: as particle spawn 2: as spray primaryBreakUp 3: as spray secondaryBreakUp |
Definition at line 5495 of file lpt.cpp.
Definition at line 3041 of file lpt.cpp.
Reimplemented from Solver.
Reimplemented from Solver.
Definition at line 6867 of file lpt.cpp.
[in] | prevNumPart | Previous number of particles. |
Definition at line 6221 of file lpt.cpp.
Reimplemented from Solver.
Definition at line 6855 of file lpt.cpp.
|
override |
Definition at line 6933 of file lpt.cpp.
|
overridevirtual |
Reimplemented from Solver.
Definition at line 1740 of file lpt.cpp.
Definition at line 6441 of file lpt.cpp.
Definition at line 7470 of file lpt.cpp.
Definition at line 852 of file lpt.h.
Definition at line 7533 of file lpt.cpp.
Definition at line 2741 of file lpt.cpp.
Definition at line 3014 of file lpt.cpp.
Definition at line 7935 of file lpt.cpp.
Definition at line 2991 of file lpt.cpp.
[in] | noParticles | Number of particles created in this domain. |
Definition at line 3963 of file lpt.cpp.
|
protected |
|
protected |
Definition at line 3478 of file lpt.cpp.
Definition at line 7620 of file lpt.cpp.
Reimplemented from Solver.
Definition at line 1434 of file lpt.cpp.
Reimplemented from Solver.
Definition at line 7243 of file lpt.cpp.
Implements Solver.
Definition at line 1179 of file lpt.cpp.
Definition at line 2194 of file lpt.cpp.
Reimplemented from Solver.
Definition at line 228 of file lpt.h.
|
override |
Definition at line 6973 of file lpt.cpp.
|
override |
Definition at line 7026 of file lpt.cpp.
|
override |
[in] | cellId | Requested grid cell id. |
[in] | weights | Computational weights for different simulation components. |
Definition at line 1988 of file lpt.cpp.
|
override |
Definition at line 1888 of file lpt.cpp.
|
override |
Definition at line 2031 of file lpt.cpp.
|
override |
Get global solver variables that need to be communicated for DLB (same on each domain)
Definition at line 7167 of file lpt.cpp.
|
override |
[out] | loadQuantities | Storage for load quantities. |
Definition at line 1934 of file lpt.cpp.
|
override |
Definition at line 1861 of file lpt.cpp.
Definition at line 352 of file lpt.cpp.
Definition at line 153 of file lpt.cpp.
Definition at line 7984 of file lpt.cpp.
Definition at line 374 of file lpt.cpp.
Implements Solver.
Definition at line 53 of file lpt.cpp.
Definition at line 5778 of file lpt.cpp.
void LPT< nDim >::interpolateAndCalcWeights | ( | P & | particle, |
const MInt | cellId, | ||
const MFloat * | position, | ||
const MFloat * | interpolatedVar, | ||
std::vector< MFloat > & | weight | ||
) |
void LPT< nDim >::interpolateVariablesLS | ( | const MInt | cellId, |
const MFloat *const | position, | ||
MFloat *const | interpolatedVar | ||
) |
[in] | cellId | id of the cell used for interpolation |
[in] | position | interpolation point |
[out] | interpolatedVar | array containing the interpolated variables |
2a. if only a low number of neighbors is found use distance weighted averaging
2b. build the least square matrix LSMatrix...
Definition at line 8063 of file lpt.cpp.
Definition at line 4822 of file lpt.cpp.
|
private |
Merge both particles to A
nDim |
partA | |
partB |
Definition at line 2890 of file lpt.cpp.
Definition at line 2962 of file lpt.cpp.
Definition at line 323 of file lpt.h.
Definition at line 2387 of file lpt.cpp.
|
inlineprotected |
Definition at line 724 of file lpt.h.
|
inlineprotected |
Definition at line 713 of file lpt.h.
|
private |
Definition at line 5928 of file lpt.cpp.
|
private |
particlesToSend | particles that need to be send |
intBuffer | integer buffer to use |
floatBuffer | float buffer to use |
Definition at line 5850 of file lpt.cpp.
version: December-09, split into seperate function from timestep() Dez-2013
Definition at line 3114 of file lpt.cpp.
Definition at line 2780 of file lpt.cpp.
Reimplemented from Solver.
Definition at line 1394 of file lpt.cpp.
Implements Solver.
Definition at line 2512 of file lpt.cpp.
Reimplemented from Solver.
Definition at line 1214 of file lpt.cpp.
|
overridevirtual |
Reimplemented from Solver.
Definition at line 2547 of file lpt.cpp.
Implements Solver.
Definition at line 2069 of file lpt.cpp.
|
inline |
Definition at line 509 of file lpt.h.
Definition at line 7784 of file lpt.cpp.
|
protected |
Definition at line 3851 of file lpt.cpp.
Definition at line 7699 of file lpt.cpp.
Definition at line 7901 of file lpt.cpp.
Definition at line 5812 of file lpt.cpp.
MFloat LPT< nDim >::reduceData | ( | const MInt | cellId, |
MFloat * | data, | ||
const MInt | dataBlockSize = 1 , |
||
const MBool | average = true |
||
) |
Definition at line 8020 of file lpt.cpp.
Reduce the number of active particles by using some artificial cell-based criterias
nDim |
Definition at line 2805 of file lpt.cpp.
Reimplemented from Solver.
Definition at line 1538 of file lpt.cpp.
Reimplemented from Solver.
Definition at line 1717 of file lpt.cpp.
Reimplemented from Solver.
Definition at line 1663 of file lpt.cpp.
|
private |
Definition at line 2667 of file lpt.cpp.
Reimplemented from Solver.
Definition at line 6655 of file lpt.cpp.
Definition at line 6822 of file lpt.cpp.
Definition at line 2112 of file lpt.cpp.
Definition at line 2597 of file lpt.cpp.
|
protected |
Definition at line 3603 of file lpt.cpp.
Definition at line 7739 of file lpt.cpp.
|
protected |
Definition at line 3705 of file lpt.cpp.
Definition at line 7648 of file lpt.cpp.
Definition at line 7861 of file lpt.cpp.
|
overridevirtual |
Reimplemented from maia::CartesianSolver< nDim, LPT< nDim > >.
Definition at line 1368 of file lpt.cpp.
|
overridevirtual |
Reimplemented from maia::CartesianSolver< nDim, LPT< nDim > >.
Definition at line 1349 of file lpt.cpp.
|
override |
Definition at line 7084 of file lpt.cpp.
|
override |
Definition at line 7123 of file lpt.cpp.
Reimplemented from Solver.
Definition at line 1827 of file lpt.cpp.
|
override |
Definition at line 7204 of file lpt.cpp.
Definition at line 7373 of file lpt.cpp.
|
overridevirtual |
Reimplemented from Solver.
Definition at line 1285 of file lpt.cpp.
|
inlineprotected |
Reimplemented from Solver.
Definition at line 2139 of file lpt.cpp.
Definition at line 5734 of file lpt.cpp.
Definition at line 2624 of file lpt.cpp.
Definition at line 2644 of file lpt.cpp.
|
overridevirtual |
Reimplemented from Solver.
Definition at line 1782 of file lpt.cpp.
|
private |
Definition at line 6152 of file lpt.cpp.
|
private |
Definition at line 6084 of file lpt.cpp.
|
private |
t_search | search for valid cellId, otherwise use known cellId |
Definition at line 6008 of file lpt.cpp.
Definition at line 6339 of file lpt.cpp.
Definition at line 6286 of file lpt.cpp.
Definition at line 7818 of file lpt.cpp.
Definition at line 3070 of file lpt.cpp.
void LPT< nDim >::writeCellSolutionFile | ( | const MString & | gridFileName, |
MInt * | recalcIds | ||
) |
Definition at line 5285 of file lpt.cpp.
Definition at line 6433 of file lpt.cpp.
Definition at line 3997 of file lpt.cpp.
Definition at line 4304 of file lpt.cpp.
|
overridevirtual |
Reimplemented from Solver.
Definition at line 2578 of file lpt.cpp.
Collector<LPTBndryCell<nDim> >* LPT< nDim >::m_bndryCells = nullptr |
LptCellCollector LPT< nDim >::m_cells |
|
private |
|
private |
std::unique_ptr<ParticleCollision<nDim> > LPT< nDim >::m_collisionModel |
|
private |
|
protected |
|
protected |
|
protected |
|
private |
|
private |
|
protected |
PrimitiveVariables LPT< nDim >::PV |