FMSPF
PURPOSE: Compute Profile
To compute the profile vector from submatrix integer files
and optionally impose constraints.
SYNOPSIS
CALL FMSPF (LUS, NUMSF, NEWNUM, MAXEQ, LOWEQ, NUMEQ)
INPUT PARAMETERS:
- LUS(25,NUMSF) = Integer array.
File attributes for each submatrix file.
- NUMSF = Integer.
Number of submatrix files.
- NEWNUM(NUMEQ) = Integer array.
Flags constrained equations as follows:
= -1, constrained to a nonzero value,
= 0, constrained to a zero value,
= 1, value to be determined.
The equation numbers 1 through MAXEQ must correspond to the
equation numbers supplied on the submatrix integer files
LUS(2,i).
- MAXEQ = Integer.
Maximum number of equations.
= 0, compute profile vector only. Do not renumber equations
to eliminate constraints.
OUTPUT PARAMETERS:
- NEWNUM(MAXEQ) = Integer array.
Gives the new equation number I from the old equation number
J and flags equation constraint type as follows:
I = NEWNUM(J)
I < 0, equation I is constrained to a nonzero value.
I = 0, equation I is constrained to zero,
I > 0, equation I is to be determined.
- LOWEQ(NUMEQ) = Integer array.
Profile vector based on the new numbering system.
-
NUMEQ = Integer.
New number of equations.
DESCRIPTION:
This subroutine performs the following tasks:
- Eliminates equations whose solution value is
constrained to zero.
- Computes the vector NEWNUM(MAXEQ) which relates old
equation numbers to new equation numbers.
- Updates the submatrix integer files LUS(2,i) to the
new equation numbers.
- Computes the profile vector LOWEQ(NUMEQ) and new
number of equations, NUMEQ.
- The renumbering of equations, steps 1 through 3, may
be skipped by specifying a value of 0 for MAXEQ.
This subroutine is intended for finite element programs
solving mixed boundary value problems where some of the
solution values are constrained to specified values. You
first create the submatrix integer and real files using
equation numbers that include both free and constrained
equations. The NEWNUM(MAXEQ) vector is then created to flag
the constrained equations. Subroutine FMSPF is called to
renumber the equations into a packed global system which
eliminates equations whose value is constrained to zero.
Your program must pack the right-hand side vectors to
correspond to the new numbering system in NEWNUM(MAXEQ). In
addition, nonzero constraints must be imposed, usually by
scaling the diagonal and right-hand side by a big number,
BIGNUM. After the solution is obtained, the solution may be
expanded back to the original numbering system using
NEWNUM(MAXEQ).
Copyright © Multipath
Corporation