ModiaBase.jl

Core algorithms for equation-based modeling
Author ModiaSim
Popularity
9 Stars
Updated Last
1 Year Ago
Started In
February 2021

ModiaBase

ModiaBase is part of ModiaSim. It is usually used via Modia. The ModiaBase documentation provides details of the algorithms and how to use them.

ModiaBase provides basic algorithms and functionality that is needed for equation-based modeling to transform a (potentially high-index) Differential-Algebraic Equation system (DAE), to an Ordinary Differential Equation system in state space form (ODE). It is used by Modia, but can also be utilized in another context. Especially the following functionality is provided:

• Simplify linear Integer equations (many equations of object-oriented models are linear Integer equations and can be pre-processed exactly)

• to remove alias variables and equations,
• to remove redundant equations,
• to provide definite values for variables that can have arbitrary values if this makes sense,
• to make state constraints structurally visible.
• Find a variable assignment of an equation system, in order to transform the equation system in a directed graph that can be further processed.

• Find the strong components in a directed graph (with the algorithm of Tarjan) to determine algebraic equation systems that must be solved together.

• Sort an equation system (= transform to Block Lower Triangular form), to determine the order in which the equations have to be evaluated.

• Reduce the dimension of algebraic equation systems by tearing.

• Find equations that need to be differentiated one or more times (with the algorithm of Pantelides) in order that the DAE can be transformed to an ODE.

• Analytically differentiate the found equations.

• Statically select ODE states and transform to ODE form (hereby identifying linear equation systems that must be solved during simulation).

Installation

Typically, a user installs Modia and does not need to install ModiaBase separately. If needed, ModiaBase is installed with (Julia 1.7 is required):

`julia> ]add ModiaBase`