24template <MInt nDim, MInt nDist,
class SysEqn>
27template <MInt nDim, MInt nDist,
class SysEqn>
49 static constexpr MInt nRot = (nDim == 3) ? 3 : 1;
141 void init()
override;
176 template <MInt bodyType>
178 template <MInt bodyType>
MInt a_noDistributions(const MInt id=0) const
MInt a_isThermal(const MInt id=0) const
MBool a_isActive(const MInt cellId, const MInt id=0) const
MFloat a_Re(const MInt id=0) const
MFloat a_cellLengthAtLevel(MInt level, const MInt id=0)
MFloat & a_oldVariable(const MInt cellId, const MInt varId, const MInt id=0)
solverType & lbSolver(const MInt solverId=0) const
MInt a_pvt(const MInt id=0) const
MInt a_pvrho(const MInt id=0) const
MInt a_childId(const MInt cellId, const MInt child, const MInt id=0)
MInt & a_associatedBodyIdsMb(const MInt cellId, const MInt set, const MInt id=0)
MInt a_noLevelSetsMb(const MInt id=0) const
MBool a_wasActive(const MInt cellId, const MInt id=0) const
MFloat a_initTemperatureKelvin(const MInt id=0) const
MInt a_pvv(const MInt id=0) const
MInt a_pvu(const MInt id=0) const
MInt a_pvw(const MInt id=0) const
MInt a_noCells(const MInt id=0) const
MFloat a_Ma(const MInt id=0) const
MFloat & a_variable(const MInt cellId, const MInt varId, const MInt id=0)
LbBndCnd & lbBndCnd(const MInt id=0)
MInt a_noEmbeddedBodiesLB(const MInt id=0) const
MInt noMinCells(const MInt id=0) const
MInt a_noVariables(const MInt id=0) const
MbCellCollector & a_mbCell(const MInt id=0)
MInt a_noLbCells(const MInt id=0) const
MInt a_parentId(const MInt cellId, const MInt id=0)
MInt minCell(const MInt index, const MInt id=0) const
MFloat & a_levelSetFunctionMb(const MInt cellId, const MInt set, const MInt id=0)
MInt a_noCollectorBodies() const
RigidBodies< nDim > RBodies
void postCouple(MInt) override
void finalizeSubCoupleInit(MInt) override
typename CouplingRb::RBodies RBodies
void transferLevelSetFieldValues(MBool)
void initTimers()
Creates all timers and subtimers.
MInt noLevelSetFieldData()
void reinitAfterBalance()
void init() override
Initialize solver data needed for this coupling.
static constexpr MInt nRot
void returnLevelSetSignForFluidCellCorners(MInt, MIntScratchSpace *levelSetCornerSigns, MInt set=0)
std::array< MInt, Timers::_count > m_timers
void descendLevelSetValue(const MInt cellId, const MInt *bodyId, const MInt bodyCnt)
Descend the level set value to the cells children.
void checkProperties()
Checks property-data which is read in by both ls-and Lb-Solver.
ConversionFactors conversionRbLb
maia::coupling::Mapping bodyToBndryMapping
void initializeSolidDomain()
Initialize cells which are inisde the solid domain or just entered the fluid domain.
void constructGField_()
Constructs the level-set field after each time step.
void subCouple(MInt, MInt, std::vector< MBool > &) override
void initData()
Initializes coupler specific data.
void finalizeCouplerInit() override
MInt returnLevelSetSignForFluidFaceCentroid(MInt, MInt, MInt set=0)
ConversionFactors conversionLbRb
void readProperties()
Read all relevant properties.
void computeGCellTimeStep()
void getBodyVelocity(const MInt body, MFloat *const velocity)
Get body velocity converted to LB units.
void preCouple(MInt) override
void getDomainDecompositionInformation(std::vector< std::pair< MString, MInt > > &) override
void constructGField()
Dispatch function for the body specific construction of the level set.
void finalizeAdaptation(const MInt solverId) override
Coupling between solver substeps.
maia::coupling::Mapping bndryToBodyMapping
MInt returnNoActiveCorners(MInt)
void updateGeometry()
Updates the member-variables in the geometry-intersection class.
static constexpr MInt m_noCorners
void getBodyAngularVelocity(const MInt body, MFloat *const angularVelocity)
Get angular body velocity converted to LB units.
void postAdaptation() override
MBool m_static_updateLevelSetFlowSolver_firstRun
This class represents all LB models.
This class is a ScratchSpace.
std::basic_string< char > MString
Multi-to-multi mapping class.