Added stress-order terms to analytic stiffness
This commit is contained in:
parent
4b7a69c8e7
commit
040e244993
|
@ -579,10 +579,10 @@ real(pReal), dimension(9,9) :: dLp_dT_constitutive, &
|
||||||
dFedF_old99
|
dFedF_old99
|
||||||
real(pReal), dimension(3):: Eigval
|
real(pReal), dimension(3):: Eigval
|
||||||
real(pReal) :: dt, &
|
real(pReal) :: dt, &
|
||||||
fixedpt_error
|
fixedpt_error, &
|
||||||
integer(pInt) :: AnzNegEW, &
|
|
||||||
fixedpt_iter, &
|
|
||||||
counter
|
counter
|
||||||
|
integer(pInt) :: AnzNegEW, &
|
||||||
|
fixedpt_iter
|
||||||
logical :: error
|
logical :: error
|
||||||
|
|
||||||
! --+>> INITIALIZE TO STARTING CONDITION <<+--
|
! --+>> INITIALIZE TO STARTING CONDITION <<+--
|
||||||
|
@ -996,7 +996,7 @@ if(updateJaco) then
|
||||||
Fpinv_rate = -math_mul33x33(crystallite_subF(1:3,1:3,g,i,e),math_mul33x33(Fp_inv_current,&
|
Fpinv_rate = -math_mul33x33(crystallite_subF(1:3,1:3,g,i,e),math_mul33x33(Fp_inv_current,&
|
||||||
(1.0_pReal-Lp_frac)*crystallite_subLp0(1:3,1:3,g,i,e)+ Lp_frac*crystallite_Lp(1:3,1:3,g,i,e))) ! F * dFp^-1 = F * dFp^-1/dt *dt... dFp may overshoot dF by small ammount as
|
(1.0_pReal-Lp_frac)*crystallite_subLp0(1:3,1:3,g,i,e)+ Lp_frac*crystallite_Lp(1:3,1:3,g,i,e))) ! F * dFp^-1 = F * dFp^-1/dt *dt... dFp may overshoot dF by small ammount as
|
||||||
FDot_temp = crystallite_subF(1:3,1:3,g,i,e) - crystallite_F0(1:3,1:3,g,i,e) ! dF = dFe + dFp is not strictly enforced (can result in small oscillations in dP/dF)
|
FDot_temp = crystallite_subF(1:3,1:3,g,i,e) - crystallite_F0(1:3,1:3,g,i,e) ! dF = dFe + dFp is not strictly enforced (can result in small oscillations in dP/dF)
|
||||||
counter = 0_pInt
|
counter = 0.0_pReal
|
||||||
phi_mat = 0.0_pReal
|
phi_mat = 0.0_pReal
|
||||||
do h=1_pInt,3_pInt; do j=1_pInt,3_pInt
|
do h=1_pInt,3_pInt; do j=1_pInt,3_pInt
|
||||||
if (Eigval(h) == Eigval(j)) then
|
if (Eigval(h) == Eigval(j)) then
|
||||||
|
@ -1005,14 +1005,14 @@ if(updateJaco) then
|
||||||
phi_mat(h,j) = sinh(Eigval(h) - Eigval(j))/(Eigval(h) - Eigval(j))
|
phi_mat(h,j) = sinh(Eigval(h) - Eigval(j))/(Eigval(h) - Eigval(j))
|
||||||
endif
|
endif
|
||||||
if (abs(FDot_temp(h,j)) .lt. relevantStrain) then
|
if (abs(FDot_temp(h,j)) .lt. relevantStrain) then
|
||||||
counter = counter + 1_pInt
|
counter = counter + 1.0_pReal
|
||||||
FDot_temp(h,j) = 0.0_pReal
|
FDot_temp(h,j) = 0.0_pReal
|
||||||
else
|
else
|
||||||
FDot_temp(h,j) = crystallite_dt(g,i,e)/FDot_temp(h,j)
|
FDot_temp(h,j) = crystallite_dt(g,i,e)/FDot_temp(h,j)
|
||||||
endif
|
endif
|
||||||
enddo; enddo
|
enddo; enddo
|
||||||
if (counter .lt. 9_pInt) then
|
if (counter .lt. 9.0_pReal) then
|
||||||
FDot_temp = FDot_temp/(9_pInt - counter)
|
FDot_temp = FDot_temp/(9.0_pReal - counter)
|
||||||
endif
|
endif
|
||||||
Tensor1 = 0.0_pReal
|
Tensor1 = 0.0_pReal
|
||||||
Tensor2 = 0.0_pReal
|
Tensor2 = 0.0_pReal
|
||||||
|
@ -1054,14 +1054,20 @@ if(updateJaco) then
|
||||||
fixedpt_iter = fixedpt_iter + 1_pInt
|
fixedpt_iter = fixedpt_iter + 1_pInt
|
||||||
enddo
|
enddo
|
||||||
dFedF = math_Plain99to3333(dFedF99)
|
dFedF = math_Plain99to3333(dFedF99)
|
||||||
|
Tensor4 = math_mul3333xx3333(Tensor4,dFedF)
|
||||||
do o=1_pInt,3_pInt; do p=1_pInt,3_pInt
|
do o=1_pInt,3_pInt; do p=1_pInt,3_pInt
|
||||||
dFedF(1:3,1:3,o,p) = math_transpose33(dFedF(1:3,1:3,o,p))
|
dFedF(1:3,1:3,o,p) = math_transpose33(dFedF(1:3,1:3,o,p))
|
||||||
enddo; enddo
|
enddo; enddo
|
||||||
dSdF = math_mul3333xx3333(Tensor3,dFedF) ! dS/dF = dS/dFe * dFe/dF
|
dSdF = math_mul3333xx3333(Tensor3,dFedF) ! dS/dF = dS/dFe * dFe/dF
|
||||||
do o=1_pInt,3_pInt; do p=1_pInt,3_pInt
|
do o=1_pInt,3_pInt; do p=1_pInt,3_pInt
|
||||||
crystallite_dPdF(1:3,1:3,o,p,g,i,e) = math_mul33x33(math_mul33x33(&
|
crystallite_dPdF(1:3,1:3,o,p,g,i,e) = math_mul33x33(math_mul33x33(math_transpose33(&
|
||||||
crystallite_subF(1:3,1:3,g,i,e),Fp_inv_current),&
|
dFedF(1:3,1:3,o,p)),math_Mandel6to33(crystallite_Tstar_v)),math_transpose33(&
|
||||||
math_mul33x33(dSdF(1:3,1:3,o,p),math_transpose33(Fp_inv_current))) ! dP/dF = Fe * dS/dF * Fp^-T
|
Fp_inv_current)) + & ! dP/dF = dFe/dF * S * Fp^-T...
|
||||||
|
math_mul33x33(math_mul33x33(math_mul33x33(crystallite_subF(1:3,1:3,g,i,e),&
|
||||||
|
Fp_inv_current),math_Mandel6to33(crystallite_Tstar_v)),math_mul33x33(math_inv33&
|
||||||
|
(crystallite_subF(1:3,1:3,g,i,e)),Tensor4(1:3,1:3,o,p))+Fpinv_rate*FDot_temp(o,p))& ! + Fe * S * dFp^-T/dF...
|
||||||
|
+ math_mul33x33(math_mul33x33(crystallite_subF(1:3,1:3,g,i,e),Fp_inv_current),&
|
||||||
|
math_mul33x33(dSdF(1:3,1:3,o,p),math_transpose33(Fp_inv_current))) ! + Fe * dS/dF * Fp^-T
|
||||||
enddo; enddo
|
enddo; enddo
|
||||||
enddo; enddo; enddo
|
enddo; enddo; enddo
|
||||||
!$OMP END PARALLEL DO
|
!$OMP END PARALLEL DO
|
||||||
|
|
Loading…
Reference in New Issue