Constraint
There are a number of different approaches to implement constraints in a FEM context. Interested readers can check out the relevant documentations of ABAQUS, or this slides for a brief introductory summary on linear constraints.
Overview
Not all approaches are suitable for general applications. Accounting for efficacy and universality, the penalty function method and the Lagrange multiplier method are implemented for most constraints.
Both methods do not alter the size of the system, or, in other words, they retain/reuse the unconstrained system. Consequently, there is no need to reallocate memory for the constrained system.
Generally speaking, the penalty function method directly modifies the unconstrained system by introducing penalty factors into the system. The larger the penalty factor, the more strictly the constraint is enforced. However, the system tends to become ill-conditioned with large penalty factors.
The Lagrange multiplier method uses the border matrices to exactly enforce the constraint. The solving cost is higher than the penalty function method, as it is not known in advance if the specific constraint (especially the inequality constraints) should be active or not before the unconstrained system is solved.
Difference Between Two Methods With Examples
Here we show a very simple example to illustrate the difference between the two methods. The homogeneous Dirichlet
type boundary condition (fix
and fix2
) is used.
The following model defines a simple elastic cantilever beam subjected to end load. The size of the system shall be \(6\) (three DoFs per node with two nodes). The fixed end is constrained so three DoFs are constrained, one DoF is loaded and the other two are free.
Penalty Function Method
The fix
command implements the penalty function method, the default penalty factor is \(10^8\). The analysis
results can be shown as follows.
Text Only | |
---|---|
Although it is an elastic model, it still requires three iterations to converge. Since the default penalty factor is \(10^8\), each iteration will have an inherent error around \(10^{-8}\). Thus the second iteration gives a relative error of \(3.10087\times10^{-9}\).
Control the Penalty Factor
To enforce stronger/weaker constraints, it is possible to use a larger penalty factor via the set
command. For
example,
Text Only | |
---|---|
Or stronger such as,
Text Only | |
---|---|
Text Only | |
---|---|
This is the inherent behaviour of the penalty function method. For nonlinear analysis, it is not a concern. For linear elastic analysis, additional iterations are required to converge.
Lagrange Multiplier Method
The fix2
command implements the Lagrange multiplier method. With which,
Text Only | |
---|---|
The corresponding iteration results are shown as follows.
Text Only | |
---|---|
It can be seen that the constraint is exactly satisfied as the relative error is smaller than the machine error
(DBL_EPSILON
is typically around \(2\times10^{-16}\)).