10.3.1 Generating matrices

Product: Abaqus/Standard  

References

Overview

Matrix generation:

Generating global matrices

A linearized finite element model can be summarized in terms of matrices representing the stiffness, mass, damping, and loads in the model. Using these matrices, you can exchange model data between other users, vendors, or software packages without exchanging mesh or material data. Matrix representations of a model prevent the transfer of proprietary information and minimize the need for data manipulation.

The matrix generation procedure is a linear perturbation step (see General and linear perturbation procedures, Section 6.1.2) that accounts for all current boundary conditions, loads, and material response in a model. You can also specify new boundary conditions, loads, and predefined fields within the matrix generation step.

The matrix generation procedure uses SIM, which is a high-performance database available in Abaqus. The generated matrices are stored in a file named jobname_Xn.sim, where jobname is the name of the input file or analysis job and n is the number of the Abaqus step that generates the matrices.

Specifying the matrix type

You can generate matrices representing the following model features:

  • stiffness,

  • mass,

  • viscous damping,

  • structural damping, and

  • loads.

The load matrix contains integrated nodal load vectors (right-hand sides) for the load cases defined in the matrix generation step. Load cases can be made up of any combination of loadings—distributed loads, concentrated nodal loads, thermal expansion, and load cases defined for any substructures that may be used as part of the model.

Input File Usage:          Use the following option to generate the stiffness matrix:
*MATRIX GENERATE, STIFFNESS

Use the following option to generate the mass matrix:

*MATRIX GENERATE, MASS

Use the following option to generate the viscous damping matrix:

*MATRIX GENERATE, VISCOUS DAMPING

Use the following option to generate the structural damping matrix:

*MATRIX GENERATE, STRUCTURAL DAMPING

Use the following option to generate the load matrix:

*MATRIX GENERATE, LOAD

Generating element matrices

By default, the matrix generation procedure generates global matrices for a model in assembled form. The generated global matrices are assembled from the local element matrices and include contributions from matrix input data. Abaqus/Standard offers an option to generate global matrices in element-by-element form. Instead of global (assembled) matrices, local element matrices are generated. If you choose to generate local element matrices for a model containing matrix input data, Abaqus/Standard calculates and stores only element matrices; the matrix input data are ignored.

Input File Usage:          
*MATRIX GENERATE, ELEMENT BY ELEMENT

Generating matrices for a part of the model

By default, the matrix generation procedure generates matrices for a whole model. Abaqus/Standard can generate matrices for a part of the model defined by an element set.

Input File Usage:          
*MATRIX GENERATE, ELSET=element set name

Evaluating frequency-dependent material properties

When frequency-dependent material properties are specified in the model definition, Abaqus/Standard offers the option of choosing the frequency at which these properties are evaluated for use in global matrix generation. If you do not choose the frequency, Abaqus/Standard evaluates the matrices at zero frequency and does not consider the contributions from frequency-domain viscoelasticity.

Input File Usage:          
*MATRIX GENERATE, PROPERTY EVALUATION=frequency

Initial conditions

Matrix generation is a linear perturbation procedure. Therefore, the initial state for the matrix generation step is the state of the model at the end of the last general analysis step. The generated matrix includes initial stress and load stiffness effects due to preloads and initial conditions if nonlinear geometric effects are included in the analysis.

Boundary conditions

Boundary conditions can be defined or modified in a matrix generation step. For more information on defining boundary conditions, see Boundary conditions in Abaqus/Standard and Abaqus/Explicit, Section 32.3.1. Any boundary conditions that are defined in a matrix generation step will not be used in subsequent general analysis steps (unless they are respecified).

Loads

All types of loads can be applied in the load cases for a matrix generation step. Real and imaginary parts of the load vectors will be generated for the complex loads. For more information on applying loads, see Applying loads: overview, Section 32.4.1. Any loads that are defined in a matrix generation step will not be used in subsequent general analysis steps (unless they are respecified).

Predefined fields

All types of predefined fields can be specified in a matrix generation procedure. For more information on specifying predefined fields, see Predefined fields, Section 32.6.1. Any predefined fields that are defined in a matrix generation step will not be used in subsequent general analysis steps (unless they are respecified).

Material options

All types of materials that are available in Abaqus/Standard can be used in a matrix generation procedure.

Elements

All of the elements that are available in Abaqus/Standard can be used in the matrix generation procedure.

Generating matrices for models containing solid continuum infinite elements

Solid continuum infinite elements (CIN-type elements) have different formulations in static and dynamic analyses. Therefore, when generating matrices for a model containing solid continuum infinite elements, you must specify whether to use the static or dynamic formulation.

Input File Usage:          Use the following option to select the static formulation for solid infinite elements:
*MATRIX GENERATE, SOLID INFINITE FORMULATION=STATIC

Use the following option to select the dynamic formulation for solid infinite elements:

*MATRIX GENERATE, SOLID INFINITE FORMULATION=DYNAMIC

Output

In a matrix generation analysis, you can output the stiffness, mass, viscous damping, structural damping, and load matrices to text files. Several formats are available for the matrix output, as discussed below. Matrices are copied from the .sim file and stored in text files that use the following naming convention:

jobname_matrixn.mtx
where jobname is the name of the input file or analysis job, matrix is a four-letter identifier indicating the matrix type (as outlined in Table 10.3.1–1), and n is the number associated with the Abaqus analysis step generating the matrices.

Table 10.3.1–1 Identifiers used in the generated matrix file name.

IdentifierMatrix Type
STIFStiffness matrix
MASSMass matrix
DMPVViscous damping matrix
DMPSStructural damping matrix
LOADLoad matrix

For example, if a stiffness matrix generation is performed in the third step of an analysis job named VehicleFrame, the matrix is output to a file named VehicleFrame_STIF3.mtx.

Input File Usage:          Use the following option to output the stiffness matrix:
*MATRIX OUTPUT, STIFFNESS

Use the following option to output the mass matrix:

*MATRIX OUTPUT, MASS

Use the following option to output the viscous damping matrix:

*MATRIX OUTPUT, VISCOUS DAMPING

Use the following option to output the structural damping matrix:

*MATRIX OUTPUT, STRUCTURAL DAMPING

Use the following option to output the load matrix:

*MATRIX OUTPUT, LOAD

Matrix input text format

This default text format creates matrix files consistent with the format used by the matrix definition technique in Abaqus/Standard (see Defining matrices, Section 2.11.1). Internal Abaqus node labels are converted into large positive numbers that are conventional for Abaqus matrix input data.

Input File Usage:          
*MATRIX OUTPUT, FORMAT=MATRIX INPUT

Format of the operator matrix

The assembled sparse matrix operator data are written to the text file as a series of comma-separated lists. Each row in the file represents a single matrix entry; a row is written as a comma-separated list with the following elements:

  1. Row node label

  2. Degree of freedom for row node

  3. Column node label

  4. Degree of freedom for column node

  5. Matrix entry

Format of the load matrix

Nonzero entries in load matrices, which represent right-hand-side vector data, are written to the text file as a comma-separated list with the following elements:

  1. Node label

  2. Degree of freedom

  3. Right-hand-side vector entry

The format of the load vectors and heading labels is based on the Abaqus keyword interface, which allows the generated loads to be easily applied in other Abaqus analyses. Each load vector uses the following headings to indicate the real and imaginary portions of the load:
*CLOAD, REAL
*CLOAD, IMAGINARY

If the matrix generation step has multiple load cases, the load matrices for each load case are wrapped by the following labels in the generated text file:

*LOAD CASE*END LOAD CASE

Including generated matrix data and generated loads in another Abaqus model

The generated sparse matrix data and generated loads that are output in matrix input text format can be included in another Abaqus model.

Input File Usage:          Use the following options:
*MATRIX INPUT
*INCLUDE, INPUT=matrix or load file

Labeling text format

You can generate text files in which the matrix is formatted according to the standard labeling format. This format does not convert any of the internal Abaqus node labels. A negative number or zero can be used as a label for an internal node. This is the only difference between the labeling text format and the default matrix input text format.

Input File Usage:          
*MATRIX OUTPUT, FORMAT=LABELS

Coordinate text format

You can generate text files in which the matrix is formatted according to the common mathematical coordinate format. This format is commonly used in mathematics programs such as MATLAB.

Each row in a coordinate-formatted file corresponds to a matrix entry; a row is written as a comma-separated list with the following elements:

  1. Row number

  2. Column number

  3. Matrix entry

For load matrices, which represent right-hand-side vector data, each row in the text file is written with the following elements:

  1. Equation (row) number

  2. Right-hand-side vector entry

Commented load case options are written to the output file to indicate the load cases.

Input File Usage:          
*MATRIX OUTPUT, FORMAT=COORDINATE

Outputting matrices in element-by-element form

If matrices are generated in element-by-element form, you can write them in element-by-element form. When you generate text files using the matrix input or labeling format, each row in the file represents a single matrix entry; a row is written as a comma-separated list with the following elements:

  1. Element label

  2. Row node label

  3. Degree of freedom for row node

  4. Column node label

  5. Degree of freedom for column node

  6. Matrix entry

For load matrices, which represent right-hand-side vector data, each row in the text file is written with the following elements:

  1. Element label

  2. Node label

  3. Degree of freedom

  4. Right-hand-side vector entry

Coordinate format is also available for element-by-element global matrix generation. Each row in a coordinate-formatted file corresponds to a matrix entry; a row is written as a comma-separated list with the following elements:

  1. Element number

  2. Row number

  3. Column number

  4. Matrix entry

For load matrices each row in the text file is written with the following elements:

  1. Element number

  2. Equation (row) number

  3. Right-hand-side vector entry

Input file template

*HEADING
…
**
*STEP
Options to define the preloading history for the model.
*END STEP
**
*STEP
*MATRIX GENERATE, STIFFNESS, MASS, VISCOUS DAMPING,
STRUCTURAL DAMPING, LOAD
*MATRIX OUTPUT, STIFFNESS, MASS, VISCOUS DAMPING,
STRUCTURAL DAMPING, LOAD, FORMAT=MATRIX INPUT
*BOUNDARY
Options to define the boundary conditions for the matrix generation step.
**
*LOAD CASE, NAME=LC1
Options to define the loading for the first load case.
*END LOAD CASE
**
*LOAD CASE, NAME=LC2
Options to define the loading for the second load case.
*END LOAD CASE
Any number of load cases can be defined.
*END STEP