This PR allows to perform time stepping directly from the TPS driver.
It is needed to couple with other external solvers such as Bolzmann.
New interfaces in TPS::Solver and children classes:
Solver::solveBegin() performs all the operations originally implemented in the Solver::solve method before the start of the time loop
Solver::solveStep() performs a single step of the time integrator
Solver::solveEnd() performs all the operations originally implemented in the Solver::solve method after the time loop is completed
Refactor TPS::CycleAvgJouleCoupling:
Deprecate the existing constructor; Implement a new constructor that reads the required parameters from the .ini file from the directory [cycle-avg-joule-coupling]
Remove the concept of nested time loops. Time stepping is based on the time stepping of the flow solver. An input parameters allow user to select how often to update the quasimagnetostatic solver
New interfaces in TPS::Tps:
Add wrappers for Solver::solveBegin(), Solver::solveStep(), Solver::solveEnd()
Simplified the instantiation of TPS::CycleAvgJouleCoupling solvers
Add new python wrappers for Tps::getInput, Tps::getRequiredInput, Tps::solveBegin(), Tps::solveStep(), Tps::solveEnd()
Example of ini file for refactored TPS::CycleAvgJouleCoupling:
This PR allows to perform time stepping directly from the TPS driver. It is needed to couple with other external solvers such as Bolzmann.
New interfaces in
TPS::Solver
and children classes:Solver::solveBegin()
performs all the operations originally implemented in theSolver::solve
method before the start of the time loopSolver::solveStep()
performs a single step of the time integratorSolver::solveEnd()
performs all the operations originally implemented in theSolver::solve
method after the time loop is completedRefactor
TPS::CycleAvgJouleCoupling
:.ini
file from the directory[cycle-avg-joule-coupling]
New interfaces in
TPS::Tps
:Solver::solveBegin()
,Solver::solveStep()
,Solver::solveEnd()
TPS::CycleAvgJouleCoupling
solversTps::getInput
,Tps::getRequiredInput
,Tps::solveBegin()
,Tps::solveStep()
,Tps::solveEnd()
Example of
ini
file for refactoredTPS::CycleAvgJouleCoupling
: