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.

OptiStruct only supports AMLS version 3.2.0128 or later. To use AMLS version 5 or later, OptiStruct version 13.0 or later must be used. To use AMLS, the following should be defined:
  1. 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

  2. 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 multithreaded 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 eignersolver will use only 1S CPU. When PARAM, AMLSNCPU is defined, OptiStruct and AMLS may use different numbers of processors.

Parameters Affecting AMLS

AMLS controls the accuracy and the cost of a solution primarily with three parameters. The "optimal" values of these parameters for typical NVH analysis have been established through extensive testing. The parameters and their values are:
PARAM,SS2GCR,5.0
PARAM,GMAR,1.1
PARAM,GMAR1,1.7
In case of predominately solid models, such as engine blocks, 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.

The default upper limit on eigenvalues that are taken to be associated with rigid body modes is 1.0 (equivalent to a natural frequency of about 0.16 Hz). This parameter can be adjusted by parameter RBMEIG, which can be set by the command:
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.

By default, AMLS does not handle disconnected structures. There are two solutions for handling disconnected structures:
  • 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

When the AMLS eigensolver is used, OptiStruct's Residual Vector calculations are ignored. The AMLS eigensolver calculates its own residual vectors for each of the following:
  • 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.

The Residual Vector calculations are controlled by the Solution Control data RESVEC. To control Residual Vector calculations with AMLS, use the following commands:
  • 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 MIDs 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

If the execution directory is on a remote file system, long run times will result as the AMLS scratch files will have to be accessed over the NFS mounted file system. Use the environment variable TMPDIR to redefine the scratch directory to be on the local machine.
Note: The environment variable 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

  1. AMLS is designed for large problems. Problems with less than a few hundred degrees of freedom cannot be solved by AMLS.
  2. 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