RSDWTP
RNDWTP
PURPOSE: Weighted Matrix Triple Product and Sum
Compute the matrix triple product, multiply it by a scalar
and add it to a matrix:
[S] = [S] + W{B}T[D]{B}
(Symmetric)
[S] = [S] + W{B}T[D]{A}
(Nonsymmetric)
SYNOPSIS
CALL RSDWTP (W, B, D, S, N, M)
CALL RNDWTP (W, B, D, A, S, N, M)
INPUT PARAMETERS:
- W = Real.
Scale Factor.
- B(N,M) = Real array.
Matrix stored by columns.
- D(N,N) = Real array.
Full matrix stored by columns. For symmetric problems
(RSDWTP), [D] must be symmetric.
- A(N,M) = Real array (RNDWTP only).
Matrix stored by columns.
- N = Integer.
Number of rows in matrix [B] and
[A] and the size of the square matrix
[D] . The maximum value of N must be less
than or equal to 32. This restriction on N results from the
use of high-speed internal registers that store intermediate
values for this calculation. For most problems, N is in the
range 3 to 6.
- M = Integer.
Number of columns in matrix [B] and
[A].
OUTPUT PARAMETERS:
- S(M*(M+1)/2) = Real array (RSDWTP).
S(M,M) = Real array (RNDWTP).
For symmetric problems (RSDWTP), [S] is a
lower triangular matrix stored by rows. For nonsymmetric
problems, standard FORTRAN storage is used for
[S].
DESCRIPTION:
This subroutine performs the matrix triple product that is
typically used in finite element matrix generation. Before
the first call in each element, the matrix values in
[S] must be initialized to
[0]. The matrix [B] is
assumed full to provide for formulations including large
deformation. If possible, the columns of matrix
[B] should be ordered by increasing global
equation number. This ordering produces a matrix
[S] that is also ordered by increasing
equation number and may be assembled into the global system
with minimal computation. The matrix [D] is
also full, which provides for orthotropic and rotated
material relationships.
For symmetric problems (RSDWTP), the calculation performed is
equivalent to the following FORTRAN statements.
LS = 0
DO I=1,M
DO J=1,I
LS = LS + 1
DO K=1,N
DO L=1,N
S(LS) = S(LS) + W*B(K,I)*D(K,L)*B(L,J)
END DO
END DO
END DO
END DO
For nonsymmetric problems (RNDWTP), the calculation performed
is equivalent to the following FORTRAN statements:
DO I=1,M
DO J=1,I
DO K=1,N
DO L=1,N
S(I,J) = S(I,J) + W*B(K,I)*D(K,L)*A(L,J)
END DO
END DO
END DO
END DO
The actual algorithm implemented uses an intermediate vector
to reduce the number of operations performed and take
advantage of high-speed hardware.
Copyright © Multipath
Corporation