MAIA bb96820c
Multiphysics at AIA
|
#include <fvparticle.h>
Public Member Functions | |
CouplerFvParticle (const MInt couplingId, LPT< nDim > *particle, FvCartesianSolver *fv) | |
void | init () override |
performs the coupling after solver initialization More... | |
void | finalizeCouplerInit () override |
void | finalizeSubCoupleInit (MInt) override |
void | preCouple (MInt) override |
preCoupler: reset external source terms before the LPT timestep More... | |
void | postCouple (MInt) override |
postCouple: exchange source terms after the LPT timeStep More... | |
void | subCouple (MInt, MInt, std::vector< MBool > &) override |
transfer the FV velocity slopes to the LPT solver More... | |
void | postAdaptation () override |
void | finalizeAdaptation (const MInt) override |
prepate adaptation More... | |
void | prepareAdaptation () override |
prepate adaptation More... | |
void | finalizeBalance (const MInt unused) override |
postCouple: exchange source terms after the LPT timeStep More... | |
void | balancePre () override |
Load balancing. More... | |
void | balancePost () override |
void | cleanUp () override |
void | writeRestartFile (const MInt) override |
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 CouplingLpt< nDim, CouplingFv< nDim, SysEqn > > | |
CouplingLpt (const MInt couplingId, Lpt *particle, FlowSolver *flowSolver) | |
virtual | ~CouplingLpt ()=default |
Public Member Functions inherited from CouplingParticle< nDim > | |
CouplingParticle (const MInt couplingId, LPT< nDim > *solver) | |
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 CouplingFv< nDim, SysEqn > | |
CouplingFv (const MInt couplingId, std::vector< FvCartesianSolverXD< nDim, SysEqn > * > fvSolvers, const MInt noSolvers) | |
CouplingFv (const MInt couplingId, Solver *solvers) | |
~CouplingFv () override=default | |
CouplingFv (const CouplingFv &)=delete | |
CouplingFv & | operator= (const CouplingFv &)=delete |
Protected Member Functions | |
LPT< nDim > & | lpt () const override |
FvCartesianSolverXD< nDim, SysEqn > & | fvSolver () const |
virtual LPT< nDim > & | lpt () const |
Protected Member Functions inherited from Coupling | |
MFloat | returnLoadRecord () const |
MFloat | returnIdleRecord () const |
Protected Member Functions inherited from CouplingFv< nDim, SysEqn > | |
MInt | noSolvers () const |
solverType & | fvSolver (const MInt solverId=0) const |
MInt | a_noFvCells () const |
MInt | a_noFvGridCells () const |
Private Types | |
using | FvCartesianSolver = FvCartesianSolverXD< nDim, SysEqn > |
using | BaseFv = CouplingFv< nDim, SysEqn > |
using | BaseLpt = CouplingParticle< nDim > |
using | BaseLptX = CouplingLpt< nDim, BaseFv > |
Private Member Functions | |
void | checkProperties () override |
Checks property-data which is read in by both lpt-and Fv-Solver. More... | |
void | readProperties () |
void | initData () |
Initialize coupling-class-specific Data. More... | |
void | initConversion () |
Calculates the conversion factor for different non-dimensionalisations in the FV and LPT solvers. More... | |
void | initParticleVelocity () |
Sets the initial particle velocity based on the flow field velocity in that cell. NOTE: This can not be done in the LPT initialCondition, as the FV flow field has not been transfered before, its set in the FV initialCondition. More... | |
void | transferNoParticlesInCell () |
set a_noPart in Fv based on a_noParticlesInCell and a_noEllipsoidsInCell in LPT solver NOTE: this is only necessary if the particle sensor is used during adaptation More... | |
void | writeParticleCellStats () |
compute particle-cell binning and write to file More... | |
void | transferExternalSources () |
set external sources in Fv solver based on values in the LPT solver More... | |
void | updateLPTBndry () |
transfer all relevant bndryCell-data from FV to LPT solver before the LPT timeStep! More... | |
void | transferFlowField () |
transfer flow data from FV to LPT More... | |
void | transferCellStatus () |
set the isValid status for LPT cells based on the FV-solver cell properties More... | |
void | transferVelocitySlopes () |
transfer the FV velocity slopes to the LPT solver More... | |
void | transferTimeStep () |
transfer/enforce Fv timeStep onto LPT solver More... | |
void | setExternalSourceInCell (const MInt, const MInt, const MFloat) |
set external source in FV-solver from LPT fluxes More... | |
void | unifyTimeStep () |
Find combinded maximum timeStep for Fv and LPT solvers only possible for interleafed execution assuming that both solvers have previously computed their independend timeSteps. More... | |
MInt | childLoop (MInt cellId) |
compute particle-cell binning and write to file More... | |
MInt | lpt2fvId (const MInt lptId) |
MInt | lpt2fvIdParent (const MInt lptId) |
MInt | fv2lptId (const MInt fvId) |
MInt | fv2lptIdParent (const MInt fvId) |
void | interpolateFVLPT (const MInt from, const MInt to) |
interpolate flow variables from the fv-grid to the LPT-cell position More... | |
void | interpolateVelocitySlopesFVLPT (const MInt from, const MInt to) |
Interpolates the velocity slopes from the fv-grid to the LPT-cell. More... | |
MFloat | interpolateVariable (MInt *, MFloat *, MInt) |
interpolates the fv-variable / More... | |
MFloat | interpolateSlope (MInt *, MFloat *, MInt, MInt) |
interpolate fv slope More... | |
Private Attributes | |
ConversionFactor & | conversionLptFv = BaseLptX::conversionLptFlow |
ConversionFactor & | conversionFvLpt = BaseLptX::conversionFlowLpt |
LPT< nDim > * | m_particle = nullptr |
FvCartesianSolverXD< nDim, SysEqn > * | m_fvSolver = nullptr |
MInt | m_lptSolverId {} |
MInt | m_fvSolverId {} |
MInt | m_lptSolverOrder {} |
MInt | m_fvSolverOrder {} |
MInt | m_noSolverSteps {} |
MBool | m_lptFvInterpolation = false |
MInt | m_fvLPTSpeciesId {} |
SysEqn | m_sysEqn |
MInt | m_solutionStep |
MInt | m_noSolutionSteps |
MBool | m_forceFvTimeStep |
MBool | m_interLeafed |
Friends | |
class | LPT< nDim > |
class | FvCartesianSolverXD< nDim, SysEqn > |
Additional Inherited Members | |
Public Types inherited from CouplingLpt< nDim, CouplingFv< nDim, SysEqn > > | |
using | FlowSolver = typename CouplingFlowSolver::solverType |
using | Lpt = typename CouplingParticle< nDim >::solverType |
Public Types inherited from CouplingParticle< nDim > | |
using | solverType = LPT< nDim > |
Public Types inherited from CouplingFv< nDim, SysEqn > | |
using | solverType = FvCartesianSolverXD< nDim, SysEqn > |
Public Attributes inherited from CouplingLpt< nDim, CouplingFv< nDim, SysEqn > > | |
ConversionFactor | conversionFlowLpt |
ConversionFactor | conversionLptFlow |
Protected Attributes inherited from CouplingFv< nDim, SysEqn > | |
std::vector< solverType * > | m_fvSolvers {} |
Definition at line 21 of file fvparticle.h.
|
private |
Definition at line 28 of file fvparticle.h.
|
private |
Definition at line 29 of file fvparticle.h.
|
private |
Definition at line 30 of file fvparticle.h.
|
private |
Definition at line 26 of file fvparticle.h.
CouplerFvParticle< nDim, SysEqn >::CouplerFvParticle | ( | const MInt | couplingId, |
LPT< nDim > * | particle, | ||
FvCartesianSolver * | fv | ||
) |
Definition at line 14 of file fvparticle.cpp.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
overrideprivatevirtual |
Reimplemented from CouplingParticle< nDim >.
Definition at line 338 of file fvparticle.cpp.
|
private |
Definition at line 1484 of file fvparticle.cpp.
|
inlineoverridevirtual |
|
overridevirtual |
Reimplemented from Coupling.
Definition at line 930 of file fvparticle.cpp.
|
overridevirtual |
Reimplemented from Coupling.
Definition at line 418 of file fvparticle.cpp.
|
overridevirtual |
Reimplemented from CouplingParticle< nDim >.
Definition at line 255 of file fvparticle.cpp.
|
inlineoverridevirtual |
|
inlineprivate |
Definition at line 107 of file fvparticle.h.
|
inlineprivate |
Definition at line 108 of file fvparticle.h.
|
inlineprotected |
Definition at line 48 of file fvparticle.h.
|
inlineoverride |
Definition at line 73 of file fvparticle.h.
|
overridevirtual |
Implements Coupling.
Definition at line 56 of file fvparticle.cpp.
|
private |
|
private |
Definition at line 244 of file fvparticle.cpp.
|
private |
Definition at line 227 of file fvparticle.cpp.
|
private |
Definition at line 962 of file fvparticle.cpp.
|
private |
Definition at line 1067 of file fvparticle.cpp.
|
private |
Definition at line 1047 of file fvparticle.cpp.
|
private |
Definition at line 1012 of file fvparticle.cpp.
|
inlineoverrideprotectedvirtual |
|
inlineprivate |
Definition at line 105 of file fvparticle.h.
|
inlineprivate |
Definition at line 106 of file fvparticle.h.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
overridevirtual |
Reimplemented from CouplingParticle< nDim >.
Definition at line 382 of file fvparticle.cpp.
|
overridevirtual |
Reimplemented from CouplingParticle< nDim >.
Definition at line 350 of file fvparticle.cpp.
|
overridevirtual |
Reimplemented from Coupling.
Definition at line 871 of file fvparticle.cpp.
|
privatevirtual |
Reimplemented from CouplingParticle< nDim >.
|
private |
Definition at line 882 of file fvparticle.cpp.
|
overridevirtual |
Reimplemented from CouplingParticle< nDim >.
Definition at line 1298 of file fvparticle.cpp.
|
private |
Definition at line 1087 of file fvparticle.cpp.
|
private |
Definition at line 736 of file fvparticle.cpp.
|
private |
NOTE: each LPT-cell must have at-least a matching FV-parent!
Definition at line 452 of file fvparticle.cpp.
|
private |
Definition at line 692 of file fvparticle.cpp.
|
private |
Definition at line 830 of file fvparticle.cpp.
|
private |
NOTE: each LPT-cell must have at-least a matching FV-parent!
Definition at line 1112 of file fvparticle.cpp.
|
private |
Definition at line 1226 of file fvparticle.cpp.
|
private |
Definition at line 607 of file fvparticle.cpp.
|
private |
Definition at line 1360 of file fvparticle.cpp.
|
inlineoverridevirtual |
|
friend |
Definition at line 1 of file fvparticle.h.
Definition at line 1 of file fvparticle.h.
|
private |
Definition at line 40 of file fvparticle.h.
|
private |
Definition at line 39 of file fvparticle.h.
|
private |
Definition at line 132 of file fvparticle.h.
|
private |
Definition at line 126 of file fvparticle.h.
|
private |
Definition at line 117 of file fvparticle.h.
|
private |
Definition at line 120 of file fvparticle.h.
|
private |
Definition at line 122 of file fvparticle.h.
|
private |
Definition at line 133 of file fvparticle.h.
|
private |
Definition at line 125 of file fvparticle.h.
|
private |
Definition at line 119 of file fvparticle.h.
|
private |
Definition at line 121 of file fvparticle.h.
|
private |
Definition at line 131 of file fvparticle.h.
|
private |
Definition at line 123 of file fvparticle.h.
|
private |
Definition at line 116 of file fvparticle.h.
|
private |
Definition at line 130 of file fvparticle.h.
|
private |
Definition at line 128 of file fvparticle.h.