18 #ifndef BUBBLEPROFILER_INTEGRATION_POLICY_HPP_INCLUDED 19 #define BUBBLEPROFILER_INTEGRATION_POLICY_HPP_INCLUDED 23 #include <boost/numeric/odeint.hpp> 27 template <
class Parameter,
29 class Stepper = boost::numeric::odeint::runge_kutta4<
39 template <
class System,
class Observer>
41 Parameter from, Parameter to, Parameter step_size,
42 Observer observer)
const;
45 template <
class Parameter,
class State,
class Stepper>
46 template <
class System,
class Observer>
48 System system, State& state, Parameter from, Parameter to,
49 Parameter step_size, Observer observer)
const 52 return boost::numeric::odeint::integrate_adaptive(
53 stepper, system, state, from, to, step_size, observer);
56 template <
class Parameter,
class State,
class Stepper>
65 template <
class System,
class Observer>
67 Parameter from, Parameter to, Parameter step_size,
68 Observer observer)
const;
71 Parameter abs_err{1.e-6};
72 Parameter rel_err{1.e-6};
75 template <
class Parameter,
class State,
class Stepper>
76 template <
class System,
class Observer>
78 System system, State& state, Parameter from, Parameter to,
79 Parameter step_size, Observer observer)
const 81 auto stepper = boost::numeric::odeint::make_controlled(abs_err, rel_err,
84 return boost::numeric::odeint::integrate_adaptive(
85 stepper, system, state, from, to, step_size, observer);
boost::numeric::odeint::range_algebra algebra_type
int integrate_system(System system, State &state, Parameter from, Parameter to, Parameter step_size, Observer observer) const
~Fixed_step_size_integrator()=default
int integrate_system(System system, State &state, Parameter from, Parameter to, Parameter step_size, Observer observer) const
void set_relative_error(Parameter err)
void set_absolute_error(Parameter err)