Scope of the program

For general DAEs the index and a set of consistent initial values have to be determined. The module consistentValuesIndex computes both as described in

[1] D. Estévez Schwarz and R. Lamour A new approach for computing consistent initial values and Taylor coefficients for DAEs using projector based constrained optimization Numerical Algorithms 2017, DOI 10.1007/s11075-017-0379-9

[2] D. Estévez Schwarz and R. Lamour: A new projector based decoupling of linear DAEs for monitoring singularities. Numerical Algorithms, 73 (2), pp 535–565 (2016).

and

[3] D. Estévez Schwarz and R. Lamour Consistent initialization for higher-index DAEs using a projector based minimum-norm specification Preprint 2016-01, Fachbereich Mathematik, Humboldt-Universität zu Berlin.

To compute consistent initial values we solve the minimization problem

\text{min } ||P(t_0)(x-\alpha)||_2, \text{s.t.
                    } g^{[k]}(x^{(k)},x^{(k-1)},\ldots,x,t_0) = 0,

with user given \alpha (see [1]). In terms of [3] the minimization problem is equivalent to a classical initial value problem formulation

\Pi(x-\alpha) = 0,
                    g^{[k]}(x^{(k)},x^{(k-1)},\ldots,x,t_0) = 0,

where \Pi describes an appropriate projector and the rank of \Pi coincides with the degree of freedom of the DAE.

Additional user-given requirements belonging to single components and/or relations between components can be realized using a function u. In this case we solve the minimization problem

\text{min } ||P(t_0)(x-\alpha)||_2,
                    \text{s.t. } g^{[k]}(x^{(k)},x^{(k-1)},\ldots,x,t_0)
                    = 0,
                    u(x) = 0.

Therefore, in terms of [3] the minimization problem is equivalent to a classical initial value problem formulation

\Pi_u(x-\alpha) = 0,
                    g^{[k]}(x^{(k)},x^{(k-1)},\ldots,x,t_0) = 0,
                    u(x) = 0,

where \Pi_u describes an appropriate projector and the subscript u underlines that \Pi_u is influenced by u.

The determination of the index in the computed consistent values bases on [1], [2].

To start the module the user has to provide \alpha, an initial guess for the consistent initial value, and a class containing the DAE. Finally, a main program has to be written. Hints for coding a DAE and the main program are given in this documentation. Take also account of the parameter description of the module consistentValuesIndex, which has to be called in the main programm.

InitDAE has been conceived for academic purposes. It delivers precise information thanks to algorithmic differentiation. For examples of moderate size (we tested DAEs of dimension up to 600) the run time was acceptable.