01
Purpose and progression
This section grew out of discussions with Chiara, whose contribution was decisive in developing the idea of evaluating the Euler–Almansi strain directly from the current configuration.
Section 15.1 and Section 15.2 evaluate the Euler–Almansi strain through incremental procedures. The present section investigates whether the same strain can instead be evaluated directly from the total current deformation.
stiffSimple additive strain update.stiff2Accumulated strain and new strain increment transformed to the new current configuration.stiff3Direct Euler–Almansi evaluation from the current configuration.The transformed update used by stiff2 is:
The simple additive approximation applies to stiff. In stiff2, the accumulated strain and the new strain increment are transformed together to the new current configuration. This transformation is kinematically equivalent to the direct Euler–Almansi evaluation used in stiff3.
02
Direct Euler–Almansi strain
The Euler–Almansi strain introduced in Chapter 13 is:
where:
Here, is the total deformation gradient from the initial configuration to the current trial configuration, not merely the deformation gradient of the latest load increment. No previously accumulated strain is required to evaluate the current strain. The Euler–Almansi strain is obtained directly from the total deformation of the current trial configuration.
In engineering notation:
stiff3 does not use and does not need strnt(:,:,istep) to calculate the current trial strain at load step . The array strnt remains only to store strain results for post-processing.
The complete finite-element algorithm nevertheless retains the linear elastic material assumption, the small-strain plane-stress thickness approximation, and the adopted internal-force formulation and approximate tangent stiffness discussed in Sections 15.1 and 15.2.
03
Initial and current trial geometries
At each Gauss point, is the Jacobian of the initial undeformed configuration and is the Jacobian of the current trial configuration.
Using the notation introduced in Chapter 13, denotes the position in the initial configuration and the position in the current configuration.
For an infinitesimal line element:
Eliminating :
Since, by definition:
it follows that:
The current trial nodal coordinates are obtained from the known configuration at the beginning of the load step plus the accumulated displacement increment of that step:
The implementation uses the initial nodal coordinates x0 and y0 stored by gen.m.
This matrix maps the initial material geometry directly to the current trial geometry. It therefore includes the complete deformation accumulated from the initial configuration, rather than only the latest increment.
The left Cauchy–Green tensor and the direct Euler–Almansi strain follow as:
04
MATLAB implementation
stiff3 was developed from the stiff routine of Section 15.2 so that only the strain-evaluation procedure changes. The geometry update after load-step convergence, , the terms, the internal force, the adopted tangent stiffness, the thickness approximation, load stepping, and convergence tolerance are retained.
The new conceptual block is:
% Current trial nodal coordinates
xelt=xel+sel(1:2:8);
yelt=yel+sel(2:2:8);
% Initial and current trial Jacobians
J0=H*[xel0 yel0];
Jt=H*[xelt yelt];
% Total deformation gradient
Ftot=(J0\Jt)';
% Left Cauchy-Green tensor
btens=Ftot*Ftot';
% Euler-Almansi strain tensor
ee=0.5*(eye(2)-inv(btens));
ex =ee(1,1);
ey =ee(2,2);
exy=2*ee(1,2);The current trial coordinates used to form are:
xelt=xel+sel(1:2:8)
yelt=yel+sel(2:2:8)The plane-stress thickness remains the same small-strain approximation:
This thickness relation is a small-strain approximation; it is not a general exact relation for finite elastic strains.
05
Equivalence of stiff2 and stiff3
Let be the total deformation gradient from the initial configuration to configuration , and the incremental deformation gradient from configuration to configuration . Then:
The Euler–Almansi strain at configuration is:
The Green–Lagrange strain increment for is:
Substitution into the stiff2 update gives:
Therefore:
stiff2 reaches the current Euler–Almansi strain by transporting the previously accumulated strain and the new increment, whereas stiff3 obtains the same strain directly from the total current deformation. This is an exact kinematic equivalence; it is not a claim that the complete finite-element formulation is exact.
Although stiff3 does not introduce a different Euler–Almansi strain measure, it provides an independent way of evaluating it. It avoids strain-history accumulation for current strain evaluation and provides a useful numerical verification of the transformed strain update introduced in Section 15.2.
06
Displacement comparison
The comparison uses only the displacement components of the node on the midline of the free-end section. This provides a clean common quantity because the implementations involve different stress descriptions. Direct MATLAB verification confirmed that the first listed displacement is and the second is ; both are negative with the adopted global axes.
The TL reference solution, obtained with , required 63 total iterations and gave:
Each cell lists the total number of iterations followed by the two signed displacement components at the midline node of the free-end section.
| Section 15.1 | 15.2stiff | 15.2stiff2 | 15.3stiff3 | |
|---|---|---|---|---|
| 5 | ||||
| 10 | ||||
| 20 | ||||
| 50 |
The corresponding average number of iterations per load step is:
| Section 15.1 | stiff | stiff2 = stiff3 | |
|---|---|---|---|
| 5 | 13.2 | 8.0 | 20.4 |
| 10 | 8.6 | 6.4 | 10.6 |
| 20 | 6.85 | 5.55 | 7.70 |
| 50 | 5.34 | 4.42 | 6.00 |
neq. For 5, 10, 20, and 50 load steps, both stiff2 and stiff3 required respectively 100, 104, 150, and 300 iterations. Their displacement differences were below , which is normal floating-point roundoff. The small differences between these iteration totals and the benchmark table arise from the convergence-norm normalization; the benchmark values are retained unchanged.For , the displacement differences relative to the TL reference are approximately 6.3% in and 1.9% in for Section 15.1; 3.8% and 0.7% for stiff; and 0.47% and 0.08% for stiff2/stiff3.
Exploratory calculations with only one to three load steps produced unacceptable displacement solutions and are therefore not included in the systematic comparison. No conclusion is drawn for four load steps.
07
Interpretation and conclusion
For every tested number of load steps, stiff2 and stiff3 produced identical displacement results to the reported precision and identical iteration counts. This provides a strong independent verification of the strain transformation used in stiff2.
Already with five load steps, their displacement solution is very close to the TL reference. The simple stiff update requires more load-step refinement to approach the same displacement accuracy, while Section 15.1 is still more sensitive to load-step size for this example.
Accuracy and iteration speed are different issues. The transformed/direct strain update requires more iterations per load step in this example, but substantially fewer load steps are needed to obtain an accurate displacement solution.
The larger number of iterations required by stiff2 and stiff3 is consistent with the use of an approximate tangent stiffness together with the corrected strain evaluation. The tangent primarily affects the convergence path and convergence rate; the equilibrium condition is governed by the internal-force vector. This is an observation for the present implementation, not a general statement that an approximate tangent always produces this behavior.
The direct strain evaluation eliminates strain-history accumulation from the Euler–Almansi calculation, but the complete nonlinear finite-element solution may still depend slightly on the load-step discretization because the remaining algorithmic approximations are unchanged.
The three UL implementations illustrate progressively different ways of treating strain updates. The direct Euler–Almansi evaluation in stiff3 eliminates the need to accumulate strain history for the purpose of evaluating the current strain. Its complete numerical agreement with stiff2 confirms that the tensor transformation introduced in Section 15.2 reproduces the same Euler–Almansi strain obtained directly from the total current deformation.
For the present example, this more accurate strain treatment requires more iterations per load step than the simple stiff update, but it reaches an accurate displacement solution with substantially fewer load steps.
08
Program and download
A MATLAB program package for the direct stiff3 implementation can be downloaded below.