Integration of conditional models: Difference between revisions
No edit summary |
No edit summary |
||
| Line 9: | Line 9: | ||
The implementation of boundary detection for IDA is detailed in the IDA manual<ref>[https://computation.llnl.gov/casc/sundials/documentation/ida_guide/node5.html#SECTION00555000000000000000 https://computation.llnl.gov/casc/sundials/documentation/ida_guide/node5.html]</ref> | The implementation of boundary detection for IDA is detailed in the IDA manual<ref>[https://computation.llnl.gov/casc/sundials/documentation/ida_guide/node5.html#SECTION00555000000000000000 https://computation.llnl.gov/casc/sundials/documentation/ida_guide/node5.html]</ref> | ||
Data structures for [[conditional modelling]] in ASCEND already exist that can represent boundaries arising from real-valued inequality relations, see for example {{src|models/test/ida/boundaries.a4c}}. A good starting point is {{doxy|d6/de9/conditional_8h.html|system/conditional.h}}. | Data structures for [[conditional modelling]] in ASCEND already exist that can represent boundaries arising from real-valued inequality relations, see for example {{src|models/test/ida/boundaries.a4c}}. A good starting point is {{doxy|d6/de9/conditional_8h.html|system/conditional.h}} for the data structures, and {{doxy|d8/d07/analyze_8h.html|system/analyse.h}} for some functions and routines that manipulate those data structures (used by [[CMSlv]]). | ||
== References == | == References == | ||
Revision as of 22:50, 24 January 2011
Integration of conditional models means solving dynamic systems of equations (ODEs or DAEs) that contain 'branching' or conditional logic. For example, if a flow velocity increases over time, we would like the solver to at some point switch from a laminar flow model to a turbulent flow model. This requires a solver that can perform boundary detection and then turn on and off equations within the model, according to which are applicable at that point in the simulation.
This work is proposed as part of the complete integration of the IDA solver in ASCEND.
A good paper containing a discussion of issues relating to the implementation of this is given by Majer et al[1].
The implementation of boundary detection for IDA is detailed in the IDA manual[2]
Data structures for conditional modelling in ASCEND already exist that can represent boundaries arising from real-valued inequality relations, see for example models/test/ida/boundaries.a4c. A good starting point is doxy:system/conditional.h for the data structures, and doxy:system/analyse.h for some functions and routines that manipulate those data structures (used by CMSlv).
References
- ↑ C. Majer, W. Marquardt and E. D. Gilles, 1995, Reinitialization term of DAE's after discontinuities, Computers and Chemical Engineering 19, 507-512, doi:10.1016/0098-1354(95)87087-3.
- ↑ https://computation.llnl.gov/casc/sundials/documentation/ida_guide/node5.html