IDA/Analysis: Difference between revisions
Jump to navigation
Jump to search
Created page with "''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..." |
No edit summary |
||
| Line 1: | Line 1: | ||
''This pages contains some notes on the analysis algorithm that is used in our [[IDA]] solver in ASCEND. Work in progress!'' | ''This pages contains some notes on the analysis algorithm that is used in our [[IDA]] solver in ASCEND. Work in progress!'' | ||
# ''<tt>reanalyze_solver_lists</tt>'', 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') | |||
# ''<tt>integrator_ida_check_vars</tt>'', to check for differential variables that are not incident, downgrading 'differential' variables to algebraic variables if no derivative is present, and marking any... | |||
# ''<tt>integrator_ida_flag_rels</tt>'' | |||
# ''<tt>integrator_ida_sort_rels_and_vars</tt>'' | |||
# ''<tt>integrator_ida_create_lists</tt>'' | |||
# ''<tt>integrator_ida_check_diffindex</tt>'' | |||
# (there is some code commented out here to do with checking the structure of the system for structural singularity etc) | |||
# ''<tt>integrator_ida_check_index</tt>'' 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. | |||
# work out the list of observed variables and store them in <tt>sys->obs</tt>. | |||
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 [[Integrator API#Analysis|Analysis]] in the [[Integrator API]]. | |||
[[Category:Development]] | [[Category:Development]] | ||
Revision as of 12:52, 21 March 2015
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.
- 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.