Data Type

Integer

Default Value

0

Description

This parameter directs FMS to make a symmetric matrix from a nonsymmetric matrix by averaging the off-diagonal terms. The following options are available:

LUOK
  • 0, Do not average the matrix data.
  • 1, Form a symmetric matrix by averaging [AL] and [AU].

Because symmetric matrices may be factored twice as fast as nonsymmetric matrices, forcing a matrix to be symmetric can save a considerable amount of processing time. In some applications it is known from the physics of the problem that the matrix should be symmetric. However, due to numerical modeling, the matrix coefficients appear slightly nonsymmetric. Using this option for this application can save both computer time, storage and improve accuracy.

A second application for this feature occurs when matrix data is generated. In some cases generating half of the matrix coefficients as required for a symmetric matrix will naturally populate some terms in the upper triangle and some terms in the lower triangle. Transposing the upper triangle terms to force all data into the lower triangle may be awkward. This feature allows you to provide both lower and upper triangles during matrix assembly and then compact the data into symmetric form after the matrix coefficients have been generated. Note that FMS automatically initializes all matrix coefficients to zero so only the nonzero values need to be specified.

To use this feature you initially open the matrix as nonsymmetric by calling subroutine RNDI or CNDI. The matrix is then populated as a nonsymmetric matrix. You then call the symmetric factoring subroutine RSDAF or CSDAF to average the matrix and factor it as symmetric.