sitting together and finding open issues.. ;-)
This commit is contained in:
parent
86d7f222ae
commit
5752fe2ca7
|
@ -504,13 +504,12 @@
|
||||||
integer(pInt), parameter :: ninner = 2000_pInt
|
integer(pInt), parameter :: ninner = 2000_pInt
|
||||||
real(pReal), parameter :: tol_inner = 1.0e-3_pReal
|
real(pReal), parameter :: tol_inner = 1.0e-3_pReal
|
||||||
real(pReal), parameter :: eta = 13.7_pReal
|
real(pReal), parameter :: eta = 13.7_pReal
|
||||||
integer(pInt), parameter :: numerical = 0_pInt
|
|
||||||
real(pReal), parameter :: pert_nr = 1.0e-8_pReal
|
|
||||||
crite=eta*constitutive_s0_slip/constitutive_n_slip !ÄÄÄ
|
crite=eta*constitutive_s0_slip/constitutive_n_slip !ÄÄÄ
|
||||||
!
|
!
|
||||||
! *** Tolerances ***
|
! *** Tolerances ***
|
||||||
tol_in = tol_inner*s0_slip
|
tol_in = tol_inner*s0_slip !ÄÄÄ
|
||||||
tol_out = tol_outer*s0_slip
|
tol_out = tol_outer*s0_slip !ÄÄÄ
|
||||||
!
|
!
|
||||||
! *** Error treatment ***
|
! *** Error treatment ***
|
||||||
iconv = 0
|
iconv = 0
|
||||||
|
@ -546,30 +545,26 @@
|
||||||
!
|
!
|
||||||
! *** Jacobi Calculation ***
|
! *** Jacobi Calculation ***
|
||||||
help=matmul(A, I3tLp)
|
help=matmul(A, I3tLp)
|
||||||
|
! MISSING 1..6 outer loop, inner sum required
|
||||||
do i=1,3
|
do i=1,3
|
||||||
do j=1,3
|
do j=1,3
|
||||||
do k=1,3
|
do k=1,6
|
||||||
! dol=1,3
|
|
||||||
help1(k)=dLp(j,i,k)*help(i,j)
|
help1(k)=dLp(j,i,k)*help(i,j)
|
||||||
! enddo
|
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
! help=help1+transpose(help1)
|
! help=help1+transpose(help1)
|
||||||
Jacobi= matmul(C66, help1) + mat_identity(6)
|
Jacobi= matmul(C66, help1) + math_identity(6)
|
||||||
call math_invert6x6(Jacobi, invJacobi, dummy, err) !ÄÄÄ
|
call math_invert6x6(Jacobi, invJacobi, dummy, err) !ÄÄÄ
|
||||||
if (err==1_pInt) then
|
if (err==1_pInt) then
|
||||||
do i=1,6
|
forall (i=1:6) Jacobi(i,i)=1.05d0*maxval(Jacobi(i,:)) ! regularization
|
||||||
Jacobi(i,i)=1.05d0*maxval(Jacobi(i,:))
|
|
||||||
enddo
|
|
||||||
invJacobi=Jacobi
|
|
||||||
call math_invert6x6(Jacobi, invJacobi, dummy, err)
|
call math_invert6x6(Jacobi, invJacobi, dummy, err)
|
||||||
if (err==1_pInt) then
|
if (err==1_pInt) then ! sorry, can't help here!!
|
||||||
ising=1
|
ising=1
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
dTstar_v=matmul(invJacobi,R1)
|
dTstar_v=matmul(invJacobi,R1) ! correction to Tstar
|
||||||
|
|
||||||
! *** Correction (see Kalidindi) ***
|
! *** Correction (see Kalidindi) ***
|
||||||
do i=1,6
|
do i=1,6
|
||||||
|
@ -584,26 +579,19 @@
|
||||||
return
|
return
|
||||||
! *** End of the first level of iterative procedure ***
|
! *** End of the first level of iterative procedure ***
|
||||||
|
|
||||||
100 continue
|
100 dstate=dt*constitutive_dotState(Tstar_v, iori, CPFEM_in, cp_en)
|
||||||
|
|
||||||
! call hardening(tauc_slip_new,gdot_slip,dtauc_slip)
|
|
||||||
dstate=constitutive_dotState(Tstar_v, iori, CPFEM_in, cp_en)
|
|
||||||
! *** Arrays of residuals ***
|
! *** Arrays of residuals ***
|
||||||
R2=state_new-state_old-dt*dstate
|
R2=state_new-state_old-dstate
|
||||||
norm2=maxval(abs(R2))
|
norm2=maxval(abs(R2))
|
||||||
if (norm2<tol_out) goto 200
|
if (norm2<tol_out) goto 200
|
||||||
state_new=state_old+dt*dstate
|
state_new=state_old+dstate
|
||||||
enddo
|
enddo
|
||||||
iconv=2
|
iconv=2
|
||||||
return
|
return
|
||||||
! *** End of the second level of iterative procedure ***
|
! *** End of the second level of iterative procedure ***
|
||||||
|
|
||||||
200 continue
|
|
||||||
!
|
|
||||||
! call plastic_vel_grad(dt,tau_slip,tauc_slip_new,Lp)
|
|
||||||
!
|
|
||||||
! *** Calculation of Fp(t+dt) (see Kalidindi) ***
|
! *** Calculation of Fp(t+dt) (see Kalidindi) ***
|
||||||
invFp_new=matmul(Fp_old, I3tLp)
|
200 invFp_new=matmul(Fp_old, I3tLp)
|
||||||
call math_invert3x3(invFp_new, Fp_new, det, err) !ÄÄÄ
|
call math_invert3x3(invFp_new, Fp_new, det, err) !ÄÄÄ
|
||||||
if (err==1_pInt) then
|
if (err==1_pInt) then
|
||||||
ising=1
|
ising=1
|
||||||
|
@ -619,7 +607,8 @@
|
||||||
call math_conv33to6(Estar,Estar_v)
|
call math_conv33to6(Estar,Estar_v)
|
||||||
!
|
!
|
||||||
! *** Calculation of the Cauchy stress ***
|
! *** Calculation of the Cauchy stress ***
|
||||||
call CPFEM_cauchy_stress(Estar_v,Fe,cs)
|
! QUESTION seems to need Tstar, not Estar..??
|
||||||
|
cs = CPFEM_cauchy_stress(Estar_v,Fe)
|
||||||
!
|
!
|
||||||
return
|
return
|
||||||
end subroutine
|
end subroutine
|
||||||
|
|
Loading…
Reference in New Issue