-
-
Notifications
You must be signed in to change notification settings - Fork 199
Description
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