SECTION 16.2 OF CHAPTER 16: Corotational formulation (CR)
Improved approach
An improved tangent approximation for the corotational Q4 plane-stress element, including the displacement dependence of the strain-displacement matrix and the Jacobian determinant.
CorotationalImproved tangentPlane stressQ4MATLAB
01
Corotational setting
StrainSmall
DisplacementLarge
MaterialLinear elastic
Stress statePlane stress
As in Section 16.1, the rigid-body motion is removed by replacing the initial configuration with the corotational configuration. The analysis is performed on the current deformed configuration [1, 2].
Figure 1. Initial undeformed, current deformed, and corotational configurations of the 4-node quadrilateral finite element.
The nodal coordinates and displacements are:
x={xy}u={uv}
The configurations and corotational nodal displacements are:
xel=xel0+uel
xel=Rxel0withR=[cosθ−sinθsinθcosθ]
uel=xel−xel=(I2−R)xel0+uel
The engineering strain measure is used for the small deformational part:
⎩⎨⎧εxεyγxy=∂x∂u=∂y∂v=∂y∂u+∂x∂v
⎩⎨⎧εxεyγxy=∂x∂u=∂y∂v=∂y∂u+∂x∂v
These relations are equivalent because (I2−R)x0 is constant within the element; see Section 16.1.
02
Equilibrium and improved tangent approximation
The nonlinear equilibrium equations are:
Ψ(u)=Ael=1nel(hnG∑BTσdet(J))−F=0
or
Ψ(u)=Ael=1nel(fel)−F=0
Here, A denotes the standard finite-element assembly operator, ∑nG represents Gauss quadrature for one element, and nel is the number of finite elements. The element internal-force vector is:
fel=hnG∑BTσdet(J)
The stiffness matrix is defined through the derivative:
kel=∂uel∂fel
Because both B and J depend on uel, the contributions retained in the improved tangent approximation are:
The internal nodal force vector fel is evaluated consistently and is the quantity that governs the equilibrium solution. The stiffness matrix kel used here is not the complete derivative of fel, because not all dependencies introduced by the corotational transformation are differentiated. However, the additional terms included in this section provide a much better tangent approximation than in Section 16.1 and substantially improve the convergence rate. Since fel itself is correct, the iterative process still converges to the correct equilibrium solution.
The tangent stiffness matrix obtained with the present approximation is generally non-symmetric. For Example 1, the measured mean relative asymmetry of the element tangent matrices was approximately 7.37×10−2. No artificial symmetrization is applied, since numerical tests showed that symmetrization significantly deteriorates the convergence rate.
03
Contribution T1
The first contribution to the improved tangent approximation is:
T1=hnG∑det(J)BT∂uel∂σ
For a linear elastic material:
σ=Dε=DBuel
Consequently:
∂uel∂σ=∂uel∂(DBuel)=DB
The resulting contribution is:
T1=hnG∑det(J)BTDB=kel1
04
Contribution T2
The second contribution is:
T2=hnG∑det(J)∂uel∂BTσ=kel2
The derivative of BT with respect to the eight-component element displacement vector is a collection of eight 8×3 matrices. For each degree of freedom, multiplication by the 3×1 stress vector:
σ=⎩⎨⎧σxσyτxy⎭⎬⎫
produces one 8×1 column of kel2. The complete 8×8 matrix is most conveniently identified by using virtual displacements:
For each nodal degree of freedom, the corresponding derivative contributes one column to the matrix kel2. The derivative with respect to the first degree of freedom gives the first column, and the remaining derivatives give the subsequent columns. As in Section 9.4:
Thus, ∂J/∂uel contains eight 2×2 matrices. The sequence of derivative dimensions is:
∂uel∂J:8 matrices of size 2×2
∂uel∂b:8 matrices of size 2×4
∂uel∂B:8 matrices of size 3×8
∂uel∂BT:8 matrices of size 8×3
Multiplying each last matrix by σ produces an 8×1 column; the eight columns form the 8×8 contribution kel2. The MATLAB implementation performs these operations directly:
% B derivative contribution:
for i=1:8
p=zeros(2,4);
p(i)=1;
dJ=H*p';
% derivative of b with respect to u_el:
db=-J1*dJ*b;
dBi=[db(1,1) 0 db(1,2) 0 db(1,3) 0 db(1,4) 0
0 db(2,1) 0 db(2,2) 0 db(2,3) 0 db(2,4)
db(2,1) db(1,1) db(2,2) db(1,2) db(2,3) db(1,3) db(2,4) db(1,4)];
dBsig(:,i)=dBi'*sg;
end
Thus, the contribution is added as dBsig:
kel=kel+th1*(B'*DHooke*B+dBsig)*detJ + th1*ddetJ;
05
Contribution T3
The third contribution is:
T3=hnG∑∂uel∂∣detJ∣BTσ=kel3
Writing the determinant derivative component by component gives:
The Cauchy stress in the element local frame is obtained from:
σ=RTσR
The stresses are evaluated both in the global and in the local reference frame. This is very easy to do, because the rotation matrix R has already been computed for determining the corotational configuration; therefore, no additional computational effort is required.
For side i, let di0 be its vector in the initial configuration and dic the homologous vector in the current configuration. The signed rotation is:
θi=atan2((dic×di0)z,dic⋅di0)
The representative element rotation remains the arithmetic average:
The current thickness is updated using the same small-strain plane-stress approximation:
εz=−1−νν(εx+εy)hcur≈(1+εz)h
This thickness relation is a small-strain approximation; it is not a general exact relation for finite elastic strains.
07
Examples
Example 1 — pure bending
A cantilever beam has L=400mm, rectangular cross-section 5mm×30mm, E=1000MPa, and ν=0.3. A bending moment M=37000Nmm is applied through forces at the free end. The structured mesh contains 80×12=960 Q4 elements and 1053 nodes. This is the default problem generated by gen1.m.
The theoretical bending angle is:
φ=EICL=1000(303⋅5/12)37000⋅400=1.31rad=75∘
Figure 2. Intermediate deformed configurations during loading.
Figure 3. Final deformed configuration for the pure-bending example.
The forces have a fixed orientation in space, as shown in Figure 4.
The forces increase proportionally with the load-step number, while their moment arms change as the beam deforms. Consequently, the resulting bending moment does not increase exactly proportionally with the load-step number.
Figure 4. End forces acting at 75∘ to the horizontal.
Figure 5. Forces shown on the initial undeformed configuration.
Figure 6. Geometry used for the elementary displacement comparison.Figure 7. Axial Cauchy stress σx in the local reference frames of the finite elements.
The classic bending formula gives:
σmax=WC=5⋅3026⋅37000=49.3MPa
The MATLAB result ranges approximately from −50.71MPa to 50.52MPa. The accompanying ANSYS comparison gives approximately σmin=−49.91MPa and σmax=49.04MPa.
The maximum axial strain is about 0.05. This is already a relatively large value for a small-strain formulation, but it is useful here because it makes the differences between the compared approaches more visible.
The midpoint displacements of the free end are compared below:
Formulation
u
v
TL
−105.04mm
227.11mm
UL
−103.00mm
226.08mm
CR
−104.54mm
227.02mm
ANSYS
−104.50mm
226.81mm
The elementary circular-arc estimate uses:
ρ=φL=1.31400=305.34mm
u=L−ρsinφ=400−305.34sin(1.31)=104.98mm
v=ρ(1−cosφ)=305.34(1−cos(1.31))=226.61mm
Example 2 — cantilever loaded by an end force
The beam has L=400mm, rectangular cross-section 5mm×20mm, E=1000MPa, ν=0.3, and an end force F=100N. The mesh contains 60×8=480 Q4 elements, 549 nodes, and 8 load steps. Run this problem by replacing gen1 with gen2 in main.m.
Figure 8. Axial Cauchy stress σx for Example 2 at load step 8.
08
Convergence and load stepping
The additional tangent contributions substantially accelerate convergence compared with Section 16.1. For tol=10−5, the examples considered required approximately 8–9 iterations per load step with nstep=5, and typically 6–8 iterations per load step with nstep=10. These are results for the present examples, not universal convergence guarantees.
Important remark. The corotational formulation presented here is not incremental with respect to the strain or reference configuration. The converged final solution does not depend on the number of load steps. Load stepping may nevertheless be used to facilitate convergence or to follow the response of the structure during loading, for example to obtain a force–displacement curve. If only the final state is required and convergence is achieved, a single load step gives the same final result.
09
Program and download
The MATLAB package used for the two examples can be downloaded below.
Felippa, C. A., Nonlinear Finite Element Methods, Department of Aerospace Engineering Sciences, University of Colorado at Boulder, Chapters 12 and 13, 2004.