# Solvers

OptiStruct includes a variety of in-house and third-party solvers for applications in different engineering and technology fields.

Finite element solutions typically involve the ability to efficiently factorize or invert multidimensional matrices in conjunction with complex matrix manipulations. Depending on the type of analysis, the algorithms and solution sequences can possibly vary widely requiring the incorporation of a myriad of solver options. For example, Linear Static Analysis requires either Direct Inversion/Factorization of the stiffness matrices while Normal Modes Analysis uses Eigenvalue Analysis.

## Solvers versus Supported Solution Sequences

The Solvers supported in OptiStruct, in conjunction with the Solution Sequences in which they can be utilized.

Subcase Type | BCS | MUMPS | PCG | PARDISO | AMSES | Lanczos | AMLS | LAPACK | FASTFR | FastFRS |
---|---|---|---|---|---|---|---|---|---|---|

Linear Static Analysis (STATICS) | Optional | Default | Optional | Optional | N/A | N/A | N/A | N/A | N/A | N/A |

Nonlinear Static Analysis (NLSTAT) | Optional | Default | Optional | Optional | N/A | N/A | N/A | N/A | N/A | N/A |

Eigenvalue Analysis (MODES) | Optional linear static equation solver for RESVECs | Default linear static equation solver for RESVECs | N/A | Optional linear equation solver for RESVECs | Optional Eigenvalue solver | Default Eigenvalue solver | Optional Eigenvalue solver | N/A | N/A | N/A |

Linear Buckling Analysis (BUCK) | Optional linear equation solver for RESVECs | Default linear equation solver for RESVECs | N/A | Optional linear equation solver for RESVECs | N/A | Default Eigenvalue solver | N/A | N/A | N/A | N/A |

Modal Frequency Response Analysis (MFREQ) | Optional linear equation solver for RESVECs | Default linear equation solver for RESVECs | N/A | Optional linear equation solver for RESVECs | Optional Eigenvalue solver for RESVECs | Default Eigenvalue solver | Optional Eigenvalue solver | Default modal solution solver | Optional modal solution solver | Optional modal solution solver |

Direct Frequency Response Analysis (DFREQ) | Optional | Default | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |

Direct Transient Response through Fourier Transformation (DFOUR) | Default | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |

Modal Transient Response through Fourier Transformation (MFOUR) | N/A | N/A | N/A | N/A | Optional Eigenvalue solver | Default Eigenvalue solver | Optional Eigenvalue solver | Default modal solution solver | Optional modal solution solver | Optional modal solution solver |

Linear Direct Transient Response Analysis (DTRAN) | Default for SMP. Optional for DDM. | Default for DDM. Optional for SMP. | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |

Nonlinear Direct Transient Analysis | Optional | Default | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |

Modal Transient Response Analysis | Optional linear equation solver for RESVECs | Default linear equation solver for RESVECs | N/A | Optional linear equation solver for RESVECs | Optional Eigenvalue solver | Default Eigenvalue solver | Optional Eigenvalue solver | N/A | N/A | N/A |

Direct Complex Eigenvalue Analysis (DCEIG) | N/A | Default Complex Eigenvalue solver | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |

Modal Complex Eigenvalue Analysis (MCEIG) | Optional linear equation solver for RESVECs | Default linear equation solver for RESVECs | N/A | Optional linear equation solver for RESVECs | Optional Real/Complex Eigenvalue solver | Optional Real/Complex Eigenvalue solver | Optional Real/Complex Eigenvalue solver | N/A | N/A | N/A |

Linear Heat Transfer Analysis (HEAT) | Default | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |

Nonlinear Heat Transfer Analysis (NLHEAT) | Optional | Default | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |

Component Mode Synthesis (CMSMETH) | N/A | N/A | N/A | N/A | Optional | Default | N/A | N/A | N/A | N/A |

Electrical Analysis (ELEC) | Optional | Default | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |

The various static solvers are available as options on the SOLVTYP Bulk Data
Entry. Eigensolver selections for Eigenvalue Analysis are done via the
EIGRA/EIGRL Bulk Data Entries and
PARAM, `AMLS` can be used to toggle
AMLS on or off. FASTFR and
FASTFRS can be used for Modal Frequency Response Analysis and
are activated using PARAM, `FASTFR` and
PARAM, `FASTFRS` respectively (the default
for Modal solution is LAPACK). Solvers can be selected based on the
type of analysis or optimization runs.

## Solver Classification

Solvers are broadly classified into three types, based on the algorithm used or the nature of the high-level equation set being solved.

### Direct Solvers

Direct solvers are based on elimination or decomposition of the matrices involved in the finite element solution. Direct solvers are extensively used in structural analysis due to high solution stability and because they typically are not affected by numerical issues. Possible disadvantages are long solution times and high memory requirements.

The direct solver initially decomposes the matrices and then forward-backward substitution (FBS) is performed. Stiffness matrices are typically highly sparse, and appropriate reordering of the non-zero stiffness terms results in vast improvements in solution time and memory utilization.

- Advantages
- High solution stability
- Minimal numerical issues
- Symmetric and asymmetric matrices can be handled

- Disadvantages
- Computationally intensive
- High memory requirements

### Iterative Solvers

Iterative solvers utilize a contrasting algorithm to solving equation systems as compared to direct solvers. The typical method involves using an initial arbitrary solution that is updated iteratively as the process moves forward. The most important component of any typical iterative solver is the preconditioner. Convergence criteria are assigned to determine if the level of tolerance that signifies convergence and solution accuracy. The maximum number of iterations can also be specified before the solver stops (ordinarily with an error) regardless of solution accuracy.

`MIXED`

option on the
SOLVTYP Bulk Data Entry.- Advantages
- Computationally faster compared to the direct solver for a block structural model.
- Memory requirements are typically lower compared to the direct solver.

- Disadvantages
- Asymmetric matrices cannot be easily handled.
- Solution stability is lower compared to the direct solver.
- Convergence may not occur in some cases
- Advantages of the iterative solver depends heavily on the quality of the preconditioner utilized.

### Eigenvalue Solvers

Eigenvalue Analysis involves the solution of a different set of equations as compared to the regular energy equation (static or dynamic). It is used to extract the eigenvalues and eigenvectors of the model which determines the natural frequencies and vibration modes.

The AMSES (Automatic Multi-level Sub-structuring Eigensolver Solution), AMLS (Automatic Multi-level Sub-structuring), and Lanczos are available to run eigenvalue analysis. Additionally, to solve the modal solution, FASTFR and FastFRS (Fast Frequency Response Solver) solvers are available.

## Memory

Most of the direct solvers come with so-called in-core and out-of-core method.

In-core methods utilizes memory to store the factorized matrix as well as internal data structures. Out-of-core methods push factorized matrix into disk, which makes the memory consumption significantly smaller than the in-core method. BCS/Lanczos has another minimum-core method which pushes more internal data structure to disk as well, hence the memory requirement is minimal.

In general, BCS minimum-core memory requirement is the lowest compared to MUMPS.

It is not possible to estimate memory requirements for the AMSES solver, since the number of modes is unknown ahead of computation. AMSES needs to expand its least memory requirement whenever more is needed. However, if one specifies the in-core mode, AMSES allocates up to the memory amount to achieve the best performance.

## Scalability

Generally all OptiStruct solvers are shared memory parallel (SMP).

You can run with multiple processors by specifying the `-nt`

option. It is
recommended to specify the number of threads as the number of cores within one CPU
socket in the computer system. A typical number will be 6 for Westmere Xeon, 8 for Sandy
Bridge, 12 for Ivy bridge, etc.

OptiStruct provides domain decomposition method (DDM) for static solution sequence. MUMPS is available in DDM mode. To get the best performance, the in-core run is suggested, however the memory should fit the system; otherwise, out-of-core run is preferred. There must be a local disk associated with each node within a cluster; otherwise, the I/O waiting will reduce scalability.

## BCS

The built-in robust and accurate direct sparse solver in OptiStruct.

It is the default solver for most of the solution sequences. Besides the conventional
in-core and out-of-core modes, BCS has a unique minimum-core mode to solve a large model
with minimal memory requirements which is much lower than out-of-core. The BCS solver
can be activated via the `SOLVER` field on the
SOLVTYP Bulk Data Entry.

## MUMPS

MUMPS (Multi-frontal Massively Parallel Solver) is a sparse solver for symmetrical or unsymmetrical matrices that can run in both shared memory and distributed memory computers. MUMPS is an implementation of multi-frontal approach of Gaussian elimination.

MUMPS utilizes the dynamic distributed scheduling scheme for MPI parallelization, as well as the OpenMP parallelization for each process, which makes it highly scalable for large models. It is recommended to run MUMPS in OptiStruct domain decomposition mode specifying multiple threads for each MPI process.

MUMPS has various fill-in reducing algorithms. METIS is chosen by default,
however, try PORD for pure shell models. The different fill-in reducing
algorithm can be selected via the `MUMPSORDM` field in
SOLVTYP Bulk Data Entry.

MUMPS is the default solver for Linear Static, Nonlinear Static, Normal Modes, Buckling, Direct Frequency Response, Direct Transient Response, Nonlinear Heat Transfer, Nonlinear Transient, and Complex Eigenvalue (Direct and Modal) Analysis. MUMPS is also the default for DDM jobs.

The min-core option for the model is not supported for MUMPS runs.

## PCG

An implementation of the Conjugate Gradient method with the Sparse Approximate Inverse (SPAI) Preconditioner.

PCG is the choice for the simple shaped blocky structure, for example, a cube or a
cylinder. It may hit convergence issue for shell models unfortunately, hence, you need
to pay close attention to the result accuracy as well for PCG solver. The PCG solver can
be activated via the `SOLVER` field on the SOLVTYP
Bulk Data Entry.

## AMSES (Automatic Multi-level Sub-structuring Eigensolver Solution)

For solving large eigenvalue problems, the AMSES solution can be used instead of the Lanczos eigensolver.

The resulting eigenvalues and eigenvectors are used in eigenvalue analysis, CMS Super Element creation, Modal Frequency Response, and Modal Transient Analysis. In addition, the AMSES solver can be used during topology, topography, shape, and sizing optimizations. The AMSES solver can be 2-100 times faster than Lanczos.

AMSES is a multi-threaded application and can use any number of processors. AMSES will use the same number of processors that OptiStruct is using.

### AMSES Activation

- Use of the EIGRA data, instead of EIGRL data.
- Use of
`AMSES`solver keyword on the CMSMETH data

### AMSES Usage Guidelines

- The AMSES solution is, generally, much faster than Lanczos, but the results are approximate. Accuracy of the lower modes is very high; therefore, AMSES is a good candidate for solutions with a large number of modes (greater than a few hundred) where an approximated eigen-space is sufficient (as in Frequency Response Analysis and Response Spectrum Analysis). Although approximate, the large number of modes used for modal analysis will encompass the modal space and the resulting motion will match very closely with the Lanczos results. Lanczos is recommended in solutions where accurate mode shapes of a small number of modes are required.
- AMSES is also recommended in cases where: a) A
low number of eigenvalues are requested but the model consists of more than a million
degrees of freedom, and/or; b) The upper bound (
`V2`) is specified or the number of modes (`ND`) is greater than 50 on the EIGRL entry. In such cases, it is likely that Lanczos runs are slower than AMSES runs. - For optimization runs, if accuracy of the eigenvector is important, normal modes analysis with AMSES can be run first and then Lanczos can be run with precise lower and upper bounds to check the AMSES run for accuracy. The AMSES upper bound can then be adjusted to achieve acceptable accuracy of the desired eigenvectors. Now, AMSES can be used for all optimization runs in this analysis.
- The AMSES solution is much faster for Flexible Body Generation and modal solutions with many residual vectors.
- AMSES should be used cautiously in situations
with very large RBE3s (if the RBE3 is connected to
1/4
^{th}of the structure). It may be better to eliminate such RBE3s. - AMSES solution speeds depend on the number of
eigenvector degrees of freedom (DOF) to be calculated.
`DISP=ALL`will cause the entire eigenvector to be calculated and the speedup will not be large. However, if results for only a few DOF are required (typical for NVH analysis), AMSES can be up to 100 times faster than Lanczos. To improve AMSES run times, it is recommended to request results only for the required DOF. - For an AMSES run with
`V1`,`V2`and`ND`specified on the EIGRA entry, AMSES calculates all the modes up to the specified`V2`(upper bound) regardless of the value of`ND`. Then the`ND`number of requested modes is output. Therefore, reducing`ND`by keeping the upper bound (`V2`) the same will not significantly improve the AMSES run times, the upper bound must also be correspondingly reduced to prevent the extraction of extra modes. - AMSES is also useful in checking for model irregularities. AMSES can be used to print the list of grids associated with a mechanism or a singularity without mass.
- PARAM, CHKUCON provides options to control checking for unconnected parts in the model when the AMSES eigensolver is used.
- PARAM,SUBRESVC,YES can be used to turn on subcase-dependent generation of residual vectors for AMSES eigensolution.

### Parameters Affecting AMSES

AMSES controls the accuracy and the cost of a solution with the parameter
`AMPFFACT`. The optimal value of `AMPFFACT` for typical NVH
analysis, 5.0, has been established through extensive testing. `AMPFFACT` is
set on the EIGRA and CMSMETH data.

In case of predominately solid models, such as engine blocks, `AMPFFACT` should be
set to `10.0`

.

PARAM,`RBMEIG` can be used to adjust the upper limit on
eigenvalues associated with rigid body modes. The default upper limit is 1.0 (equivalent to
a natural frequency of 0.16 Hz) if PARAM,`RBMEIG` is not
included in the deck.

The list of GRID identification numbers of singular grids during an AMSES run is output to the .amses_singularity.cmf file file.

PARAM,`AMSE4CMS` controls the alternate method for the
creation of CMS superelements using the AMSES eigensolver. Unlike the conventional approach,
this formulation does not separately calculate the static and dynamic modes using the linear
sparse solver and eigenvalue solver, respectively. The static and dynamic modes are combined
together to project the physical model space into the CMS space, allowing for the efficient
creation of superelements. This projection also applies to the material damping and fluid
structure interface matrices with minimal extra computational cost, in contrast to the
conventional approach wherein, this is done outside the eigensolver as a computationally
intensive process.

The alternate method is especially effective, and a considerable increase in speed may be achieved over the conventional approach, when there are a lot of ASET degrees-of-freedom in the model (for example, thousands of ASETs).

This is only supported for CMS superelement creation in Craig-Bampton form for both NVH
applications (`METHOD`=CBN on the
CMSMETH Bulk Data Entry) and Flexbody Generation
(`METHOD`=CB) in multibody dynamics.

PARAM,`AMSE4EFM`,YES allows the static
solution for enforced motion to be conducted in the AMSES solver in conjunction with the
normal modes solution for Modal Frequency and Modal Transient Response Analysis. For more
information, refer to PARAM, AMSE4EFM.

### Residual Vector Calculations

- USET U6 data
- Frequency response dynamic loads
- Transient response dynamic loads
- Damping DOF from CBUSH, CDAMPi or CVISC data

One residual vector is calculated for each USET U6 DOF, each DAREA degree of freedom, and each damping DOF associated with the CBUSH, CDAMPi and CVISC data.

`RESVEC`=NO to turn off residual vector calculations with AMSES`RESVEC(NODAMP)`=YES to turn off residual vectors associated with damping DOF.- If the center of a large RBE3 is loaded, a residual vector will be created that includes terms for each of the independent DOF. If this number is large (500+), the AMSES run time will increase dramatically. For large loaded RBE3, it is recommended to use the RBE3 UM data to make the center GRID independent.

## Lanczos

OptiStruct Lanczos utilizes the base BCS algorithm. Lanczos is an industry proven implementation of the shift-invert Lanczos scheme with a combination of a robust shift selection strategy and a block Lanczos algorithm.

Shift-invert scheme guarantees that the exact number of eigenvalues within a spectrum bound is extracted with fast convergence rate. Lanczos is an accurate method to get the eigenvalue and eigenvector for a vibrational or buckling analysis. It is also recommended for use if only a few tens of modes are of interest. The EIGRL Bulk Data Entry can be used to activate the Lanczos eigensolution.

## AMLS (Automatic Multi-level Sub-structuring)

For the solution of large eigenvalue problems, the AMLS (Automatic Multi-level Sub-structuring) eigensolver developed by the University of Texas can be used instead of the internal OptiStruct Lanczos eigensolver.

The AMLS eigensolver is a separate program from OptiStruct and must be installed and licensed separately. OptiStruct interfaces with AMLS by writing AMLS input files, launching AMLS, and then reading the AMLS results back into OptiStruct once the AMLS execution is complete. The resulting eigenvalues and eigenvectors can then be used by OptiStruct for eigenvalue analysis, modal frequency response, and modal transient analysis. In addition, the AMLS solver can be used during topology and sizing optimizations.

- The environment variable
`AMLS_EXE`

must be set by you to point to the AMLS executable.On Unix and Linux platforms the script that is used to invoke OptiStruct (~altair/scripts/invoke/optistruct) contains a "placeholder" where

`AMLS_EXE`

may be defined (search for`AMLS_EXE`

). The definition contained in the invoke script will only be used if there is no pre-existing`AMLS_EXE`

environment variable at invoke.Example: setenv AMLS_EXE /share/ams/cdhopt/2005/AIX-5.3/3.2.r159_exe/amls.main_AIX.5

- PARAM, AMLS must be set to
`YES`in the OptiStruct input file. The run option`-amls`

can also be used to activate AMLS.AMLS is a multi-threaded application and can use 1, 2, or 4 processors. PARAM,

`AMLSNCPU`can be defined in the OptiStruct input file to define the number of processors that are to be used by AMLS. If PARAM,`AMLSNCPU`is not set, the AMLS eigensolver will use only 1S CPU. When PARAM,`AMLSNCPU`is defined, OptiStruct and AMLS may use different numbers of processors.

### Parameters Affecting AMLS

```
PARAM,SS2GCR,5.0
PARAM,GMAR,1.1
PARAM,GMAR1,1.7
```

`SS2GCR`should be set to 10.0 and

`GMAR1`should be set to 2.1. For typical shell models, such as car bodies, a slight improvement in FRF accuracy can be obtained without large increases in elapsed time by setting two of the parameters as:

```
PARAM,SS2GCR,7.5
PARAM,GMAR1,2.1
```

However, it is not recommended to adjust these values unless the accuracy improvement is known to be worth the increase in resource requirements.

`PARAM,RBMEIG,0.2`

AMLS distinguishes between rigid body modes and flexible modes to improve the numerical conditioning, and accuracy, with which the flexible eigenvalues are computed.

Control of the singularity processing is performed using PARAM,
`AMLSMAXR`. If AMLSMAXR is exceeded in the process of
factoring a stiffness matrix, this indicates a singularity in K. If the mass of this DOF is
also zero, there is a "massless mechanism", and an SPC is applied and a message is written
to the .out file. If there is mass, then this is a mechanism, which is
treated as a rigid body mode, and a message is written to the .out
file.

- If PARAM,
`AMLSUCON`is set to YES, OptiStruct will SPC out the disconnected components if there is a total of less than 4000 disconnected grids. This works with all versions of AMLS. - When PARAM,
`DISJOINT`is set to a value that is at least one larger than the number of disconnected parts, AMLS will be able to solve the eigenvalue calculation problem. This feature is only available in AMLS versions 4.2r22 or newer.

For AMLS Versions 5 and later, use the run option `-amlsmem`

, the environment
variable `AMLS_MEM`

or the parameter PARAM,
`AMLSMEM` to set the amount of memory in Gigabytes used by AMLS. By
default, AMLS will use the same amount of memory used by OptiStruct. The run option overrides the value set by the environment
variable and the parameter. If both `AMLS_MEM`

and PARAM,
`AMLSMEM` are set, the value specified by the environment variable is
used. The minimum memory value allowed is equal to 1 GB. If a value lower than 1 GB is
specified, it is automatically reset to 1 GB.

### Residual Vector Calculations

- USET U6 data
- Frequency Response Dynamic Loads
- Transient Response Dynamic Loads
- Damping DOF from CBUSH, CDAMPi or CVISC data

One Residual Vector is calculated for each USET U6 degree of freedom, each DAREA degree of freedom, and each damping degree of freedom associated with the CBUSH, CDAMPi and CVISC data.

- RESVEC=NO to turn off Residual Vector calculations with AMLS
- RESVEC(
`NODAMP`)=YES to turn off Residual Vectors associated with Damping DOF

### Singularities

If AMLS detects a large number of singularities in the model, this is most likely due to thin
CQUAD4/CTRIA3 elements used to "skin" solid models.
These singularities cause numerical ill-conditioning and increase run time. The
singularities are caused by the very low bending stiffness of these thin shell elements. To
remove the singularities, convert the thin bending elements to membrane only elements by
removing the `MID2` and `MID3`
`MID`s from the associated PSHELL data. The thin membrane
elements will still calculate the correct surface stresses, but the singularities will not
be present as the elements will have no bending stiffness.

PARAM, AMLSMAXR is used to determine singularities in the stiffness matrix.

If the value of `AMLSMAXR` is exceeded in the process of factoring a stiffness
matrix, this indicates a singularity in K. If the mass of this degree-of-freedom is zero,
there is a "massless mechanism"; an SPC is applied and a message is written to the
.out file. If there is mass, then this is a mechanism which is
treated as a rigid body mode and a message is written to the .out
file.

The list of GRID identification numbers of singular grids during an AMLS run is output to the .amls_singularity.cmf file.

### Remote File Systems

`TMPDIR`to redefine the scratch directory to be on the local machine.

`TMPDIR`is different from the scratch file directory specified by the command line argument

`-tmpdir`

and the
TMPDIR I/O Option Entry.The input and output files from AMLS (generic_real_file,
generic_integer_file and generic_amls_output)
are stored in the directory specified by the environment variable `AMLSDIR`

.
The environment variable `AMLSDIR` should be set to be the same directory as
the environment variable TMPDIR.

### Limitations

- AMLS is designed for large problems. Problems with less than a few hundred degrees-of-freedom cannot be solved by AMLS.
- The model must consist of only one structure. Models of unconnected parts cannot be solved by
AMLS. When the CBN method of creating CSM Super Elements is used on the
CMSMETH data, unconnected models can be generated if the center GRID
of an RBE2 is an ASET GRID. If unconnected parts are
found, a file named filename.unconnected.cmf is generated. This file
can be used in HyperMesh to show the unconnected parts. If the
parts are small, PARAM,
`AMLSUCON`,1 can be used to SPC out the unconnected structure and AMLS will run correctly. If the unconnected part is large, either:- Remove one spider GRID of the RBE2 to make the structure connected, or
- Use a small CBAR, CBEAM, or CROD to connect the two structures

## FASTFR

An alternate and faster modal solution method for Modal Frequency Response Analysis.

`FASTFR`can be used to control the activation of the Faster method. FASTFR is typically faster for modal frequency response runs that have a large number of modes (>5000) and/or a large number of loading frequencies.

- The faster method will run with increased speed, if Shared Memory Parallelism
(SMP) parallelization has been requested by specifying the number
of processors using the
`-nproc`

run option. - PARAM,
`K4METH`affects the speed of the faster method. It is recommended to use the default setting for PARAM,`K4METH`. - FASTFR is supported for Component Dynamic Synthesis solutions.

- Single Program, Multiple Data (SPMD) parallelization (MPI-based run) is requested.
- The Modal FRF subcase consists of SDAMPING in addition to material damping.
- The model includes poroelastic material, frequency-dependent material (MATFi), frequency-dependent bushing (via PBUSHT), or frequency-dependent dampers (via CAABSF/PAABSF).
- Mode selection via MODESELECT I/O Option Entry,
PARAM,
`LFREQ`, PARAM,`HFREQ`, PARAM,`LFREQFL`, and PARAM,`HFREQFL`is active. - Rotor dynamics solution is active.

## FastFRS (Fast Frequency Response Solver)

A solver developed by the University of Texas at Austin. It is very efficient for a certain class of large modal frequency response problems, such as NVH problems. OptiStruct has an interface to FastFRS.

OptiStruct writes the file
FastFRS_gen.in as input for FastFRS, and
reads results from FastFRS_gen.out. FastFRS will run in the
directory specified by the environment variable `AMLSDIR`, or the
current directory if `AMLSDIR` is not specified. FastFRS looks for the
input and output files in the directory specified by `AMLSDIR`.

- Set the environment variable
`FASTFRS_EXE`

to point to the location of the FastFRS executable. - The run option
`-ffrs yes`

or the parameter PARAM,`FFRS`,YES can be used to activate FastFRS. - Add the following optional parameters to adjust the settings for FastFRS
runs:
`PARAM,FFRSLFRQ PARAM, K4METH (see Notes 4 through 7) PARAM,LOWRANK (This parameter is obsolete. Use PARAM, K4METH, see Notes 4 through 7.) PARAM,K4CUTOFF PARAM,CSTOL PARAM,FFRSNCPU (or the run option –ffrsncpu) PARAM,FFRSMEM (or the run option –ffrsmem or the environment variable FFRS_MEM)`

- OptiStruct version 13.0 or above is required to run FastFRS version 2 or above.
- If
`FFRSNCPU`is not set (using either the parameter or the run option), and`AMLSNCPU`is set, then FastFRS will use the number of CPU's specified by`AMLSNCPU`. - For FastFRS versions 2 and above, use the run option
`-ffrsmem`

, the environment variable`FFRS_MEM`, or the parameter PARAM,`FFRSMEM`to set the amount of memory in Gigabytes used by FastFRS. By default, FastFRS will use the same amount of memory used by OptiStruct. The run option overrides the environment variable and the parameter. If both`FFRS_MEM`and PARAM,`FFRSMEM`are set, the value specified by the environment variable is used. The minimum memory value allowed is equal to 1 GB. If a value lower than 1 GB is specified, it is automatically reset to 1 GB. - If the value of
`LOWRANK`is 0, FastFRS computes a full eigensolution using the data found in the diagonal stiffness and structural damping data blocks.If the value of`LOWRANK`is -1, a low rank representation of the matrix found in structural damping is used. A special case of this option occurs when acoustic fluid is present in the model and the matrices found in the fluid mass matrix, fluid stiffness matrix, and fluid viscous damping matrix data blocks are all diagonal. FastFRS takes advantage of this special case when the value of`LOWRANK`is set to 1 by treating the matrix found in the structural damping data block and the fluid matrices as low rank representations. For optimization problems, the mass and stiffness matrices are full and a low rank representation cannot be used.- If both
`K4METH`and`LOWRANK`are not specified,`LOWRANK`would be determined based on the material damping matrix and number of fluid modes. - If
`LOWRANK`

is specified, but`K4METH`is not specified, the value of`LOWRANK`would be used. - If
`K4METH`is specified,`LOWRANK`would be set according to`K4METH`.

- If both
- FASTFR is supported for Component Dynamic Synthesis solutions.

- The number of viscous damping degrees-of-freedom is greater than the number of modes.
- The model includes poroelastic material, frequency-dependent material (MATFi), frequency-dependent bushing (via PBUSHT), or frequency-dependent dampers (via CAABSF/PAABSF).
- Mode selection via MODESELECT I/O Option Entry,
PARAM,
`LFREQ`, PARAM,`HFREQ`, PARAM,`LFREQFL`, and PARAM,`HFREQFL`is active. - The Component Dynamic Synthesis Method (CDSMETH) is used.
- Rotor dynamics solution is active.