FEAP User Forum
FEAP => Programming => Topic started by: halleluja on November 11, 2020, 07:40:02 AM
-
Dear all,
i have implemented the Box 9.1 and 9.2, the page of 319 and 321, in the book of Computational Inelasticity by J.C. Simo. The elastic part of this model is a modified form to the neo-Hookean model,which is also provided in manual84, the page 101.
In my implementation (elmt42.f) i consider only the elastic response now , i.e. in [3. Check for plastic loading] of Box 9.1 i replace $f_{n+1}^{trial}<=0$
with 1<=2
, so the model is just an elastic model, which should be the same one as provided in manual84, the page 101.
For test cases i want to test 2D problems, but the model in Box 9.1 is 3D. So in elmt42.f i transform the tensors for 2D problems to 3D as c In the following we use plane strain, but still keep 3D at the beginning
c relative deformation gradient in 3D space
Frel(1,1)=defrel(1,1)
Frel(1,2)=defrel(1,2)
Frel(1,3)=0.d0
Frel(2,1)=defrel(2,1)
Frel(2,2)=defrel(2,2)
Frel(2,3)=0.d0
Frel(3,1)=0.d0
Frel(3,2)=0.d0
Frel(3,3)=1.d0
c deformation gradient in 3D space
Fgrad(1,1)=defgrad(1,1)
Fgrad(1,2)=defgrad(1,2)
Fgrad(1,3)=0.d0
Fgrad(2,1)=defgrad(2,1)
Fgrad(2,2)=defgrad(2,2)
Fgrad(2,3)=0.d0
Fgrad(3,1)=0.d0
Fgrad(3,2)=0.d0
Fgrad(3,3)=1.d0
. And before calculating s and p i transform the tensors for 3D problems back to 2D as c Kirchhoff-Stress -> Cauchy-Stress
c transform stress und cc into 2D
s2d(1)=(1.d0/J3D)*sig(1)
s2d(2)=(1.d0/J3D)*sig(2)
s2d(3)=(1.d0/J3D)*sig(4)
c2d(1,1)=cc(1,1)*(1.d0/J3D)
c2d(1,2)=cc(1,2)*(1.d0/J3D)
c2d(1,3)=cc(1,4)*(1.d0/J3D)
c2d(2,1)=cc(2,1)*(1.d0/J3D)
c2d(2,2)=cc(2,2)*(1.d0/J3D)
c2d(2,3)=cc(2,4)*(1.d0/J3D)
c2d(3,1)=cc(4,1)*(1.d0/J3D)
c2d(3,2)=cc(4,2)*(1.d0/J3D)
c2d(3,3)=cc(4,4)*(1.d0/J3D)
. But as i plot $\sigma_{xx}$ in plot.png, you see there is some small difference. So my question is if my above trick for implementation for 2D problems is correct?
-
The elasto-plastic models in feap are not the ones in the boxes you cite. Currently, the best model is the one by Papadopoulos-Lu CMAME v190 pp4889ff
The other model is a principal stretch model by Auricchio-Taylor (int j. plast v 15 pp 1359ff)
In general we never reduce the constitution from 3 to 2 dimensions. Instead we program the elements to use the appropriate components, like 1,2, 4 for plane strain. So models are always coded for fully 3-d. The only problem case is plane stress for which we currently do a local solution to yield sigma_i3 to zero for i=1,2,3
Thus, since models may be different it is difficult to know if it is an error in reduction or merely a difference in the models.
-
For finite plasticity you should not use the model in Simo and Hughes; it is outdated.
For anisotropic plasticity, use Papadopolous and Lu as Prof. Taylor mentions. For isotropy, in addition to the Auricchio and Taylor paper, you can look at the Simo article in the Handbook of Numerical Analysis (ed. Ciarlet) https://doi.org/10.1016/S1570-8659(98)80009-4 (https://doi.org/10.1016/S1570-8659(98)80009-4)
Notwithstanding, if you want to debug what is going wrong with the elastic part, which should work, you should use a test problem where you know the exact answer. That will help track down the discrepancy.