Search code examples
openmodelica

How to find nonlinear systems of equations information


Dymola generates a summary of the linear and nonlinear systems of equations. Here is an example of the Dymola output:

Sizes of nonlinear systems of equations: {6, 11, 44}
Sizes after manipulation of the nonlinear systems: {1, 9, 11}

Is the same information available when using OpenModelica? If so, what is the process for generating a nonlinear systems of equations summary?

Thanks, Michael


Solution

  • You can use -d=backenddaeinfo which prints things like:

    Non-linear torn systems: 6 {2 1,1 1,1 6,2 9,2 3,2 1}
    

    Or you use in OMEdit Simulate with transformational debugger and check the equations and blocks in detail. Would in the GUI display something like:

    non-linear (torn), unknowns: 3, iteration variables: 2
    (torn) der(pumps.heatTransfer.states[1].h) := Modelica.Media.Water.IF97_Utilities.h_pT_der(pumps.medium.p, pumps.medium.T, $cse5, der(pumps.medium.p), der(pumps.medium.T))
    (residual) Modelica.Media.Water.IF97_Utilities.rho_pT_der(pumps.medium.p, pumps.medium.T, $cse5, $DER.pumps.medium.p, $DER.pumps.medium.T) - $DER.pumps.rho = 0
    (residual) pumps.medium.p * $DER.pumps.rho + ($DER.pumps.heatTransfer.states[1].h - $DER.pumps.medium.u) * pumps.rho ^ 2.0 - $DER.pumps.medium.p * pumps.rho = 0