Data Type

Integer

Default Value

0

Description

This parameter directs FMS to perform special actions if a zero pivot is encountered during the factoring process. The following options are available:

  • 0, Halt with an error condition.
  • 1, Set the pivot reciprocal value to the FMS parameter RPIVOT, print a warning message and continue.
  • 2, Call subroutine RSUPIV or CSUPIV which you provide to compute the pivot reciprocal value.

When factoring a matrix, the diagonal elements (pivots) must be inverted. This calculation fails if the pivot value is zero. This option provides you with alternatives to bypass this error, which may be appropriate for some applications.

One option is to set the value of the pivot reciprocal to zero and proceed. This has the effect of replacing the original diagonal in the matrix with a huge number. In effect, this eliminates that equation from the system by constraining its solution value to zero.

An example of where this is useful is in structural analysis. If the model was improperly constrained, rigid body motion (translation and rotation) will be possible. At some point in the analysis this will result in a zero pivot for each of the unconstrained rigid body motions (up to 3 translations and 3 rotations). By using the option MZERO=1, the model automatically becomes constrained as required. The equations whose diagonals are modified by this option become the reference points for the solution value.

A similar condition occurs in fluid analysis where there may be a large spread in the magnitude of the matrix values (ill-conditioned matrix). By replacing the pivots which are close to zero with a known value RPIVOT, the solution can proceed.

For special applications you may want to handle this error condition yourself. By setting MZERO to 2, FMS passes the appropriate information to your subroutine RSUPIV or CSUPIV. If you want to continue processing, you pass the pivot reciprocal back to FMS.