About Kinematic Constraints

You can define several types of kinematic constraints, including multi-point constraints, kinematic coupling constraints, and tie constraints.

The following topics are discussed:

The following types of kinematic constraints can be defined:


Linear multi-point constraints can be given in the form of an equation (see Linear constraint equations).

Multi-point constraints

Multi-point constraints (MPCs) specify linear or nonlinear constraints between nodes. These relations between nodes can be the default types that are provided in Abaqus or, in Abaqus/Standard, can be coded in the form of a user subroutine. General multi-point constraints explains the use of MPCs and lists the available default constraints.

Kinematic coupling

In Abaqus/Standard a node or group of nodes can be constrained to a reference node. Similar to multi-point constraints, the kinematic coupling constraint allows general node-by-node specification of constrained degrees of freedom (see Kinematic coupling constraints).

Surface-based tie constraints

Two surfaces can be tied together. Each node on the first surface (the slave surface) will have the same values for its degrees of freedom as the point on the second surface (the master surface) to which it is closest (see Mesh tie constraints). In the case of surface elements tied to a beam surface, the offset distances between the surface elements and the beam are used in the definition of constraints, which include the rotational degrees of freedom of the beam.

Surface-based coupling constraints

A group of nodes located on a surface can be constrained to a reference node. This constraint may be kinematic, in which the group of coupling nodes can be constrained to the rigid body motion defined by the reference node, or distributing, in which the group of coupling nodes can be constrained to the rigid body motion defined by the reference node in an average sense (see Coupling constraints).

Surface-based shell-to-solid coupling

An edge-based surface on a three-dimensional shell element mesh can be coupled to an element- or node-based surface on a three-dimensional solid mesh. The coupling is enforced by the creation of an internal set of distributing coupling constraints (see Shell-to-solid coupling).

Mesh-independent spot welds

Two or more surfaces can be bonded together using fasteners such as spot welds (see Mesh-independent fasteners). Distributed coupling constraints are created on each of the connected surfaces. The connection is modeled independent of the mesh.

Embedded elements

An element or a group of elements can be embedded in a group of host elements (see Embedded Elements). Abaqus will search for the geometric relationships between nodes on the embedded elements and the host elements. If a node on an embedded element lies within a host element, the degrees of freedom at the node will be eliminated by constraining them to the interpolated values of the degrees of freedom of the host element. Host elements cannot be embedded themselves.


In Abaqus/Standard a local rotational degree of freedom or a combination of local rotational degrees of freedom can be released at one or both ends of a beam element (see Element End Release).

Boundary conditions are also a type of kinematic constraint in stress analysis because they define the support of the structure or give fixed displacements at nodal points. Specification of boundary conditions is discussed in Boundary conditions in Abaqus/Standard and Abaqus/Explicit.

Connector elements can be used to impose element-based kinematic constraints for mechanism-type analysis. See About connectors.

Contact interactions, described in About contact interactions can be used to enforce constraints between bodies that come into contact. Contact interactions can be used in mechanical as well as coupled thermomechanical, coupled thermal-electrical-structural, and coupled pore fluid-mechanical analysis.

Overconstraint Checks describes the overconstraint checks and the automatic resolution of some overconstraints performed in Abaqus/Standard.

Multiple kinematic constraints at a node

It is possible to use a single node in several multi-point constraints, kinematic coupling constraints, tie constraints, and constraint equations. However, the constraint dependencies are handled differently in Abaqus/Standard and Abaqus/Explicit.

Multiple constraints in Abaqus/Standard

In Abaqus/Standard kinematic constraints are usually imposed by eliminating degrees of freedom at the dependent nodes. Once a variable has been eliminated, it cannot be referenced in any boundary condition or in any subsequent multi-point constraint, kinematic coupling constraint, tie constraint, or constraint equation. If you intend to use a variable that is eliminated in one constraint equation as the retained variable in another constraint equation, you must order the input so that the constraint equation in which the variable is eliminated follows the other constraint equations. MPC types BEAM, CYCLSYM, LINK, PIN, REVOLUTE, TIE, and UNIVERSAL, as well as the kinematic coupling and tie constraints, are sorted internally by Abaqus/Standard to obtain a proper elimination order when possible.

Excessive chaining of multi-point constraints, kinematic coupling constraints, and constraint equations is not recommended and may result in a degradation in performance during analysis preprocessing. Whenever possible, it is best to relate the behavior of several nodes (grouped into a node set) to a single node by using one multi-point constraint, kinematic coupling constraint, or constraint equation.

Multiple constraints in Abaqus/Explicit

Kinematic constraints in Abaqus/Explicit can be defined in any order without regard to constraint dependencies. With the exception of constraints arising from kinematic contact pairs, Abaqus/Explicit solves for all kinematic constraints simultaneously. Thus, nodes involved in a combination of multi-point constraints, constraint equations, connector element kinematic constraints, rigid body constraints, and constraints due to boundary conditions will simultaneously satisfy these constraints as long as they are not conflicting. Redundant and closed loop constraints are acceptable.

Since the above constraints are enforced independent of contact constraints, the penalty contact algorithm should be used for nodes involved in both kinematic constraints and contact pair definitions. The penalty contact algorithm introduces numerical softening through the use of penalty springs and does not interfere with kinematic constraints. If a node that participates in a kinematic constraint is used in a kinematic contact pair, the contact constraint will most likely override the kinematic constraint. Except for rigid bodies, Abaqus/Explicit will not prevent you from defining these conditions, but the results cannot be guaranteed. If a kinematic constraint is defined for a node on a rigid body, the penalty contact algorithm must be used for all contact pairs involving the rigid body.

To obtain accurate reaction force and moment output from Abaqus/Explicit at nodes that are constrained by boundary conditions in addition to one or more of the kinematic constraints described above, it may sometimes be necessary to run the analysis in double precision. In such a situation a double precision run will also yield a better estimate of the work done by the reaction forces and moments, thereby providing a more accurate value of the energy due to the external work reported by Abaqus/Explicit.

Abaqus/Explicit uses a penalty method to solve for constraints in certain situations. The penalties are weighted based on the masses of nodes participating in the constraint and the stable time increment. The penalty formulation attempts to satisfy the constraint approximately (i.e., a very small lack of compliance exists after imposition of the constraint). One situation in which the penalty approach is used to solve the constraint is when slave nodes of a tie constraint participate in other constraints such as multi-point constraints, kinematic coupling constraints, constraint equations, connector elements, rigid body constraints, or constraints due to boundary conditions. In this case the lack of compliance in the tie constraint is not carried across step boundaries; therefore, noisy accelerations and energy imbalance may be observed at step boundaries for certain problems. An alternative modeling approach (such as simply reversing the master and slave surfaces in the tie constraint) may switch to a different solution approach and thus resolve the above mentioned inaccuracies.

In Abaqus/Explicit when there are two or more overlapping distributed coupling constraints or overlapping distributed coupling and tie constraints, and the elements underlying the participating surfaces have very low densities, the lack of compliance may result in an inaccurate solution. Specifying reasonable density values for underlying elements may reduce the lack of compliance and improve solution accuracy.

Abaqus/Explicit always uses a geometrically nonlinear formulation for the enforcement of kinematic constraints. This is the case even when you have designated a particular analysis step as being geometrically linear. Consequently, results in these geometrically linear analyses could be hard to interpret, particularly when the loading in the model is high (displacements are large) and a geometrically nonlinear formulation should have been used.

Initial conditions at constrained nodes

You should not think of initial conditions as boundary conditions at the beginning of the analysis. When you prescribe initial conditions at a set of nodes that are constrained kinematically, Abaqus processes the prescribed values to determine an initial value that is then redistributed to the nodes involved in the constraints in a kinematically consistent manner via a “mass” weighted averaging method: the initial value prescribed at each node involved in the constraint is weighted with the corresponding “mass” at the node. Consequently, the values of the initial conditions that you specified at the nodes are recomputed, and in many cases the output of the prescribed quantity at these nodes at the beginning of the analysis will be different from the values that you have specified. Correct modeling practices consist of specifying initial conditions at all nodes involved in the constraints in a manner consistent with constraint itself.

This behavior is probably best understood via a simple example. Consider a model consisting of two nodes each with a mass of 1.0 constrained by boundary conditions in global directions 2 and 3 and allowed to move freely along the global 1-direction while their relative motions is also constrained via a rigid connection such as a BEAM connector. Assume that you have specified an initial translational velocity along the global 1-direction only at the first node of 10.0 units and you have not specified initial conditions at the second node. Consequently, Abaqus will consider that the initial velocity is 0.0 at the second node. This initial velocity field is inconsistent with the kinematic constraint enforced by the BEAM connector because the constraint would be violated if the initial conditions were to be enforced even for an infinitesimally short period of time. The outcome is that Abaqus will compute an initial velocity field that would redistribute the momentum of the first node in a manner consistent with the constraint. In this particular example, the net effect is that both nodes will end up with an initial velocity of 5.0 units along the global 1-direction. Most likely, this is not what you intended. Correct modeling practice in this case would be to specify an initial velocity of 10.0 units at both nodes involved in the constraint. In this case Abaqus will still recompute the initial values, but the outcome would be an initial velocity of 10.0 units at both nodes, as intended.

The same principle applies in more complicated modeling situations. For example, if you prescribe initial translational velocities at the nodes of the kinematic constraint, an average translational velocity of the constrained nodes is computed by calculating a mass weighted average of the velocities at the individual nodes. Depending on the nature of the kinematic constraint, initial translational velocities at the nodes of a constraint may also give rise to an average rotational velocity about the center of mass of the constraint. The velocity of each individual node of the constraint is then recomputed from the average translational and rotational velocities at the center of mass of the constraint. The “mass”-type quantity used in the weighting varies depending on the nature of the prescribed quantity: if the initial condition is prescribed on the rotational velocities, the rotary inertia at the nodes is used in the weighting; if temperature initial conditions are prescribed, the thermal capacitance at the nodes is used in the weighting; and so on.

In all cases, you should specify initial conditions at all nodes involved in the constraint that are consistent with the constraint. This is typically accomplished by specifying the same initial conditions at all nodes involved in the constraint.