FMSWF
PURPOSE: Wavefront Numbering
To generate a set of global equation numbers based on the
wavefront order and compute the profile vector.
SYNOPSIS
CALL FMSWF (LUS, NEWNUM, MAXEQ, LOWEQ, NUMEQ)
INPUT PARAMETERS:
- LUS(25) = Integer array.
File attributes for the submatrix file.
- NEWNUM(NUMEQ) = Integer array.
Flags constrained equations as follows:
= -1, constrained to a non zero 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 file
LUS(2).
- MAXEQ = Integer.
Maximum number of equations.
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:
- Renumbers the equations in wavefront order, as
determined by the order of the submatrices on file LUS.
- Eliminates equations whose solution value is
constrained to zero or equations not used.
- Computes the vector NEWNUM(MAXEQ) which relates old
equation numbers to new equation numbers.
- Updates the submatrix integer file LUS(2) to the new
equation numbers.
- Computes the profile vector LOWEQ(NUMEQ) and new
number of equations, NUMEQ.
This subroutine is intended for finite element programs
designed to use a "wavefront" equation solver. Your program
first creates submatrix integer and real files whose record
order is the order in which elements will be added to the
wavefront. The equation numbers on the integer file must be
unique labels which describe the connectivity between
elements but are not necessarily the global equation numbers
used by FMS during solution.
Your program then creates the NEWNUM(MAXEQ) array which flags
constrained equations and equation numbers not used.
Subroutine FMSWF is then called to generate a packed global
system of equation numbers which eliminates unused equations
and those whose solution value is constrained to zero.
Subroutine FMSWF numbers the equations in the order that they
may be eliminated during solution, which results in the same
number of arithmetic operations used by wavefront equation
solvers.
Your program must reorder the righ-hand side vector according
to the returned values 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 values may be placed
back in the original numbering system using NEWNUM(MAXEQ).
Copyright © Multipath
Corporation