12#ifndef DUMUX_PYTHON_COMMON_TIMELOOP_HH 
   13#define DUMUX_PYTHON_COMMON_TIMELOOP_HH 
   17#include <dune/python/pybind11/pybind11.h> 
   18#include <dune/python/pybind11/stl.h> 
   22template <
class Scalar, 
class... options>
 
   26    using pybind11::operator
""_a;
 
   29    cls.def(pybind11::init([](Scalar startTime, Scalar dt, Scalar endTime, 
bool verbose){
 
   30        return new TimeLoop(startTime, dt, endTime, verbose);
 
   31    }), 
"startTime"_a, 
"dt"_a, 
"endTime"_a, 
"verbose"_a=
true);
 
   36    cls.def_property_readonly(
"isCheckPoint", &TimeLoop::isCheckPoint);
 
   41        "startTime"_a, 
"dt"_a, 
"endTime"_a, 
"verbose"_a=
true 
   45    cls.def(
"setMaxTimeStepSize", &TimeLoop::template setMaxTimeStepSize<Scalar>, 
"dt"_a);
 
   49        "setPeriodicCheckPoint",
 
   50        &TimeLoop::template setPeriodicCheckPoint<Scalar, Scalar>,
 
   51        "interval"_a, 
"offset"_a=0.0
 
   53    cls.def(
"setCheckPoints", [](
TimeLoop& self, 
const std::vector<Scalar>& checkPoints) {
 
   54        self.setCheckPoint(checkPoints.begin(), checkPoints.end());
 
 
   61    pybind11::class_<CheckPointTimeLoop<Scalar>> cls(scope, clsName);
 
 
A time loop with a check point mechanism.
Definition common/timeloop.hh:496
The default time loop for instationary simulations.
Definition common/timeloop.hh:139
void advanceTimeStep() override
Advance time step.
Definition common/timeloop.hh:239
void start()
Tells the time loop to start tracking the time.
Definition common/timeloop.hh:169
void finalize(const Communicator &comm=Dune::MPIHelper::getCommunication())
Print final status and stops tracking the time.
Definition common/timeloop.hh:434
void setTimeStepSize(Scalar dt) final
Set the current time step size to a given value.
Definition common/timeloop.hh:320
bool finished() const override
Returns true if the simulation is finished.
Definition common/timeloop.hh:385
void reportTimeStep() const
State info on cpu time.
Definition common/timeloop.hh:417
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:353
void reset(std::chrono::duration< Rep1, Period1 > startTime, std::chrono::duration< Rep2, Period2 > dt, std::chrono::duration< Rep3, Period3 > tEnd, bool verbose=true)
Reset the time loop.
Definition common/timeloop.hh:197
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:282
Manages the handling of time dependent problems.
Definition python/assembly/fvassembler.hh:18
void registerTimeLoop(pybind11::handle scope, pybind11::class_< CheckPointTimeLoop< Scalar >, options... > cls)
Definition python/common/timeloop.hh:23
TimeLoop(std::chrono::duration< Rep1, Period1 >, std::chrono::duration< Rep2, Period2 >, std::chrono::duration< Rep3, Period3 >, bool verbose=true) -> TimeLoop< std::conditional_t< std::is_floating_point_v< std::common_type_t< Rep1, Rep2, Rep3 > >, std::common_type_t< Rep1, Rep2, Rep3 >, double > >