7#ifndef COUPLERFVMULTILEVEL_H_
8#define COUPLERFVMULTILEVEL_H_
17template <MInt nDim,
class SysEqn>
29template <MInt nDim,
class SysEqn>
105template <MInt nDim,
class SysEqn>
void correctCoarseBndryCells(const MInt solverId)
solverType & fvSolver(const MInt solverId=0) const
std::vector< std::vector< MInt > > m_leafCells
MInt timer(const MString &name)
void initRestrictedCells()
for each solver that will be restricted (all except the coarsest), store restricted cells
std::vector< std::vector< MInt > > m_fine2coarse
typename SolverType::GridProxy GridProxy
std::map< MString, MInt > m_timers
void finalizeCouplerInit()
call after the initial adaptation when all cells are refined correctly
MBool stopTimer(const MString &name)
void postCouple(MInt) override
CouplingFv< nDim, SysEqn > BaseFv
void initLeafCells()
store internal leaf cells for each solver except for finest solver, for which they are not needed
void restrictData(const MInt level)
Restrict the data (fine-coarse) on the given level.
void resetSecondaryFlowVariables()
for each solver except the finest, reset variables to NaN to ensure that only restricted information ...
void prolongation(const MInt level)
Prolong the solution on the given coarse level onto the next finer level.
void storeRestrictedVariables(const MInt level)
Store the restricted variables (required for the prolongation)
typename BaseFv::solverType SolverType
void prolongData(const MInt level)
Prolong the data of a coarse level.
void finalizeAdaptation(MInt solverId)
call after the initial adaptation when all cells are refined correctly
void initSplitMapping()
for each coarse solver, store cell map of split-cells to next finer solver childs
std::vector< std::vector< MInt > > m_restrictedCells
std::vector< std::vector< MInt > > m_coarse2fine
void initMapping()
for each coarse solver, store cell map to next finer solver
MInt & createTimer(const MString &name)
void finalizeSubCoupleInit(MInt)
MInt m_prolongationMethod
void preCouple(MInt) override
MBool m_correctCoarseBndry
void subCouple(MInt, MInt, std::vector< MBool > &) override
void computeCoarseLevelCorrection(const MInt level)
Compute the coarse level correction tau.
void resetTau(const MInt level)
Reset the coarse level correction tau.
MBool startTimer(const MString &name)
void getDomainDecompositionInformation(std::vector< std::pair< MString, MInt > > &NotUsed(domainInfo)) override
Return information on current domain decomposition (e.g. number of coupled cells/elements/....
void resetMultiLevelVariables()
for each solver, reset multilevel variables
void readProperties() override
void checkProperties() override
void restriction(const MInt level)
Restrict the solution on the given fine level onto the next coarser level.
std::vector< std::vector< MInt > > m_splitCellMapping
FV multilevel interpolation coupler to transfer solution data of a coarse grid onto a finer grid.
~CouplerFvMultilevelInterpolation()
typename BaseCoupler::Base Base
void postCouple(MInt) override
Coupling routine to transfer coarse level restart data to the finest level/solver.
void reset(const MInt level)
Reset variables/slopes of a level/solver.
typename BaseCoupler::BaseFv BaseFv
solverType & fvSolver(const MInt solverId=0) const
FvCartesianSolverXD< nDim, SysEqn > solverType
Parent class of all solvers This class is the base for all solvers. I.e. all solver class (e....
std::basic_string< char > MString
Namespace for auxiliary functions/classes.