MAIA bb96820c
Multiphysics at AIA
|
#include <lsfvmb.h>
Public Types | |
using | LsSolver = LsCartesianSolver< nDim > |
using | FvMbSolver = FvMbCartesianSolverXD< nDim, SysEqn > |
using | FVBndryCnd = FvBndryCndXD< nDim, SysEqn > |
using | LsCell = typename LsSolver::Cell |
using | Cell = typename maia::grid::tree::Tree< nDim >::Cell |
Public Types inherited from CouplingLS< nDim_ > | |
using | solverType = LsCartesianSolver< nDim > |
Public Types inherited from CouplingFvMb< nDim_, SysEqn > | |
using | solverType = FvMbCartesianSolverXD< nDim, SysEqn > |
Public Member Functions | |
LsFvMb (const MInt couplingId, LsSolver *ls, FvMbSolver *fvMb) | |
void | init () override |
performs the coupling after solver initialization More... | |
void | preCouple (MInt recepiStep) override |
preCoupler More... | |
void | subCouple (MInt, MInt, std::vector< MBool > &) override |
void | postCouple (MInt recipeStep=0) override |
postCoupler More... | |
void | finalizeCouplerInit () override |
performs the final coupling after finalization More... | |
void | finalizeSubCoupleInit (MInt) override |
performs the coupling in solver finalization More... | |
void | postAdaptation () override |
finalizeAdaptation More... | |
void | finalizeAdaptation (const MInt) override |
finalizeAdaptation More... | |
void | prepareAdaptation () override |
finalizeAdaptation More... | |
void | finalizeBalance (const MInt) override |
called after each solver-balance More... | |
void | balancePre () override |
Load balancing. More... | |
void | balancePost () override |
MInt | noLevelSetFieldData () |
MInt | noCouplingTimers (const MBool NotUsed(allTimings)) const override |
Number of coupling timers. More... | |
void | getCouplingTimings (std::vector< std::pair< MString, MFloat > > &timings, const MBool NotUsed(allTimings)) override |
Public Member Functions inherited from CouplingLS< nDim_ > | |
CouplingLS (const MInt couplingId, solverType *b) | |
solverType & | lsSolver () const |
MInt | a_noLsCells () const |
MFloat | a_outsideGValue () const |
MInt | a_noG0Cells (MInt set) const |
MInt | a_noBandCells (MInt set) const |
MInt | a_maxGCellLevel (const MInt setId) const |
MFloat & | a_levelSetFunctionG (const MInt cellId, const MInt setId) |
MInt | a_bodyIdG (const MInt cellId, const MInt set) const |
MInt & | a_bodyIdG (const MInt cellId, const MInt set) |
MFloat | a_coordinateG (const MInt gCellId, const MInt dim) const |
MInt | a_G0CellId (const MInt id, const MInt set) const |
MFloat | a_normalVectorG (const MInt gCellId, const MInt dim, const MInt set) const |
MFloat | a_curvatureG (const MInt gCellId, const MInt set) const |
MBool | a_inBandG (MInt gcellId, MInt set) const |
MInt | a_potentialGapCellClose (MInt gcellId) const |
MBool | a_nearGapG (const MInt gcellId) const |
MInt | a_bodyToSet (const MInt bodyId) const |
MInt | a_noEmbeddedBodies () const |
MInt | a_noSets () const |
MInt | a_maxnoSets () const |
MInt | a_startSet () const |
MFloat & | a_extensionVelocityG (const MInt cellId, const MInt dim, const MInt setId) |
Public Member Functions inherited from Coupling | |
Coupling (const MInt couplingId) | |
virtual | ~Coupling ()=default |
Coupling (const Coupling &)=delete | |
Coupling & | operator= (const Coupling &)=delete |
MInt | couplerId () const |
virtual void | init ()=0 |
virtual void | finalizeSubCoupleInit (MInt solverId)=0 |
virtual void | finalizeCouplerInit ()=0 |
virtual void | preCouple (MInt recipeStep)=0 |
virtual void | subCouple (MInt recipeStep, MInt solverId, std::vector< MBool > &solverCompleted)=0 |
virtual void | postCouple (MInt recipeStep)=0 |
virtual void | cleanUp ()=0 |
virtual void | balancePre () |
Load balancing. More... | |
virtual void | balancePost () |
virtual void | reinitAfterBalance () |
virtual void | prepareAdaptation () |
virtual void | postAdaptation () |
virtual void | finalizeAdaptation (const MInt) |
virtual void | writeRestartFile (const MInt) |
virtual MInt | noCellDataDlb () const |
Methods to inquire coupler data during balancing. 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 | finalizeBalance (const MInt) |
virtual MInt | noCouplingTimers (const MBool NotUsed(allTimings)) const |
Number of coupling timers. More... | |
virtual void | getCouplingTimings (std::vector< std::pair< MString, MFloat > > &NotUsed(timings), const MBool NotUsed(allTimings)) |
Return coupling timings. More... | |
virtual void | getDomainDecompositionInformation (std::vector< std::pair< MString, MInt > > &NotUsed(domainInfo)) |
Return information on current domain decomposition (e.g. number of coupled cells/elements/...) More... | |
void | setDlbTimer (const MInt timerId) |
void | startLoadTimer (const MString &name) const |
Start the load timer of the coupler. More... | |
void | stopLoadTimer (const MString &name) const |
Stop the load timer of the coupler. More... | |
Public Member Functions inherited from CouplingFvMb< nDim_, SysEqn > | |
CouplingFvMb (const MInt couplingId, solverType *b) | |
solverType & | fvMbSolver () const |
MInt | a_noFvCells () const |
MInt | a_noFvGridCells () const |
MInt | a_noLevelSetsMb () const |
Static Public Attributes | |
static constexpr MInt | nDim = nDim_ |
Private Types | |
using | Base = CouplingFvMb< nDim_, SysEqn > |
Private Member Functions | |
void | initData () |
Initialize coupling-class-specific Data. More... | |
void | checkProperties () |
Checks property-data which is read in by both ls-and Fv-Solver. More... | |
void | readProperties () |
reads lsfvmb-coupling-specific data More... | |
void | interpolateLsFV (const MInt, const MInt) |
interpolate levelset values on the fv-grid More... | |
MFloat | interpolateLevelSetMb (MInt *interpolationCells, MFloat *point, const MInt set) |
MFloat | interpolateLevelSet (MInt cellId, MFloat *point, MInt set) |
void | buildCollectedLevelSet (const MInt) |
build the combined levelSet for the given cellId More... | |
void | updateFlowSolver () |
Updates the fv-mb-solver flow solver (after a completed levelSet TimeStep and finalizeLevelSet() ) More... | |
void | transferTimeStep () |
transfers the gcell time step from the fvMbSolver! time should already be matching! More... | |
void | transferAngularVelocity () |
Writes the angular velocity and the angular acceleration from the LS-solver into the FV-solver. More... | |
void | transferBodyRadius () |
Copies the bodyRadius from the LS-solver into the FV-solver. More... | |
void | transferGapCellProperty (MInt mode) |
Sets the gap-cell-property mode 1 : regular call each timeStep (advance is/was-GapCell) mode 0 : initialisation and after balance (wasGapCell = isGapCell)! More... | |
void | transferBodyProperties () |
transfer current body properties from the ls-Solver to the fv-Solver bodyPosition bodyVelocity bodyAcceleration bodyTemperature bodyAngularVelocity More... | |
void | transferLevelSetValues () |
Sets the Levelset-Values in fvSolver. More... | |
void | transferLevelSetFieldValues (MBool) |
transfers the LevelSetValues for all cells from the levelset to the moving boundary Part More... | |
MFloat | restartTime () |
return restart time for lsSolver, when the fvSolver is not initialised yet! More... | |
void | setGapState () |
Sets the Gap-State in the fvmb-solver (stati are the same for all domains!) possible Gap-States: More... | |
void | setGapGhostCellVariables (MInt) |
void | updateLevelSet () |
update the levelset outside of the band default should be case 2 -> don't do anything! More... | |
void | updateLevelSetOutsideBandPar () |
computes an approximate level set value for cells outside the level-set computing band should not be used, as it is very slow, just for performance measurements of the parallel fast marching method! More... | |
void | initFvGapCells () |
Initialises fv-Gap Cells for gapHandling (must be called each timeStep before the gapHandling call in the fvmb-solver and after the gapHandling call in the lsSolver!) More... | |
void | lsGapInfo (const MInt, MInt *) |
returns the gap region for a given fvCell More... | |
void | initBodyProperties () |
initialise the body properties in the fvmb-solver based More... | |
MInt | ls2fvId (const MInt lsId) |
MInt | ls2fvIdParent (const MInt lsId) |
MInt | fv2lsId (const MInt fvId) |
MInt | fv2lsIdParent (const MInt fvId) |
void | testCoupling () |
transfers the LevelSetValues from the levelset to the moving boundary Part More... | |
void | testLsValues () |
transfers the LevelSetValues from the levelset to the moving boundary Part More... | |
void | testGapProperty () |
transfers the LevelSetValues from the levelset to the moving boundary Part More... | |
void | computeBodyProperties (MInt returnMode, MFloat *bodyData, MInt body, MFloat time) |
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... | |
Private Attributes | |
MInt | m_fvSolverId {} |
MInt | m_lsSolverId {} |
MBool | m_outsideDefault {} |
MBool | m_allowLsInterpolation = false |
MInt | m_noRfJumps = 0 |
MInt * | m_hadGapCells {} |
MInt * | m_hasGapCells {} |
MBool | m_static_updateLevelSetFlowSolver_firstRun = true |
MBool | m_static_setGapState_first = true |
MBool | m_static_setGapState_earlyOpened [m_maxNoGapRegions] |
Static Private Attributes | |
static constexpr const MInt | m_noCorners = (nDim == 2) ? 4 : 8 |
static constexpr const MInt | m_maxNoGapRegions = 5 |
Friends | |
class | FvMbCartesianSolverXD< nDim, SysEqn > |
class | LsCartesianSolver< nDim > |
Additional Inherited Members | |
Protected Member Functions inherited from Coupling | |
MFloat | returnLoadRecord () const |
MFloat | returnIdleRecord () const |
|
private |
using LsFvMb< nDim_, SysEqn >::Cell = typename maia::grid::tree::Tree<nDim>::Cell |
using LsFvMb< nDim_, SysEqn >::FVBndryCnd = FvBndryCndXD<nDim, SysEqn> |
using LsFvMb< nDim_, SysEqn >::FvMbSolver = FvMbCartesianSolverXD<nDim, SysEqn> |
using LsFvMb< nDim_, SysEqn >::LsCell = typename LsSolver::Cell |
using LsFvMb< nDim_, SysEqn >::LsSolver = LsCartesianSolver<nDim> |
LsFvMb< nDim, SysEqn >::LsFvMb | ( | const MInt | couplingId, |
LsSolver * | ls, | ||
FvMbSolver * | fvMb | ||
) |
Definition at line 24 of file lsfvmb.cpp.
|
private |
Definition at line 1635 of file lsfvmb.cpp.
Implements Coupling.
Definition at line 75 of file lsfvmb.cpp.
|
private |
Definition at line 736 of file lsfvmb.cpp.
|
overridevirtual |
Reimplemented from Coupling.
Definition at line 1113 of file lsfvmb.cpp.
|
overridevirtual |
Reimplemented from Coupling.
Definition at line 1088 of file lsfvmb.cpp.
Implements Coupling.
Definition at line 1493 of file lsfvmb.cpp.
|
overridevirtual |
Implements Coupling.
Definition at line 1513 of file lsfvmb.cpp.
|
inlineprivate |
Definition at line 129 of file lsfvmb.h.
|
inlineprivate |
Definition at line 137 of file lsfvmb.h.
|
inlineoverride |
Implements Coupling.
Definition at line 1431 of file lsfvmb.cpp.
Definition at line 1677 of file lsfvmb.cpp.
Definition at line 38 of file lsfvmb.cpp.
Definition at line 980 of file lsfvmb.cpp.
|
private |
interpolates the levelSet value further on fv-cells
Definition at line 528 of file lsfvmb.cpp.
|
private |
interpolates the levelSet value further on fv-cells
Definition at line 546 of file lsfvmb.cpp.
|
private |
Definition at line 499 of file lsfvmb.cpp.
|
inlineprivate |
|
inlineprivate |
|
private |
Definition at line 1402 of file lsfvmb.cpp.
Reimplemented from Coupling.
Definition at line 1207 of file lsfvmb.cpp.
|
overridevirtual |
Implements Coupling.
Definition at line 1067 of file lsfvmb.cpp.
|
overridevirtual |
Implements Coupling.
Definition at line 1042 of file lsfvmb.cpp.
Reimplemented from Coupling.
Definition at line 1229 of file lsfvmb.cpp.
Implements Coupling.
Definition at line 1351 of file lsfvmb.cpp.
|
private |
0: default value : should be overwritten! -2: init Gap-Closure: the Gap switches from open state in the previous timeStep to a closed state 2: init Gap-Opening: the Gap switches from closed state in the previous timeStep to an open state 1: fully open Gap : the Gap is wide open and no special Gap-Handling is necessary -1: shrinking Gap : the Gap is closed and is closing further (body-distance is decreasing) 3: widening Gap : the Gap is closed but the body-distance is increasing (moving appart)
Definition at line 802 of file lsfvmb.cpp.
Definition at line 173 of file lsfvmb.cpp.
Definition at line 241 of file lsfvmb.cpp.
Definition at line 218 of file lsfvmb.cpp.
Definition at line 1615 of file lsfvmb.cpp.
Definition at line 1586 of file lsfvmb.cpp.
Definition at line 1568 of file lsfvmb.cpp.
|
private |
Definition at line 569 of file lsfvmb.cpp.
|
private |
Definition at line 297 of file lsfvmb.cpp.
Definition at line 265 of file lsfvmb.cpp.
Definition at line 1535 of file lsfvmb.cpp.
Definition at line 748 of file lsfvmb.cpp.
Definition at line 1240 of file lsfvmb.cpp.
|
private |
Definition at line 1264 of file lsfvmb.cpp.
|
friend |
|
friend |
|
private |