RNDS

CHDS

CSDS

CNDS

```
CALL RSDS (LUF, LUB, LUX, NUMRHS, ISKIP)
```

CALL RNDS (LUF, LUB, LUX, NUMRHS, ISKIP)

CALL CHDS (LUF, LUB, LUX, NUMRHS, ISKIP)

CALL CSDS (LUF, LUB, LUX, NUMRHS, ISKIP)

CALL CNDS (LUF, LUB, LUX, NUMRHS, ISKIP)

- LUF(25) = Integer array.

File attributes for the factored matrix. - LUB(25) = Integer array.

File attributes for the right-hand side vectors. This parameter is not used if ISKIP=1. - LUX(25) = Integer array.

File attributes for the file where solution vectors are to be written. This can be the same parameter as LUB to overlay the solution vectors on the right-hand side vectors. If the parameter ISKIP=1, LUX specifies the file containing reduced vectors. - NUMRHS = Integer.

Number of right-hand side vectors. - ISKIP = Integer.

Operations to skip. the following values are available:- 0

Perform forward reduction, diagonal scaling (symmetric) and back substitution. - 1

Skip forward reduction and diagonal scaling, perform back substitution. - 2

Perform forward reduction and diagonal scaling, skip back substitution.

- 0

Parameter | Description |
---|---|

IPRS | Solution print code |

NEQSUB | First equation of substructure |

LUTRAN | Solve [A]T{X}={B} instead of [A]{X}={B} |

IPBACK | Use dot products during back substitution |

IALGOR | Optional factoring algorithms |

MINDIM | Minimum dimension to terminate Strassen's algorithm |

SAVOPS | Number of floating point operations saved |

The forward reduction process consists of solving the system as follows:

**[L]{Y} = {B}**

for the intermediate vectors **{Y}** using the
right-hand side vectors **{B}** and the lower-
triangular matrix factor **[L]**. The same
forward reduction calculation is performed for symmetric and
nonsymmetric matrices.

For symmetric problems, the second step is to scale the
reduced vectors **{Y}** by the diagonal factor
reciprocals **[l/D]** to obtain the following:

**{Z} = [1/D] {Y}**

The final step in the solution process is back substitution. For symmetric problems, the system:

**[L] T {X} = {Z}**

is solved for **{X}**, while for nonsymmetric
problems

**[U]{X} = {Y}**

is solved for **{X}**.

The data structures used provide maximum performance when several solution vectors are processed together.

The ISKIP parameter can be used to skip forward reduction, diagonal scaling, or back substitution as shown in the following table:

ISKIP | Functions Skipped |
---|---|

0 | None |

1 | Forward Reduction, Diagonal Scaling |

2 | Back Substitution |

When ISKIP = 0, right-hand side vectors are read from the file LUB, and solution vectors are written to the file LUX.

When ISKIP = 1, reduced and scaled (symmetric) vectors are read from the file LUX and solution vectors are written to the file LUX. The file LUB is not used. This option should be selected if forward reduction was performed during factoring or if the solution process is being restarted after substructuring.

When ISKIP = 2, right-hand side vectors are read from the file LUB and reduced and scaled (symmetric) vectors are written to the file LUX. This calculation is equivalent to performing forward reduction during factoring. It is used to halt the solution process after forward reduction when substructuring is being performed.

The **FMS** substructuring parameter
NEQSUB controls where the
forward reduction stops and where back substitution begins.
When the NEQSUB parameter is used, this subroutine is called
the first time with ISKIP=2 to stop the solution after the
partial forward reduction and diagonal scaling. After the
substructure solution is computed and placed in file LUX,
this subroutine is called a second time with ISKIP=1 to
complete the solution.

Copyright © Multipath Corporation