Skip to content

CVODES #262

@wds15

Description

@wds15

Summary:

replace cvode integrator with codes. So remove cvode and replace functionality by cvodes.

Description:

The current cvode integrator uses a coupled ode system in order to obtain sensitivities of an ODE system. This is handled in a fully integrated way by cvodes. Benefits of using cvodes:

  • always faster than cvode+coupled
  • greater robustness (in particular for large ODE systems)
  • less code to maintain as more work is done from library
  • Cvodes supports adjoint sensitivity analysis which can be included at a later stage; this allows to calculate directly the sensitivities of a cost function wrt to parameters which is useful if we only need the sensitivities of a single state which enters the likelihood.

Reproducible Steps:

Bad performance with big ODE systems. For example, the PERC model. Other big models are equally suitable to show slow performance of the cvode/coupled system.

Current Output:

Some ODE systems make the cvode/coupled integrator very slow.

Expected Output:

Large ODE systems should not slow down the integrator.

Additional Information:

This is a large patch and we may just use this as a basis to split into smaller bits and pieces. This patch introduces also the ode_model object which can be used to enable analytic Jacobians for ODE systems via template specialization. Moreover, the decoupling operation is split out of the coupled_ode system object. This patch can form the basis for a nice refactoring of the coupled_ode_system.

Current Version:

None. Only the current develop version of math

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions