01
Main idea
This chapter was written by me, Chiara, based on an idea by Mircea — an idea I liked so much that I simply would not let him write it himself.
Sections 16.1 and 16.2 use different approximations of the element tangent stiffness matrix. In the present section, the tangent matrix is obtained directly by central numerical differentiation of the element internal nodal force vector:
The nodal displacement vector of the 4-node quadrilateral element is:
02
Central finite differences
Let denote the numerical differentiation perturbation. For each element degree of freedom , two perturbed displacement vectors are introduced:
Here, is the eight-component unit vector associated with degree of freedom : its th component is one and all other components are zero. Column of the element tangent matrix is approximated by:
For example, for :
The MATLAB variable corresponding to is dd.
03
Element internal-force reevaluation
For each or perturbation, the element internal nodal force vector is recomputed.
The rot routine is called again for every perturbation. It computes the rigid-body rotation and the corotated nodal-displacement vector:
where contains the nodal coordinates of the initial element configuration and contains the current nodal displacements.
Consequently, each perturbed state includes the updated rigid-body rotation, corotational configuration, corotated nodal displacements, Jacobian matrix, strain-displacement matrix, strains, stresses, current thickness, and internal nodal force vector. The calculation follows the sequence:
04
MATLAB implementation
The calculation of the element internal nodal force vector is placed in the separate subprogram fel_el. Therefore, the same sequence is used for the actual state and for the and states without repeating the code.
No analytical differentiation subprogram such as deltaB, used in Section 16.2, is required.
In the following excerpt, nod contains the four node numbers of the current element; u and v are the global nodal-displacement vectors in the - and -directions; and inod is the local node position associated with the perturbed degree of freedom:
The relevant part of stiff.m is shown below.
% Internal nodal force vector in the current configuration:
istore=1; % store strains and stresses
fel_el
fel=felt;
% Central numerical differentiation of the element internal force:
istore=0; % do not store perturbed strains and stresses
for ipert=1:8
inod=ceil(ipert/2);
% +dd perturbation:
if rem(ipert,2)==1
u(nod(inod))=u(nod(inod))+dd;
else
v(nod(inod))=v(nod(inod))+dd;
end
fel_el
felp=felt;
% Change from +dd to -dd:
if rem(ipert,2)==1
u(nod(inod))=u(nod(inod))-2*dd;
else
v(nod(inod))=v(nod(inod))-2*dd;
end
fel_el
felm=felt;
% Restore the unperturbed displacement:
if rem(ipert,2)==1
u(nod(inod))=u(nod(inod))+dd;
else
v(nod(inod))=v(nod(inod))+dd;
end
% Column ipert of the tangent stiffness matrix:
kel(:,ipert)=(felp-felm)/(2*dd);
endThe relevant part of fel_el.m is shown below.
strn=B*sel;
sg=DHooke*strn;
th1=(1-nu/(1-nu)*(strn(1)+strn(2)))*th;
felt=felt+th1*(B'*sg)*detJ;05
Sensitivity to the perturbation δ
Example 1 of Section 16.2 was used to investigate the influence of the numerical differentiation perturbation .
The computations used:
| CPU time (s) | Total iterations | Mean | |
|---|---|---|---|
| 44.78 | 67 | ||
| 44.396 | 67 | ||
| 45.55 | 67 | ||
| 46.53 | 67 | ||
| 44.866 | 67 | ||
| 43.774 | 67 | ||
| 58.13 | 69 |
Convergence is practically unchanged for through . At , a slight deterioration appears. For , the iterative process no longer converges. The value adopted in the downloadable MATLAB program is:
06
Symmetry criterion
The relative asymmetry of an element tangent matrix is measured by:
Here, the Frobenius norm of a matrix is:
The symmetry indicator therefore measures the relative magnitude of the antisymmetric part of . A value close to zero indicates an approximately symmetric matrix.
For Section 16.3, the mean value is:
No artificial symmetrization is used. Artificial symmetrization was tested. It made convergence somewhat slower, and for the symmetrized tangent no longer converged.
07
Comparison with Sections 16.1 and 16.2
All three formulations use the same element internal nodal force vector and therefore give the same final equilibrium results. The final stresses, displacements, and displacement derivatives are identical in Sections 16.1, 16.2, and 16.3.
For Example 1, the post-processed nodal axial stresses are:
| Section | Tangent | Total iterations | CPU time (s) | Mean |
|---|---|---|---|---|
| 16.1 | Simple approximation; | 384 | ≈ 40.18 | |
| 16.2 | Improved analytical approximation | 68 | ≈ 14 | |
| 16.3 | Central numerical differentiation, | 67 | ≈ 44.4 |
In Section 16.1, symmetry follows directly from the form:
because is symmetric. The measured asymmetry is therefore essentially roundoff error. Section 16.2 is the fastest of the three implementations. Section 16.3 gives essentially the same convergence rate without analytical differentiation of the tangent matrix.
08
Main conclusion and MATLAB package
The identical final results are expected because the same is used in all three formulations.
The MATLAB package containing the central numerical-difference tangent and the two examples can be downloaded below.