Permalink
Commits on Feb 13, 2018
  1. Enable the adaption of the maximal step size of dense output steppers. (

    friedrichatgc authored and mariomulansky committed Feb 13, 2018
    #225)
    
    * Enable the adaption of the maximal step size of dense output steppers.
    
    For efficient simulation of "hybrid" systems the integrator must approach
    the sample points where the discrete variables change their value.
    
    (hybrid systems = systems of ODEs which include discrete variables, beeing
    internal variables of the system which only change their value at discrete
    sample points)
    
    Approaching sample points can be done by adapting the maximal integrator
    step size to min(max_step_size, next_sample_point_time - current_time)
    before each do_step.
    
    To achive this in odeint for all dense output steppers the following
    changes must be done (which does not change the existing API):
    - make private members in bulirsch_stoer_dense_out,
      default_step_adjuster, rosenbrock4_controller protected.
    - allow std::ref/boost::ref for step_adjuster in controlled_runge_kutta
      and controlled_runge_kutta and for stepper in rosenbrock4_dense_output
      by unwrapping these before use.
    This allows to pass the step adjusters by reference to the dense output
    steppers which than allows to change the maximal step size (in the step
    adjuster) before each call to do_step.
    
    * Added test for a reference controller in the Rosenbrock4 dense output stepper.
    
    * Make in bulirsch_stoer_dense_out only the required m_max_dt member
    protected not all.
    
    Extend the test in rosenbrock4.cpp to test that the controller is a
    reference and the maximal step size is applied.
    
    * Fixed build with gcc-4.8
Commits on Jan 20, 2018
  1. Fixed dense_output_runge_kutta<Stepper, stepper_tag>::do_step(...) (#224

    friedrichatgc authored and mariomulansky committed Jan 20, 2018
    )
    
    do_step must return the pair (t, t+dt) but (t, dt) is returned.
    
    Note that dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>::do_step(...)
    works correctly.
Commits on Jan 5, 2018
  1. adds controlled initialization (#216)

    vhartman authored and mariomulansky committed Jan 5, 2018
    - errors might already occur during the first few steps if the stepsize is chosen too big
    - initialize_controlled takes advantage of controlled steppers to initialize the controlled abm stepper
Commits on Nov 12, 2017
  1. fix initialization with external stepper (#215)

    vhartman authored and mariomulansky committed Nov 12, 2017
    - time was not increased over the iterations
    - prediction of dxdt was taken before integrating with the supplied stepper instead of after
Commits on Sep 25, 2017
  1. Improvement to Order Selection, Error approximation in the ABM stepper (

    vhartman authored and mariomulansky committed Sep 25, 2017
    #218)
    
    * improves the order selection and modifies the error estimation accordingly
    
    - assumes constant stepsize for the next step to approximate error
    - moves the complete order adjustment to the class order_adjustment
    - slight changes to adaptive_adams_coefficients
    
    * changed the commit according to the requests and comments
Commits on Jul 25, 2017
  1. Merge pull request #214 from ds283/switch-fabs

    mariomulansky committed Jul 25, 2017
    Switch fabs for std::abs in new adaptive Adams-Bashforth-Moulton stepper
Commits on Jul 23, 2017
  1. Switch fabs for std::abs

    ds283 committed Jul 23, 2017
    - controlled_adams_bashforth_moulton.hpp, adaptive_adams_coefficients.hpp and pid_step_adjuster.hpp extract absolute values using fabs() without a namespace qualifier
    
    - if the integration value type is not double then this can cause problems, since fabs() is not required to have a long double overload. In such cases it is safer to use std::abs, and also this matches the rest of the odeint-v2 codebase
Commits on Jul 16, 2017
  1. Merge pull request #208 from vhartman/adaptive_adams

    mariomulansky committed Jul 16, 2017
    Added Controlled Adams Bashforth Moulton Stepper
Commits on Jul 8, 2017
Commits on Jul 7, 2017
Commits on Jul 6, 2017
  1. formatting

    vhartman committed Jul 6, 2017
  2. updated order selection

    vhartman committed Jul 6, 2017
Commits on Jul 5, 2017
  1. fixed ratio-selection

    vhartman committed Jul 4, 2017
Commits on Jul 4, 2017
  1. templating the pid adjuster

    vhartman committed Jul 4, 2017
Commits on Jul 3, 2017
  1. added detail:: to ref

    vhartman committed Jul 3, 2017
  2. completed testcases

    vhartman committed Jul 3, 2017
Commits on Jul 2, 2017
  1. moving to new formulation

    vhartman committed Jul 2, 2017
Commits on Jun 23, 2017
Commits on Jun 22, 2017
  1. corrected indentation

    vhartman committed Jun 22, 2017
Commits on Jun 21, 2017
  1. more test cases

    vhartman committed Jun 21, 2017
Commits on Jun 20, 2017
Commits on Jun 19, 2017
  1. minor naming changes

    vhartman committed Jun 19, 2017
  2. compiles without c++11

    vhartman committed Jun 19, 2017