IDA/Analysis
This pages contains some notes on the analysis algorithm that is used in our IDA solver in ASCEND. Work in progress!
- reanalyze_solver_lists, to update the rels/vars in the system system according to the WHENs
- set the 'nonbasic' flag to zero for all normal variables, and to one for the independent variable ('x')
- 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...
- integrator_ida_flag_rels
- integrator_ida_sort_rels_and_vars
- integrator_ida_create_lists
- integrator_ida_check_diffindex
- (there is some code commented out here to do with checking the structure of the system for structural singularity etc)
- integrator_ida_check_index should tell the user if there is an index problem (perhaps we can apply automatic index reduction?)
- some checks of the diffvars: do we have a single indep var, is the indep var what we expected it to be.
- copy the list of observed vars (both continuous and discrete) into the integ data struct.
TODO complete this section.
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.