July 20, 1996
This distribution consists of the following files
A. manpak.f
B. daepak.shar
C. drivers.f
D. manaux.f
The packages were written by
W. C. Rheinboldt
Dept. of Mathematics,
University of Pittsburgh
Pittsburgh, PA 15260
wcrhein@vms.cis.pitt.edu
Brief descriptions follow:
A. manpak.f
========
is a package of utility programs for computations with submanifolds
of R^NVAR that are implicitly defined by a system of nonlinear
equations F(x) = 0. Here F is a mapping from R^NVAR to R^NALG,
NALG < NVAR, which is sufficiently smooth on an open set E in
R^NVAR and satisfies rank DF(x) = NALG for all x in
M = { u in E; F(u) = 0 }
Then M is a submanifold of R^NVAR of dimension MDIM = NVAR-NALG.
The routines in the package establish several types of local
parametrizations (coordinate systems) and -- once available --
compute points on the manifold with given local coordinates.
In addition, there are routines for computing the first and
second derivatives of these local parametrizations and some
other quantities, such as sensitivity measures and the second
fundamental tensor.
For a discussion of the algorithms see
W. C. Rheinboldt, MANPAK: A Set of Algorithms for
Computations on Implicitly Defined Manifolds
Inst. for Comp. Math. and Appl., Univ. of Pittsburgh,
Tech. Report. TR-ICMA-96-198, July 1996
J. Comp. and Math. Applic. submitted
Routines in the package
-----------------------
AUGM Routine for generating a specific augmented matrix
COBAS General-purpose routine for computing an orthonormal basis
matrix of the nullspace of a given NALG x NVAR matrix with
rank = NALG
CURVT Computes approximations of the curvature and principal normal
of a path on the manifold passing through three consecutive
points. This also provides an approximatation of the diagonal
terms of the second fundamental tensor.
DGPHI Computes the first derivative of the local parametrization
of a general local coordinate system.
D2GPHI Computes the second derivative of the local parametrization
of a general local coordinate system.
DTPHI Differentiating the local parametrization of a tangential
local coordinate system
GCBAS Computes an orthonormal basis matrix of a local coordinate
space consisting of MDIM canonical basis vectors.
GLOB Globalizes a vector of local coordinates
GNBAS Computes an orthonormal basis matrix of a local coordinate
space that contains the NVAR-th canonical basis vector
GPHI Computes a point on M with specified local coordinates in
a general local coordinate system.
MOVFR Uses a moving frame algorithm for ordering a local
coordinate basis such that its orientation agrees with that
of another basis
ORIENT Uses a combinatorial algorithm for ordering a local
coordinate basis such that its orientation agrees with that
of another basis
PROJ Computes the orthogonal projection of a point onto a given
local coordinate space
SENMAP Computes the sensitivity map at a given point with respect
to specified natural parameters
SENSNR Computes the Euclidean norm of the sensitivity map at a
given point with respect to specified natural parameters
TPHI Computes a point on M with specified local coordinates in
a tangential local coordinate system
TSFT Computes a component of the second fundamental tensor in
a tangential local coordinate system.
B. daepak.shar
===========
is a package of subroutines based on MANPAK and MANAUX for solving
the following six types of algebraically explicit differential
algebraic equations (DAEs); that is, of DAEs in which either the
algebraic equations and/or the algebraic variables are explicitly
specified.
DAEN1: Solver for Nonlinear, index 1 problems
F(u,u',w,t) = 0, u' = du/dt
with explicitly given algebraic variable,
subject to the consistent initial conditions
u(t0) = U0, u'(t0) = UP0, w(t0) = W0, F(U0,UP0,W0,T0) = 0
DAEN2: Solver for nonlinear, index-2 problems
G(u,u',w,t) = 0
F(u,t) = 0
subject to the consistent initial conditions
u(t0) = u0, u'(t0) = p0, w(t0) = w0,
G(u0,p0,t0,w0) = 0, F(u0,t0) = 0
DAEQ2: Solver for Quasi-Linear, index-2 problems
A(u,t)u' + B(u,t)w = G(u,t)
F(u,t) = 0
subject to the partial initial condition
u(t0) = u0, F(u0,t0) = 0
The routine determines the remaining initial conditions
up(t0) = up0, w(t0) = w0
such that
A(u0,t0)up0 + B(u0,t0)w0 = G(u0,t0)
DAEQ3: Solver for quasi-linear, index-3 problems of second order
A(u,u',t)u" + B(u,u',t)w = G(u,u',t)
F(u,t) = 0
subject to the partial initial condition
u(t0) = u0, u'(t0) = up0, such that F(u0,t0) = 0
The routine determines the remaining initial conditions
u"(t0) = upp0, w(t0) = w0,
such that
A(u0,up0,t0)upp0 + B(u0,up0,t0)w0 = G(u0,up0,t0)
DAESQ1: Solver for Quasi-linear, autonomous, index-1 problems
A(u)u' = G(u),
F(u) = 0,
u(0) = u0, F(u0) = 0
with optional facility for handling Singular (impasse) points.
DAEUL3: Solver for the EUler Lagrange problem of index 3
M(u,t)u" + D_uF(u,t)^T w = G(u,u',t)
F(u,t) = 0
subject to the consistent initial conditions
u(t0) = u0, u'(t0) = du0, F(u0,t0) = 0
For existence results on the above classes of DAEs and
algorithms for the six solvers see
W. C. Rheinboldt, Solving Algebraically Explicit DAEs
with the MANPAK - Manifold - Algorithms
Inst. for Comp. Math. and Appl., Univ. of Pittsburgh,
Tech. Reportt. TR-ICMA-96-199, July 1996
J. Comp. and Math. Applic. submitted
For an analysis of impasse points and the algorithms used
in DAESQ1 see
P. Rabier and W. C. Rheinboldt, On Impasse Points of
Quasilinear Differential Algebraic Equations
J. Math. Anal. and Appl. 181, 1994, 429-454
P. Rabier and W. C. Rheinboldt, On the Computation of Impasse
Points of Quasilinear Differential Algebraic Equations
Math. of Comput. 62, 1994, 133-154
For the algorithm used in DAEUL3 see
P. Rabier and W. C. Rheinboldt,
Numerical Solution of Euler-Lagrange Equations for
Constrained Mechanical Systems
SIAM J. Num. Anal. 32, 1995, 318-329
W. C. Rheinboldt and B. Simeon, Performance Analysis for
Solving Euler-Lagrange Equations
Appl. Math. Letters 8, 1995, 77-82
SUBROUTINES IN THE PACKAGE
DAEN1 Driver for solving the coresponding DAE liested above
DRVN1 Rk-step driver for DAEN1
DYN1 Evaluates the local ODE for DAEN1
INTN1 Output interpolation for DAEN1
WSTN1 Writes statistics of a run with DAEN1
DAEN2 Driver for solving the coresponding DAE liested above
DRVN2 Rk-step driver for DAEN2
DYN2 Evaluates the local ODE for DAEN2
INTN2 Output interpolation for DAEN2
MATN2 Evaluates the iteration matrix for the iterative solver
used in DAEN2
EVXN2 Evaluates the next global point in DAEN2
NWTN2 Chord Newton process for DAEN2
WSTN2 Writes statistics of a run with DAEN2
DAEQ2 Driver for solving the coresponding DAE liested above
DRVQ2 Rk-step driver for DAEQ2
DYQ2 Evaluates the local ODE for DAEQ2
INTQ2 Output interpolation for DAEQ2
WSTQ2 Writes statistics of a run with DAEQ2
DAEQ3 Driver for solving the coresponding DAE liested above
DRVQ3 Rk-step driver for DAEQ3
DYQ3 Evaluates the local ODE for DAEQ3
INTQ3 Output interpolation for DAEQ3
EVXQ3 Evaluates the next global point in DAEQ3
SLVQ3 Solver for the reduced linear system in DAEQ3
WSTQ3 Writes statistics of a run with DAEQ3
DAESQ1 Driver for solving the coresponding DAE liested above
DRVSQ1 Rk-step driver for DAEQ2
DYSQ1 Evaluates the local ODE for DAESQ1 at points not near
a singularity
DYSYN Evaluates the local ODE for DAESQ1 at points near
a singularity
SNAUG Evaluates an augmented matrix used in the scaling
procedure near singularities.
WSTSQ1 Writes statistics of a run with DAESQ1
DAEUL3 Driver for solving the coresponding DAE liested above
DRVEUL Rk-step driver for DAEUL3
DYEUL Evaluates the local ODE for DAEUL3
EVXEUL Evaluates the next global point in DAEUL3
WSTEUL Writes statistics of a run with DAEUL3
C. drivers.shar
============
A set of sample drivers for the DAE solvers in daepak.shar
For DAEN1:
P1N1 'Figure Eight' problem with an exact solution
P2N1 Modified orgenator problem
P3N1 A batch reactor model
For DAEN2:
P1N2 A problem by R. Maerz and C. Tischendorf
with exact solution
P2N2 A problem by U. Ascher and L. Petzold
with exact solution
P3N2 K. Brenan's Trajectory-Prescribed-Path Control Problem
P4N2 K. Brenan's index-two test problem with exact solution
For DAEQ2:
P1Q2 A problem by U. Ascher and L. Petzold
with exact solution
P2Q2 K. Brenan's index-two test problem with exact solution
P3Q2 A version of the pendulum problem by C. W.Gear,
B. Leimkuhler, G.K. Gupta
For DAEQ3:
P1Q3 A linear test problem with exact solution
P2Q3 A nonlinear test problem with exact solution
For DAESQ1:
P1SQ1 A simple test problem with exact solution
P2SQ1 A problem by F. Takens with impasse points
For DAEUL3:
P1EUL An autonomous pendulum version
P2EUL A nonautonomous double-pendulum with rotating
pivot-point
D. manaux.f
========
is a package of subroutines for uniform support of MANPAK
and DAEPAK. The package contains the following subroutines:
ODE Solvers
DOPSTA Dormand-Prince order 5 RK-step routine for autonomous
ODEs using reverse communication for function calls
DOPSTN Dormand-Prince order 5 RK-step routine for non-autonomous
ODEs using reverse communication for function calls
Linear algebra routines
BIDIA Reduces a general M by N matrix A, M >= N to an M by N
upper bidiagonal matrix
DDIST2 Funcion for computing either the Euclidean distance
between two vectors X and Y or the Euclidean norm of
one such vector X
HOUSG Generates a Householder reflector
HOUSL Householder reflector times matrix
HOUSR Matrix times Householder reflector
LQF LQ factorization with column pivoting
LQAS For an M x N matrix A with rank A = M <= N and given
M-vector y, computes the solution x of A x = y orthogonal
to ker A
LUF LU factorization with row pivoting
LUS1 Solves a linear system for an LU factored matrix A and
a given vector X
LUSK Solves a linear system for an LU factored matrix A and
a given matrix B on the right side
QRF QR factorization with column pivoting
QORG Generate a matrix Q with orthonormal columns as the
product of given Householder reflectors
QRS Least squares solver
ROTG Generates a plane rotation
ROTML Plane rotation times matrix
ROTMR Matrix times plane rotation
SVD Singular value decomposition of upper bidiagonal matrix
SVD2D singular value decomposition of a 2-by-2 triangular matrix
Other support routines
MSGPRT Uniform message-printing routine
DMACH Returns relative machine precision and safe minimum