Using Matrices

A matrix:

  • can be used to represent stiffness, mass, viscous damping, or structural damping for a part of the model or for the entire model;

  • is defined by giving it a unique name and by specifying matrix data, which may be scaled;

  • can be symmetric, unsymmetric, or have both instances;

  • can be given in text format in lower triangular, upper triangular, or square form or read from binary .sim files generated by the matrix generation procedure;

  • can be used to provide linear elastic response with large translations but not large rotations;

  • can be used in static and natural frequency extraction procedures;

  • can be used in direct-integration implicit dynamic analysis;

  • can be used in matrix generation and substructure generation procedures;

  • can be used in direct steady-state dynamic analysis;

  • can be used in transient modal dynamics, mode-based steady-state dynamics, subspace-based steady-state dynamics, random response, response spectrum, and complex eigenvalue extraction procedures that use the SIM architecture;

  • can have loads, boundary conditions, and constraints applied directly to any matrix nodal degrees of freedom;

  • can be used in submodeling analysis; and

  • cannot be used in mode-based analyses that do not use the SIM architecture.

This page discusses:

What Is a Matrix in Abaqus/Standard?

Designing complex models of structures like automobiles typically involves subcontracting the work on various parts. When the entire model has to be put together, information about the parts needs to be exchanged between different vendors. Often, to avoid the disclosure of proprietary information, this information is exchanged in terms of matrices representing the stiffness, mass, and damping for each part. During an analysis these matrices are added to the corresponding global finite element matrices to complete the assembly of the entire model.

Abaqus/Standard provides the capability to input stiffness, mass, viscous damping, and structural damping matrices directly. You can define as many different matrices as are necessary to build the model.

Including Matrices in a Model

You must assign a name to the matrix to include it in the matrix usage model.

Specifying a Matrix Type

For matrices given in text format, you can specify the matrix type as symmetric (default) or unsymmetric. If symmetric, it can be entered as a lower triangular, upper triangular, or square matrix.

For matrices read from a .sim file, Abaqus/Standard sets the matrix type automatically according to the matrix data stored on the SIM database, and any user-specified value is ignored.

You can also provide both instances, symmetric and unsymmetric, for the same matrix. The relevant matrix instance is selected according to the analysis procedure. This approach is typically used for generally unsymmetric analyses containing inherently symmetric procedures such as Natural Frequency Extraction.

Scaling the Matrix Data

You can define a multiplication scale factor for all matrix entries.

Providing Matrix Data Directly

You can specify data directly to define a symmetric matrix in lower triangular, upper triangular, or square format. For a square matrix to be symmetric, corresponding entries above and below the diagonal must have exactly the same values. When you specify several matrices for the same operator, they must all be of the same format: lower triangular, upper triangular, or square.

You can specify data directly to define an unsymmetric matrix by providing data for each matrix entry. If an entry above or below the diagonal of an unsymmetric matrix is specified explicitly, the corresponding entry below or above the diagonal must also be specified even if that value is zero.

Reading the Matrix Data in Text Format from an Alternate File

Matrix data in text format can be contained in an alternate file. Typically, an alternate file is used for large matrices. To ensure acceptable performance, the data lines in the alternate file are read without extensive checking for data format. You should make sure that the data entries are specified in the proper format without any comments or blank lines. Matrix data output in text format can be generated in the matrix generation procedure (see Output).

Reading the Matrix Data from the SIM Database

Matrix data in binary format can be read from the .sim file generated by the matrix generation procedure (see Matrix Generation). The .sim file can contain stiffness, mass, viscous damping, and structural damping matrices. You specify each matrix to be read from the .sim file.

Internal Nodes in Matrix Data

Internal nodes are nodes with internal degrees of freedom associated with them (for example, Lagrange multipliers or generalized displacements). Abaqus/Standard must distinguish between the user-defined and internal nodes and must distinguish between the internal node types to solve the problem correctly. Matrices generated in the binary SIM format contain all of the necessary information about the internal nodes. For matrices generated in the text format, by definition, user-defined nodes have positive node labels, and internal nodes have negative node labels.

By default, you cannot include a matrix including entries associated with internal nodes in the model. However, you can override this restriction by specifying the internal degree of freedom type. You can specify that internal degrees of freedom represent Lagrange multipliers or represent substructure generalized degrees of freedom associated with the substructure dynamic modes.

In addition, Abaqus applies the specified internal degree of freedom type to all internal degrees of freedom associated with the matrix entries. Therefore, the text format has significant limitations if the matrix data contain references to internal nodes. For this case, it is strongly recommended that you generate and use matrices in the binary SIM format (see Generating Structural Matrices).

Defining the Stiffness, Mass, and Damping with Matrices Included in a Model

You can assemble the stiffness, mass, viscous damping, and structural damping matrices that you have specified into the corresponding global finite element matrices for the usage level model. Many matrices with different names can be defined and assembled.

Connecting a Part of a Model Represented by Matrices

You can connect a part of the model represented by user-defined matrices to other parts of the model through shared nodes. You must define these nodes directly in the model (see Node Definition). In addition, there may be matrix nodes that are not shared with the finite elements of the global model. You do not need to define matrix nodes that have no loads, boundary conditions, or constraints associated with them. Abaqus automatically defines these nodes at the origin of the global coordinate system for matrices specified in the text format or in the geometrical positions defined by the nodal coordinates of the original model and applied positioning transformations for matrices specified in the binary format in the .sim file. If the geometrical positions of the matrix nodes are not correct (as for automatically generated nodes of the matrices specified in the text format), Abaqus may calculate incorrect results for the global inertia tensor of the usage model, modal participation factors, and some other quantities. You should exercise caution when using matrices specified in the text format.

Translating, Rotating, and Reflecting a Matrix Subassembly

You can specify translations, rotations, and/or reflections of a matrix subassembly in a matrix assemble definition. You specify a translation by giving a translation vector. You specify a rotation by giving two points that define a rotation axis and a right-handed angular rotation about that axis. You specify a reflection by giving three noncollinear points in the reflection plane. You can also define a position transformation of a matrix subassembly by specifying three successive rotations with respect to a reference point using the Euler angles.

Positioning transformations are applied in the order they are specified. There is no restriction on the number of translations, rotations, and reflections for a single matrix assemble definition. When a matrix subassembly is translated, rotated, and/or reflected, the degrees of freedom at any matrix nodes are defined with respect to the coordinate directions at the usage level.

If a subassembly including matrices specified in the binary format has position transformations, automatically generated matrix nodes are placed in the geometrical positions associated with the transformed nodal coordinates.

Setting a Tolerance on the Matrix Subassembly Nodes

One difficulty with using matrices is ensuring that the subassembly nodes are connected to the correct nodes on the usage level (after positioning translation, rotation, and/or reflection, if applicable). Therefore, Abaqus/Standard checks that the coordinates of the matrix nodes match the coordinates of the corresponding nodes on the usage level.

To check the coordinates, you can set a tolerance on the distance between usage level nodes and the corresponding matrix nodes. This tolerance indicates the largest deviation allowable before a warning is issued. If you do not specify this tolerance, the default is to use a tolerance of 10–4 times the largest estimated characteristic dimension within the matrix subassembly. If you specify a tolerance of 0.0, the position of the matrix nodes is not checked.

The geometric check uses the coordinates of the matrix nodes after translation, rotation, and/or reflection of the matrix subassembly at the usage level.

Remapping User-Defined Nodes in Assembled Matrices

The nodes defined in the assembled matrices can be remapped (renamed) to different node labels in the matrix usage model. You must define all the new node labels in the matrix usage model, create a node set from them, and specify this node set when assembling the matrices. The size of the node set and the order of the nodes in the set must fully correspond to the combined set of nodes of all the matrices that are assembled. The matrix nodes are assumed to be sorted in ascending order of their original labels that were defined at generation or specified in the matrix data.

Multiple Instantiation of Matrices

With the node remapping feature, the same matrix can be used multiple times in the matrix usage model. You define the matrix once and assemble it several times, specifying the relevant node sets for remapping.

Remapping Internal Nodes in Assembled Matrices

When using matrix data that contain internal nodes, Abaqus automatically maps those nodes to unique internal node labels in the matrix usage model. Assembled stiffness, mass, and damping matrices that originate from the same finite element model and represent the same part of the usage model must share the internal nodes. It is important to assemble such stiffness, mass, and damping matrices together using a single matrix subassembly definition.

For assembled matrices that originate from different models or for different instances of a matrix subassembly representing different parts of the usage model, the internal nodes are mapped to different internal nodes in the matrix usage model, even if they have the same negative node labels in the text format. You must use different matrix subassembly definitions to define different matrix subassemblies or different instances of a matrix subassembly.

Remapping Interface Nodes in Assembled Matrices

You can use interface nodes of the matrices specified in the binary SIM format to connect a matrix subassembly to the matrix usage model. To connect a matrix subassembly, you can define the new node labels for the interface nodes in the matrix usage model, create a node set from them, and specify this node set when assembling the matrices. The size of the node set and the order of the nodes in the set must fully correspond to the set of interface nodes defined in the matrix generation analysis. You do not need to define nodes that are not interface nodes. Abaqus automatically creates these nodes in the geometrical positions defined by the nodal coordinates of the original model and applied positioning transformations.

Specifying the Matrix Subassembly Name

You can specify the matrix subassembly name to reference the subassembly if it is required in the modeling features.

Mapping Matrix Subassembly Nodes to the Usage Model Nodes

Abaqus automatically generates the mapping between the matrix subassembly nodes and the usage model nodes. This mapping is written in the text format to the .mtxmap file. The file contains the subassembly name, node number, and mapping pairs: original label, new label. This information is repeated for each subassembly with automatically mapped nodes.

Using Matrices in Nonlinear Analyses

When you use matrices in a nonlinear analysis procedure, nonlinearities are not accounted for. Since the matrix data remain unchanged during the analysis, only linear elastic material behavior can be represented and only large translations can be modeled correctly in a geometrically nonlinear analysis. Changes to the matrix due to large rotations or load stiffness are not computed in a geometrically nonlinear analysis.

Using Matrices in Linear Perturbation Analyses

Matrices can be used in a static perturbation analysis as well as in a natural frequency extraction analysis using the Lanczos or AMS eigensolver. For certain quantities (such as participation factors and global inertia properties) to be computed properly, the coordinates of the nodes associated with the matrices should be defined in the model using matrices. Matrices can also be used in modal analysis procedures using the high-performance SIM architecture; namely, steady-state dynamic, modal dynamic, random response, response spectrum, and complex frequency extraction analyses. Matrices can be used in the substructure generation and matrix generation procedures as well.

Matrices cannot be used in the modal procedures that are not based on the high-performance SIM architecture.

Constraints and Transformations

Kinematic constraints (for example, coupling constraints, linear constraint equations, multi-point constraints, or surface-based tie constraints) can be applied to any nodes in a model containing matrices. Since kinematic constraints in Abaqus/Standard are usually imposed by eliminating degrees of freedom at the dependent nodes, matrix nodes should not be used as dependent nodes.

To apply contact constraints on matrix nodes, a node-based surface must be defined on these nodes and this surface should be used as the secondary surface in the contact pair definition.

Nodal transformations defined at nodes that appear in the matrix do not affect the matrix. The matrix entries corresponding to these nodes are assumed to be in the local coordinates defined by the nodal transformations.

Initial Conditions

Initial conditions can be specified as usual; however, only node-based initial conditions can be applied to nodes that appear in matrices. See Initial Conditions.

Boundary Conditions

Boundary conditions can be specified as usual. See Boundary Conditions. Any boundary conditions that are defined in the matrix generation step are implied in the matrices and should not be reapplied in the matrix usage analysis.

Matrix nodes can be defined as driven nodes in a submodel analysis (see About Submodeling); they cannot be defined as driving nodes in a global model. For shell-to-solid submodeling, matrix nodes that are defined as driven nodes are treated as lying within the center zone no matter how far they are from the shell reference surface.

Loads

Concentrated nodal forces can be applied at displacement degrees of freedom (1–6) of any node as usual. Distributed pressure forces can be applied to surface elements defined over matrix nodes (see Surface Elements). Body forces cannot be applied to parts of the model represented by matrices. User-defined loads can be applied with the same restrictions as above for distributed pressure forces and body forces.

Predefined fields can be applied at any nodes as usual (see Predefined Field Variables and Predefined Temperature); however, matrix data are not affected by predefined fields. For example, if temperatures are specified as a predefined field on nodes that appear on a matrix, only the elements that share these nodes with the matrix experience thermal strains if thermal expansion is specified for those elements. The matrix does not experience any thermal strains, but it may experience linear elastic forces due to displacements at shared nodes.

Limitations

The following are known limitations to using matrices:

  • Matrices cannot be used in a model containing parts and assemblies.

  • Matrices containing acoustic pressure and mechanical degrees of freedom will disable the coupled acoustic structural eigenvalue extraction.

  • By default, using the matrix data containing internal nodes in text format is not supported. Usage of such matrices in text format can be allowed for some special cases. This feature should be used with caution.

  • Matrices cannot be used in nonlinear analyses with inertia relief loads.

  • Matrices cannot be used in linear perturbation analyses with inertia relief loads using distributed memory parallel (DMP) execution.

  • Matrices cannot be used in mode-based analyses that do not use the new linear dynamics architecture (SIM-based architecture).

  • Matrices cannot be used in nonlinear analyses using the quasi-Newton solution technique.

Input File Template

HEADINGNODE
Data lines to specify nodes
NSET, NSET=NSET1, UNSORTED
Data lines to specify a node set with the nodes in a particular orderBOUNDARY
Data lines to specify zero-valued boundary conditions
MATRIX INPUT, NAME=MAT1, SCALE FACTOR=sval
Data lines to specify a  stiffness matrix
MATRIX INPUT, NAME=MAT2, SCALE FACTOR=sval
Data lines to specify a  mass matrix
MATRIX INPUT, NAME=MAT3, SCALE FACTOR=sval
Data lines to specify a  viscous damping matrix
MATRIX INPUT, NAME=MAT4, INPUT=input_file_name
MATRIX INPUT, NAME=MAT5, INPUT=input_file_name
MATRIX INPUT, NAME=MAT6, INPUT=sim_file_name, MATRIX=STIFFNESS
MATRIX ASSEMBLE, STIFFNESS=MAT1, MASS=MAT2,
VISCOUS DAMPING=MAT3, STRUCTURAL DAMPING=MAT4
MATRIX ASSEMBLE, STIFFNESS=MAT6, MASS=MAT5
MATRIX ASSEMBLE, STIFFNESS=MAT6, MASS=MAT5, NSET=NSET1
STEP(,NLGEOM)(,PERTURBATION)
Use NLGEOM  to include nonlinear geometric effects; it will remain active in all subsequent steps.
STATIC
BOUNDARY
Data lines to prescribe zero-valued or nonzero boundary conditions
CLOAD and/or DLOAD
Data lines to specify loads
END STEP
STEP
FREQUENCY
BOUNDARY
Data lines to prescribe zero-valued or nonzero boundary conditions
END STEP
STEP
STEADY STATE DYNAMICS
CLOAD and/or DLOAD
Data lines to specify loads
END STEP