corrected calculation of FEM jacobi
adjusted marc return of FEM jacobi
This commit is contained in:
parent
40e3ec2349
commit
4b69c1d738
|
@ -410,8 +410,8 @@
|
||||||
real(pReal) state_new(constitutive_Nstatevars(iori, CPFEM_in, cp_en)), Tstar_v(6)
|
real(pReal) state_new(constitutive_Nstatevars(iori, CPFEM_in, cp_en)), Tstar_v(6)
|
||||||
! *** Local variables ***
|
! *** Local variables ***
|
||||||
integer(pInt) ic
|
integer(pInt) ic
|
||||||
real(pReal) Fe(3,3), R(3,3), U(3,3), dev(6), dF(3,3), Fg2(3,3), sgm2(6)
|
real(pReal) Fe(3,3), R(3,3), U(3,3), dev(6), dF(3,3), Fg_pert(3,3), sgm2(6)
|
||||||
real(pReal) state2(constitutive_Nstatevars(iori, CPFEM_in, cp_en)), Fp2(3,3), cs1(6)
|
real(pReal) state2(constitutive_Nstatevars(iori, CPFEM_in, cp_en)), Fp2(3,3), cs1(6),E_pert(3,3)
|
||||||
! *** Numerical parameters ***
|
! *** Numerical parameters ***
|
||||||
real(pReal), parameter :: pert_ct=1.0e-5_pReal
|
real(pReal), parameter :: pert_ct=1.0e-5_pReal
|
||||||
! *** Error treatment ***
|
! *** Error treatment ***
|
||||||
|
@ -441,21 +441,31 @@
|
||||||
!
|
!
|
||||||
! *** Calculation of the consistent tangent with perturbation ***
|
! *** Calculation of the consistent tangent with perturbation ***
|
||||||
! *** Perturbation on the component of Fg ***
|
! *** Perturbation on the component of Fg ***
|
||||||
do ic=1,6
|
do ic=1,6
|
||||||
!
|
!
|
||||||
! *** Method of small perturbation
|
! *** Method of small perturbation
|
||||||
dev=0
|
! Missing direct matrix perturbation
|
||||||
if(ic<=3) dev(ic) = pert_ct
|
E_pert=0
|
||||||
if(ic>3) dev(ic) = pert_ct/2
|
if(ic<=3) then
|
||||||
dF=matmul(math_Mandel6to33(dev),Fg_old)
|
E_pert(ic,ic) = pert_ct
|
||||||
Fg2=Fg_new+dF
|
else if(ic==4) then
|
||||||
|
E_pert(1,2) = pert_ct/2
|
||||||
|
E_pert(2,1) = pert_ct/2
|
||||||
|
else if(ic==5) then
|
||||||
|
E_pert(2,3) = pert_ct/2
|
||||||
|
E_pert(3,2) = pert_ct/2
|
||||||
|
else if(ic==6) then
|
||||||
|
E_pert(1,3) = pert_ct/2
|
||||||
|
E_pert(3,1) = pert_ct/2
|
||||||
|
end if
|
||||||
|
Fg_pert=Fg_new+matmul(E_pert, Fg_old)
|
||||||
sgm2=Tstar_v
|
sgm2=Tstar_v
|
||||||
state2=state_new
|
state2=state_new
|
||||||
|
|
||||||
! *** Calculation of the perturbated Cauchy stress ***
|
! *** Calculation of the perturbated Cauchy stress ***
|
||||||
call NEWTON_RAPHSON(dt,cp_en,CPFEM_in,iori,Fg_old,Fg2,Fp_old,Fp2,Fe,state_old,state2,sgm2,cs1,iconv,ising)
|
call NEWTON_RAPHSON(dt,cp_en,CPFEM_in,iori,Fg_old,Fg_pert,Fp_old,Fp2,Fe,state_old,state2,sgm2,cs1,iconv,ising)
|
||||||
!
|
!
|
||||||
! *** Consistent tangent ***
|
! *** Consistent tangent *** as cs is Mandel dcs_de(:,4:6) is too large by sqrt(2)
|
||||||
dcs_de(:,ic)=(cs1-cs)/pert_ct
|
dcs_de(:,ic)=(cs1-cs)/pert_ct
|
||||||
enddo
|
enddo
|
||||||
!
|
!
|
||||||
|
@ -588,7 +598,7 @@
|
||||||
R2=state_new-state_old-dstate
|
R2=state_new-state_old-dstate
|
||||||
R2s=0.0_pReal
|
R2s=0.0_pReal
|
||||||
forall(i=1:constitutive_Nstatevars(iori, CPFEM_in, cp_en), state_new(i)/=0.0_pReal) R2s(i)=R2(i)/state_new(i)
|
forall(i=1:constitutive_Nstatevars(iori, CPFEM_in, cp_en), state_new(i)/=0.0_pReal) R2s(i)=R2(i)/state_new(i)
|
||||||
if (maxval(dabs(R2s)) < tol_outer) goto 200
|
if (maxval(abs(R2s)) < tol_outer) goto 200
|
||||||
state_new=state_old+dstate
|
state_new=state_old+dstate
|
||||||
enddo
|
enddo
|
||||||
iconv=2
|
iconv=2
|
||||||
|
|
|
@ -177,7 +177,6 @@
|
||||||
! Marc: 11, 22, 33, 12, 23, 13
|
! Marc: 11, 22, 33, 12, 23, 13
|
||||||
s(1:ngens)=invnrmMandel(1:ngens)*CPFEM_stress_all(1:ngens, nn, cp_en)
|
s(1:ngens)=invnrmMandel(1:ngens)*CPFEM_stress_all(1:ngens, nn, cp_en)
|
||||||
d(1:ngens,1:ngens)=CPFEM_jaco_old(1:ngens,1:ngens, nn, cp_en)
|
d(1:ngens,1:ngens)=CPFEM_jaco_old(1:ngens,1:ngens, nn, cp_en)
|
||||||
forall(i=1:ngens) d(1:ngens,i)=d(1:ngens,i)*nrmMandel(1:ngens)
|
|
||||||
forall(i=1:ngens) d(i,1:ngens)=d(i,1:ngens)*invnrmMandel(1:ngens)
|
forall(i=1:ngens) d(i,1:ngens)=d(i,1:ngens)*invnrmMandel(1:ngens)
|
||||||
|
|
||||||
!d(1:ngens,1:ngens)=transpose(d(1:ngens,1:ngens))
|
!d(1:ngens,1:ngens)=transpose(d(1:ngens,1:ngens))
|
||||||
|
|
Loading…
Reference in New Issue