Integration of conditional models: Difference between revisions

From ASCEND
Jump to navigation Jump to search
No edit summary
No edit summary
Line 16: Line 16:
== See also ==
== See also ==
* [[Conditional modelling]]
* [[Conditional modelling]]
* [[Integrator API]]


[[Category:Development]]
[[Category:Development]]

Revision as of 00:56, 3 February 2011

This article is about planned development or proposed functionality. Comments welcome.

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

  1. 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.
  2. https://computation.llnl.gov/casc/sundials/documentation/ida_guide/node5.html

See also