24#ifndef DUMUX_PYTHON_COMMON_TIMELOOP_HH
25#define DUMUX_PYTHON_COMMON_TIMELOOP_HH
29#include <dune/python/pybind11/pybind11.h>
30#include <dune/python/pybind11/stl.h>
34template <
class Scalar,
class... options>
38 using pybind11::operator
""_a;
41 cls.def(pybind11::init([](Scalar startTime, Scalar dt, Scalar endTime,
bool verbose){
42 return new TimeLoop(startTime, dt, endTime, verbose);
43 }),
"startTime"_a,
"dt"_a,
"endTime"_a,
"verbose"_a=
true);
48 cls.def_property_readonly(
"isCheckPoint", &TimeLoop::isCheckPoint);
50 cls.def(
"reset", &
TimeLoop::reset,
"startTime"_a,
"dt"_a,
"endTime"_a,
"verbose"_a=
true);
56 cls.def(
"setPeriodicCheckPoint", &TimeLoop::setPeriodicCheckPoint,
"interval"_a,
"offset"_a=0.0);
57 cls.def(
"setCheckPoints", [](
TimeLoop& self,
const std::vector<double>& checkPoints) {
58 self.setCheckPoint(checkPoints);
65 pybind11::class_<CheckPointTimeLoop<Scalar>> cls(scope, clsName);
Definition: python/assembly/fvassembler.hh:30
void registerTimeLoop(pybind11::handle scope, pybind11::class_< CheckPointTimeLoop< Scalar >, options... > cls)
Definition: python/common/timeloop.hh:35
The default time loop for instationary simulations.
Definition: common/timeloop.hh:114
void setMaxTimeStepSize(Scalar maxDt)
Set the maximum time step size to a given value.
Definition: common/timeloop.hh:271
void advanceTimeStep() override
Advance time step.
Definition: common/timeloop.hh:181
void start()
Tells the time loop to start tracking the time.
Definition: common/timeloop.hh:130
void finalize(const Communicator &comm=Dune::MPIHelper::getCommunication())
Print final status and stops tracking the time.
Definition: common/timeloop.hh:363
void reset(Scalar startTime, Scalar dt, Scalar tEnd, bool verbose=true)
Reset the time loop.
Definition: common/timeloop.hh:155
void setTimeStepSize(Scalar dt) final
Set the current time step size to a given value.
Definition: common/timeloop.hh:256
bool finished() const override
Returns true if the simulation is finished.
Definition: common/timeloop.hh:314
void reportTimeStep() const
State info on cpu time.
Definition: common/timeloop.hh:346
Scalar timeStepSize() const final
Returns the suggested time step length so that we don't miss the beginning of the next episode or cr...
Definition: common/timeloop.hh:282
Scalar time() const final
Return the time before the time integration. To get the time after the time integration you have to ...
Definition: common/timeloop.hh:219
A time loop with a check point mechanism.
Definition: common/timeloop.hh:409
Manages the handling of time dependent problems.