50 const double h0,
const double h_min,
51 const double h_max,
const double rel_h_min,
52 const double rel_h_max,
const double tol,
53 std::vector<double>
const& fixed_times_for_output)
67 std::tuple<bool, double>
next(
double solution_error,
68 int number_iterations,
79 const double _kP = 0.075;
80 const double _kI = 0.175;
81 const double _kD = 0.01;
112 const bool previous_step_accepted,
const double _h_max
maximum step size.
EvolutionaryPIDcontroller(const double t0, const double t_end, const double h0, const double h_min, const double h_max, const double rel_h_min, const double rel_h_max, const double tol, std::vector< double > const &fixed_times_for_output)
std::vector< double > const _fixed_times_for_output
const double _kD
Parameter.
std::tuple< bool, double > next(double solution_error, int number_iterations, NumLib::TimeStep ×tep_previous, NumLib::TimeStep ×tep_current) override
const double _rel_h_min
in
const double _kI
Parameter.
const double _kP
Parameter.
const double _h_min
minimum step size.
virtual bool canReduceTimestepSize(NumLib::TimeStep const ×tep_previous, NumLib::TimeStep const ×tep_current) const override
Query the timestepper if further time step size reduction is possible.
bool isSolutionErrorComputationNeeded() const override
double limitStepSize(const double h_new, const bool previous_step_accepted, NumLib::TimeStep const ×tep_current) const
const double _h0
initial time step size.
const double _rel_h_max
in
Interface of time stepping algorithms.