IDA/Analysis

From ASCEND
Revision as of 12:53, 21 March 2015 by Jpye (talk | contribs)
Jump to navigation Jump to search

This pages contains some notes on the analysis algorithm that is used in our IDA solver in ASCEND. Work in progress!

  1. reanalyze_solver_lists, to update the rels/vars in the system system according to the WHENs
  2. set the 'nonbasic' flag to zero for all normal variables, and to one for the independent variable ('x')
  3. 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...
  4. integrator_ida_flag_rels
  5. integrator_ida_sort_rels_and_vars
  6. integrator_ida_create_lists
  7. integrator_ida_check_diffindex
  8. (there is some code commented out here to do with checking the structure of the system for structural singularity etc)
  9. integrator_ida_check_index should tell the user if there is an index problem (perhaps we can apply automatic index reduction?)
  10. some checks of the diffvars: do we have a single indep var, is the indep var what we expected it to be
  11. copy the list of observed vars (both continuous and discrete) into the integ data struct.
  1. work out the list of observed variables and store them in sys->obs.

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.