IDA/Analysis
This pages contains some notes on the analysis algorithm that is used in our IDA solver in ASCEND. Work in progress!
The IDA integrator works a bit differently in the analysis phase to DOPRI5 and LSODE (it would be nice to be able to unify these things).
See also Analysis in the Integrator API.
Currently it looks like overkill, and we're hoping that a re-think will help to streamline this code.
In integrator_ida_analyse, we carefully deal with the case where a variable is declared as differential even when a deriv
- reanalyze_solver_lists, to update the rels/vars in the system system according to the WHENs
- integrator_ida_check_vars, to check for differential variables that are not incident, downgrading 'differential' variables to algebraic variables if no derivative is present, and marking any
- run integrator_ida_flag_rels, then
- integrator_ida_sort_rels_and_vars.
- integrator_ida_create_lists and
- integrator_ida_check_diffindex. Then
- integrator_ida_check_index checks the index of the DAE system, then
- work out the list of observed variables and store them in sys->obs.
TODO complete this section.