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.
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.
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
HEADING
…
NODEData lines to specify nodesNSET, NSET=NSET1, UNSORTEDData lines to specify a node set with the nodes in a particular order
…
BOUNDARYData lines to specify zero-valued boundary conditionsMATRIX INPUT, NAME=MAT1, SCALE FACTOR=svalData lines to specify a stiffness matrixMATRIX INPUT, NAME=MAT2, SCALE FACTOR=svalData lines to specify a mass matrixMATRIX INPUT, NAME=MAT3, SCALE FACTOR=svalData lines to specify a viscous damping matrixMATRIX INPUT, NAME=MAT4, INPUT=input_file_nameMATRIX INPUT, NAME=MAT5, INPUT=input_file_nameMATRIX INPUT, NAME=MAT6, INPUT=sim_file_name, MATRIX=STIFFNESSMATRIX ASSEMBLE, STIFFNESS=MAT1, MASS=MAT2,
VISCOUS DAMPING=MAT3, STRUCTURAL DAMPING=MAT4MATRIX ASSEMBLE, STIFFNESS=MAT6, MASS=MAT5MATRIX ASSEMBLE, STIFFNESS=MAT6, MASS=MAT5, NSET=NSET1STEP(,NLGEOM)(,PERTURBATION)
Use NLGEOM to include nonlinear geometric effects; it will remain active in all subsequent steps.STATICBOUNDARYData lines to prescribe zero-valued or nonzero boundary conditionsCLOAD and/or DLOADData lines to specify loadsEND STEPSTEPFREQUENCYBOUNDARYData lines to prescribe zero-valued or nonzero boundary conditionsEND STEPSTEPSTEADY STATE DYNAMICSCLOAD and/or DLOADData lines to specify loadsEND STEP