PURPOSE
Assemble a global system matrix from submatrices and/or define the matrix coefficients by a subroutine you provide.SYNOPSIS
CALL RSDA (LUS, NUMSF, LUA)
CALL RNDA (LUS, NUMSF, LUA)
CALL CHDA (LUS, NUMSF, LUA)
CALL CSDA (LUS, NUMSF, LUA)
CALL CNDA (LUS, NUMSF, LUA)
INPUT PARAMETERS
- LUS(25,NUMSF) = Integer array.
File attribute list for each submatrix file. - NUMSF = Integer.
Number of submatrix files. If the matrix is populated entirely by the user-supplied subroutine, specify a 0 value for NUMSF and a dummy argument for LUS. - LUA(25) = Integer array.
File attribute list for matrix [A] that was computed by the initialization subroutine (RSDI, RNDI, CHDI, CSDI, CNDI).
OUTPUT PARAMETERS:
None.FMS PARAMETERS:
The following FMS Parameters are especially important to this routine:Parameter | Description |
---|---|
IPRA | Assembly print code |
LOWASM | First changed equation |
MDATAU | Call your subroutine to define matrix data |
DESCRIPTION:
This subroutine populates the matrix [A] with data by the following steps:
- [A] is initialized to [0]. Therefore, you only need to define the nonzero terms in [A].
- Submatrices are added to [A]. For finite element programs, submatrix addition provides the most efficient interface. You may skip submatrix addition by specifying a zero value for the number of submatrix files, NUMSF.
- Your subroutine(s) are called to define or modify the
matrix data.
To use this option, the FMS Parameter
MDATAU must be set. In addition,
you must provide one or more of the following subroutines:
Matrix Format Data Type Matrix Symmetry Subroutines Required PROFLIE or BLOCK Real Symmetric RSUBLK PROFLIE or BLOCK Real Nonsymmetric RSUBLK, RNUBLK PROFLIE or BLOCK Complex Hermitian CHUBLK PROFLIE or BLOCK Complex Symmetric CSUBLK PROFLIE or BLOCK Complex Nonsymmetric CSUBLK, CNUBLK SLAB Real Nonsymmetric RNUSLB SLAB Complex Nonsymmetric CNUSLB
The assembly process begins with the equation LOWASM, which is an FMS parameter. The default value of 1 should always be used the first time a matrix is assembled. For nonlinear analysis, you may set LOWASM to the first changed equation and FMS will only reassemble the part of the matrix beginning with equation LOWASM.
This subroutine is a subset of the more general assemble- factor subroutine. It is equivalent to one of the following calls:
CALL RSDAF(IDUM, RDUM, 0, LUS,
NUMSF, LUA, 0, IDUM, IDUM, 0)
exit
CALL RNDAF(IDUM, RDUM, 0, LUS,
NUMSF, LUA, 0, IDUM, IDUM, 0)
CALL CHDAF(IDUM, RDUM, 0, LUS,
NUMSF, LUA, 0, IDUM, IDUM, 0)
CALL CSDAF(IDUM, RDUM, 0, LUS,
NUMSF, LUA, 0, IDUM, IDUM, 0)
CALL CNDAF(IDUM, RDUM, 0, LUS,
NUMSF, LUA, 0, IDUM, IDUM, 0)
where IDUM and RDUM are dummy arguments. If you want to perform assembly as a separate step and your matrix is initialized to [0], you may use this subroutine. Otherwise the more general assemble-factor subroutines should be used.