Author Topic: Return-mapping algorithm for J2 flow theory  (Read 3574 times)

halleluja

  • Full Member
  • ***
  • Posts: 80
Return-mapping algorithm for J2 flow theory
« 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
Code: [Select]
$f_{n+1}^{trial}<=0$ with
Code: [Select]
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
Code: [Select]
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
Code: [Select]
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?


Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2649
Re: Return-mapping algorithm for J2 flow theory
« Reply #1 on: November 11, 2020, 09:45:47 AM »
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.

Prof. S. Govindjee

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 1164
Re: Return-mapping algorithm for J2 flow theory
« Reply #2 on: November 11, 2020, 01:35:50 PM »
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

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.