Character processing for Modelica includes:
- remove the object-oriented structure and get a hybrid DAE (flat Modelica)
- match, index decrease, randomness to get ODE
- perform optimization (gaps, elimination of general subexpression, etc.)
- generate code for a specific solver
OpenModelica can also solve the system in DAE mode without converting it to ODE, and I think other Modelica tools can do it too.
The โModelica Flat Codeโ is the Modelica code where the orientation of the object is removed, the relation of equations is expanded to normal equations. The result is a hybrid DAE.
See Modelica Spec 3.3 for more information about all of this (for example, Appendix C): https://modelica.org/documents/ModelicaSpec33Revision1.pdf
source share