01
Reference configuration and hypotheses
The isoparametric 4-node quadrilateral finite element is briefly described in Section 9.4.
Updated Lagrangian formulation. The equations for load step are written with respect to the known converged configuration at load step , which becomes the reference configuration for the new increment. Displacements and stresses at the target configuration are therefore determined relative to that preceding configuration, following the reference-configuration discussion of Chatzi [1].
In Section 15.1, the geometry is updated after every iteration. In the present section, the converged configuration at load step is kept fixed during all iterations used to determine load step . Only after convergence is the geometry updated to the new configuration.
02
Strain increment
The displacement and strain increments are measured relative to configuration . All derivatives in the following relations are evaluated with respect to that same configuration. The engineering components of the strain increment are:
The strain increment has the Green–Lagrange form, but it is evaluated with respect to the configuration at the previous load step, not the initial undeformed configuration. Since two successive configurations are close when the load increment is small, the corresponding Green–Lagrange and Euler–Almansi strain increments are also very close.
03
Geometry-update strategy
The essential programming difference between Sections 15.1 and 15.2 is shown below:
| Section 15.1 geometry updated after each iteration | Section 15.2 geometry updated after each load step |
|---|---|
| |
This apparently small programming change has an important consequence: during all iterations of one load step, the geometry remains fixed at the converged configuration of the preceding load step. The accumulated displacement increment is determined with respect to this fixed configuration. Only after convergence are the nodal coordinates updated.
In the MATLAB program, dS is the correction calculated during one iteration, S is the displacement increment accumulated during the current load step, and St(:,istep+1) is the total displacement accumulated up to that load step.
Apart from the different geometry-update strategy and the strain-update procedure discussed below, the finite-element formulation introduced in Section 15.1 remains applicable here.
04
Simple strain update
The routine stiff uses the simple strain update:
A simple additive strain update would be exact only if the strain measure depended linearly on the deformation. Green–Lagrange and Euler–Almansi strains are nonlinear measures, so such an update is only approximate. For sufficiently small strain increments the error is small and decreases as the load steps are refined.
In the additive expression, and are associated with configuration , whereas the updated strain is required in configuration . The transformation introduced next removes this strain-update kinematic inconsistency.
05
Transformed strain update
Let denote the Green–Lagrange strain increment for the deformation from configuration to configuration , with configuration used as reference. Let denote the Euler–Almansi strain already accumulated and expressed in configuration .
The deformation gradient for the increment is:
Here, is the deformation gradient for the increment from configuration to configuration , is the identity matrix, and is the gradient of the displacement increment with respect to the coordinates of configuration .
In component form:
The Green–Lagrange strain increment is:
The corresponding Euler–Almansi strain increment in configuration is:
The exact transformation between these two representations of the increment is:
The previously accumulated strain must also be transformed to the new current configuration. Therefore:
Both difficulties are removed by transforming the accumulated strain and the new strain increment to the current configuration.
Thus, stiff2 removes the kinematic error associated with the simple additive strain update by transforming the accumulated strain to the new current configuration.
06
MATLAB implementation
The additional transformation in stiff2 is implemented as follows:
FF=[1+ux uy; vx 1+vy];
FF=inv(FF);
ee=[ex exy/2; exy/2 ey];
ee=FF'*ee*FF;
ex =ee(1,1);
ey =ee(2,2);
exy=2*ee(1,2);
After FF=inv(FF);, the MATLAB variable FF contains . Consequently, ee=FF'*ee*FF; performs:
Engineering shear is divided by 2 when the symmetric tensor ee is constructed and multiplied by 2 when exy is recovered.
Both stiff and stiff2 preserve the nonlinear strain–displacement matrix:
The nonlinear matrices retained in the tangent are:
The present implementation retains the nonlinear -terms in the tangent stiffness. These terms are preserved as part of the numerical procedure used here.
The strain update used in stiff2 is corrected by the tensor transformation described above. The internal-force vector is then evaluated from the resulting current strain and stress state. The tangent stiffness is used to obtain the iterative displacement correction and need not be a fully consistent tangent for the method to converge to equilibrium.
Using an approximate tangent may affect the convergence rate, but not the equilibrium condition itself, provided that the internal-force vector is evaluated consistently with the adopted formulation.
07
Plane-stress thickness update
The small-strain plane-stress thickness convention is:
The current thickness is approximated by:
This thickness relation is a small-strain approximation; it is not a general exact relation for finite elastic strains.
08
Example 1: cantilever comparison
A cantilever of length has a rectangular cross-section , Young's modulus , and Poisson ratio . A vertical force is applied at the free end. The mesh contains Q4 elements and 2057 nodes.
The comparison uses five load steps for both Updated Lagrangian variants. The distributed program is configured accordingly with nstep=5.
stiffRed — UL with stiff25 load stepsstiff, and UL using stiff2.The table retains the notation used for the maximum downward displacement; its signed value is negative:
| TL | UL with stiffsimple strain update | UL with stiff2transformed strain update | ANSYS |
|---|---|---|---|
In the TL formulation, the number of load steps affects the nonlinear solution procedure but does not introduce an incremental strain-accumulation error.
For the displacement results shown here, the UL formulation using stiff2 with only five load steps is already very close to the TL solution and to the ANSYS result.
09
Programs and download
A MATLAB program package for this example can be downloaded below.
10
Reference
Eleni Chatzi, The Finite Element Method for the Analysis of Non-Linear and Dynamic Systems, ETH Zürich, Lecture 3, 15 October 2015.