7#ifndef LBINTERFACEDXQY_H
8#define LBINTERFACEDXQY_H
14template <MInt nDim, MInt nDist,
class SysEqn>
21template <MInt nDim, MInt nDist,
class SysEqn>
24 template <MInt nDim_, MInt nDist_,
class SysEqn_>
64 template <MBool compressible = false>
66 template <MBool compressible = false>
134template <MInt nDim, MInt nDist,
class SysEqn>
136 const MInt cellId ) {
137 if(m_externalForcing) {
138 std::copy(m_Fext, m_Fext + nDist, F.begin());
141 for(
MInt d = 0; d < nDist; d++) {
152 const MFloat alpha = m_solver->a_alphaGasLim(cellId);
Interface class holding all relevant data and methods for treating prolongation, restriction and init...
virtual void restriction10()
MFloat m_static_restriction10_c[nDim *nDim]
virtual void prolongation0()
virtual void removeChildsDupuisFilippova(const MInt parentId)
Initialize parent variables from children.
MFloat m_static_restriction10_trace
void setInterfaceFunctions()
Setting function pointer to the chosen interface treatment method.
void(LbInterfaceDxQy::* RefineCellFunction)(const MInt parentId, const MInt *childIds)
virtual void restrictionThermalRohde()
Fine to coarse grid fot thermal LB.
MFloat m_static_restriction10_tmp
LbInterfaceDxQy(LbSolver< nDim > *solver)
virtual void prolongationThermalRohde()
Coarse to fine grid for thermal LB.
MFloat m_static_restriction10_tmp2
MInt m_static_prolongation10_tmpDistId
MFloat m_static_restriction10_b[2 *nDim]
virtual void restrictionDupuis()
virtual void prolongationRohde()
RemoveChildrenFunction fRemoveChildren
void prolongationDupuisCompressible()
virtual void prolongation10()
MFloat m_static_prolongation10_b[2 *nDim]
void getCellForcing(std::array< MFloat, nDist > &F, const MInt cellId=-1)
General accessor for potentially cell dependent forcing.
virtual void prolongationDupuis()
void setAdaptationFunctions()
Setting the adaptation functions chosen via property.
virtual void refineCellDupuis(const MInt parentId, const MInt *childIds)
Initialize child variables from parent.
virtual void restrictionRohde()
virtual void prolongationThermalDupuis()
Coarse to fine grid for thermal LB.
InterfaceFunction fRestriction
RefineCellFunction fRefineCell
MFloat m_static_prolongation10_trace
void(LbInterfaceDxQy::* InterfaceFunction)()
virtual void removeChildren(const MInt parentId) override final
MFloat m_static_prolongation10_tmp2
virtual ~LbInterfaceDxQy()
D'tor for the interface class.
LbSolverDxQy< nDim, nDist, SysEqn > * m_solver
MInt m_static_restriction10_tmpDistId
virtual void restrictionThermalDupuis()
Fine to coarse grid for thermal LB.
MFloat m_static_prolongation10_c[nDim *nDim]
InterfaceFunction fProlongation
MFloat m_static_prolongation10_tmp
virtual void refineCellCopyPaste(const MInt parentId, const MInt *childIds)
Initialize child variables from parent.
void(LbInterfaceDxQy::* RemoveChildrenFunction)(const MInt parentId)
void prolongationDupuis_()
Coarse to fine.
void prolongation()
Performing the chosen prolongation method.
virtual void refineCell(const MInt parentId, const MInt *childIds) override final
void restrictionDupuisCompressible()
void restrictionDupuis_()
Fine to coarse grid.
void restriction()
Performing the chosen restriction method.
virtual void restriction0()
virtual void removeChildsCopyPaste(const MInt parentId)
Initialize parent variables from children.
MPrimitiveVariables< nDim > * PV
MBool m_cellDependentForcing
std::vector< Collector< LbParentCell > * > m_interfaceParents
MString m_interfaceMethod
MString m_adaptationInitMethod
std::vector< Collector< LbInterfaceCell > * > m_interfaceChildren
This class represents all LB models.
MFloat dist(const Point< DIM > &p, const Point< DIM > &q)
LB lattice descriptor for arrays depending on D and Q.