MAIA bb96820c
Multiphysics at AIA
|
Base recipe provides public interface to Application. More...
#include <executionrecipe.h>
Public Member Functions | |
ExecutionRecipe (std::vector< std::unique_ptr< Solver > > *const solvers, std::vector< std::unique_ptr< Coupling > > *const couplers) | |
virtual void | preTimeStep () final |
: Calls each solvers preTimeStep - might be empty More... | |
virtual void | timeStep () |
: Single solver time step function. Calls solutionStep() of the specific solver More... | |
virtual void | postTimeStep () final |
: Calls each solvers postTimeStep - might be empty More... | |
virtual void | preCouple () final |
: Calls each couplers preCouple - might be empty More... | |
virtual void | postCouple () final |
: Calls each couplers postCouple - might be empty More... | |
virtual MBool | updateCallOrder () |
MInt | a_step () const |
MInt & | a_step () |
MBool | callAdaptation () const |
Protected Member Functions | |
void | readCallOrder () |
: Reads the call order of solvers, couplers and adaptation More... | |
void | initFunctionPointers () |
: Initialize the vector containing function pointers to preTimeStep, solutionStep and postTimestep as well as preCouple, subCouple and postCouple. All are set active. More... | |
void | setSolverStatus (MInt, MBool) |
: Wrapper function to set solvers active or idle More... | |
void | setCouplerStatus (const MInt couplerId, const MBool active) |
: Wrapper function to set couplers active or empty More... | |
MInt | noSolvers () const |
MInt | noCouplers () const |
void | nextStep () |
MBool | solverOrder (const MInt solverId) const |
MBool | couplerOrder (const MInt couplerId) const |
void | setAdaptation () |
MInt | maxNoSteps () const |
MBool | solutionStep (const MInt solverId) |
void | preSolutionStep (const MInt solverId, const MInt mode) |
MBool | postSolutionStep (const MInt solverId) |
void | subCouple (const MInt couplerId, const MInt step, const MInt solverId, std::vector< MBool > &solverCompleted) |
const std::vector< std::unique_ptr< Solver > > * | a_solvers () const |
const std::vector< std::unique_ptr< Coupling > > * | a_couplers () const |
MInt | swapedSolverId (const MInt oldSolverId) |
void | startLoadTimer (const MInt solverId) |
void | stopLoadTimer (const MInt solverId) |
MBool | solverIsActive (const MInt solverId) |
Protected Attributes | |
MInt | m_maxSolutionIteration = 1 |
std::map< MInt, MInt > | m_swapSolverIds {} |
Private Attributes | |
const std::vector< std::unique_ptr< Solver > > *const | m_solvers |
const std::vector< std::unique_ptr< Coupling > > *const | m_couplers |
std::vector< std::function< void()> > | m_preStep |
std::vector< std::function< void(const MInt)> > | m_preSolutionStep |
std::vector< std::function< MBool()> > | m_solutionStep |
std::vector< std::function< MBool()> > | m_postSolutionStep |
std::vector< std::function< void()> > | m_postStep |
std::vector< std::function< void(const MInt)> > | m_preCouple |
std::vector< std::function< void(const MInt, const MInt, std::vector< MBool > &)> > | m_subCouple |
std::vector< std::function< void(const MInt)> > | m_postCouple |
MBool | m_allowAdaptation = true |
MInt | m_step = -1 |
MInt | m_maxNoSteps = 1 |
std::vector< std::vector< MBool > > | m_solverOrder {} |
std::vector< std::vector< MBool > > | m_couplerOrder {} |
std::vector< MBool > | m_adaptationOrder {} |
Definition at line 21 of file executionrecipe.h.
|
inline |
Definition at line 23 of file executionrecipe.h.
|
inlineprotected |
Definition at line 79 of file executionrecipe.h.
|
inlineprotected |
Definition at line 77 of file executionrecipe.h.
|
inline |
Definition at line 43 of file executionrecipe.h.
|
inline |
Definition at line 42 of file executionrecipe.h.
|
inline |
Definition at line 45 of file executionrecipe.h.
Definition at line 61 of file executionrecipe.h.
|
protected |
Definition at line 312 of file executionrecipe.h.
|
inlineprotected |
Definition at line 65 of file executionrecipe.h.
|
inlineprotected |
Definition at line 57 of file executionrecipe.h.
|
inlineprotected |
Definition at line 55 of file executionrecipe.h.
|
inlineprotected |
Definition at line 54 of file executionrecipe.h.
|
finalvirtual |
Definition at line 408 of file executionrecipe.h.
Definition at line 71 of file executionrecipe.h.
|
finalvirtual |
Definition at line 377 of file executionrecipe.h.
|
inlinefinalvirtual |
Definition at line 394 of file executionrecipe.h.
Definition at line 69 of file executionrecipe.h.
|
inlinefinalvirtual |
Definition at line 335 of file executionrecipe.h.
|
protected |
For some multisolver applications the solvers can not be executed simultaneously. E.g. in level-set moving boundary problems the new level-set solution needs to be known before the fvMbSolver can perform its time step. Therefore, a callOrder is specified in the propertiesFile for the solvers, couplers and the adaptation. According to the callOrder solvers and couplers are set to active or empty and the adaptation can be turned on and off. The callOrder is updated in each step of the advance time step iteration inside the time step loop ( updateCallOrder() ). In the first step of level-set moving boundary problems the LS solver is set active and the fvMb solver is set to idle. In the subsequent step the LS solver is deactivated, while the fvMb solver is activated.
Definition at line 153 of file executionrecipe.h.
|
inlineprotected |
Definition at line 63 of file executionrecipe.h.
Definition at line 289 of file executionrecipe.h.
Definition at line 261 of file executionrecipe.h.
Definition at line 67 of file executionrecipe.h.
Definition at line 107 of file executionrecipe.h.
Definition at line 59 of file executionrecipe.h.
|
inlineprotected |
Definition at line 103 of file executionrecipe.h.
|
inlineprotected |
Definition at line 105 of file executionrecipe.h.
|
inlineprotected |
Definition at line 73 of file executionrecipe.h.
Definition at line 85 of file executionrecipe.h.
|
inlinevirtual |
Reimplemented in ExecutionRecipeIntraStepCoupling, and ExecutionRecipeSolutionIteration.
Definition at line 353 of file executionrecipe.h.
|
inlinevirtual |
Reimplemented in ExecutionRecipeIntraStepCoupling, and ExecutionRecipeSolutionIteration.
Definition at line 40 of file executionrecipe.h.
|
private |
Definition at line 132 of file executionrecipe.h.
|
private |
Definition at line 126 of file executionrecipe.h.
|
private |
Definition at line 131 of file executionrecipe.h.
|
private |
Definition at line 111 of file executionrecipe.h.
|
private |
Definition at line 129 of file executionrecipe.h.
|
protected |
Definition at line 81 of file executionrecipe.h.
|
private |
Definition at line 123 of file executionrecipe.h.
|
private |
Definition at line 116 of file executionrecipe.h.
|
private |
Definition at line 117 of file executionrecipe.h.
|
private |
Definition at line 119 of file executionrecipe.h.
|
private |
Definition at line 114 of file executionrecipe.h.
|
private |
Definition at line 113 of file executionrecipe.h.
|
private |
Definition at line 115 of file executionrecipe.h.
|
private |
Definition at line 130 of file executionrecipe.h.
|
private |
Definition at line 110 of file executionrecipe.h.
|
private |
Definition at line 128 of file executionrecipe.h.
|
private |
Definition at line 121 of file executionrecipe.h.
Definition at line 83 of file executionrecipe.h.