corrected mistake in Lp tangent calculation (Christoph, pls check)
This commit is contained in:
parent
b19b8081a6
commit
f84d2abedc
|
@ -11,7 +11,7 @@
|
|||
! constitution j2
|
||||
! (output) flowstress
|
||||
! (output) strainrate
|
||||
! c11 110.9e9 # (3 C11 + 2 C12 + 2 C44) / 5
|
||||
! c11 110.9e9 # (3 C11 + 2 C12 + 2 C44) / 5 ... with C44 = C11-C12 !!
|
||||
! c12 58.34e9 # (1 C11 + 4 C12 - 1 C44) / 5
|
||||
! taylorfactor 3
|
||||
! s0 31e6
|
||||
|
@ -281,30 +281,33 @@ subroutine constitutive_j2_LpAndItsTangent(Lp,dLp_dTstar,Tstar_v,Temperature,sta
|
|||
real(pReal), dimension(3,3) :: Lp
|
||||
real(pReal), dimension(3,3,3,3) :: dLp_dTstar3333
|
||||
real(pReal), dimension(9,9) :: dLp_dTstar
|
||||
real(pReal) norm_Tstar
|
||||
real(pReal) factor
|
||||
real(pReal) norm_Tstar, squarenorm_Tstar, factor
|
||||
|
||||
matID = phase_constitutionInstance(material_phase(ipc,ip,el))
|
||||
|
||||
Tstar33 = math_Mandel6to33(Tstar_v)
|
||||
norm_Tstar = dsqrt(math_mul6x6(Tstar_v,Tstar_v))
|
||||
|
||||
squarenorm_Tstar = math_mul6x6(Tstar_v,Tstar_v)
|
||||
norm_Tstar = dsqrt(Tstar)
|
||||
|
||||
!* Calculation of Lp
|
||||
Lp = Tstar33/norm_Tstar*constitutive_j2_gdot0(matID)/constitutive_j2_fTaylor(matID)* &
|
||||
(dsqrt(1.5_pReal)/constitutive_j2_fTaylor(matID)*norm_Tstar/state(ipc,ip,el)%p(1))**constitutive_j2_n(matID)
|
||||
|
||||
!* Calculation of the tangent of Lp
|
||||
factor = constitutive_j2_gdot0(matID)/constitutive_j2_fTaylor(matID)* &
|
||||
(dsqrt(1.5_pReal)/ constitutive_j2_fTaylor(matID)/state(ipc,ip,el)%p(1))**constitutive_j2_n(matID) * &
|
||||
norm_Tstar**(constitutive_j2_n(matID)-1.0_pReal)
|
||||
|
||||
dLp_dTstar3333 = 0.0_pReal
|
||||
dLp_dTstar = 0.0_pReal
|
||||
factor = constitutive_j2_gdot0(matID)/constitutive_j2_fTaylor(matID)* &
|
||||
(dsqrt(1.5_pReal)/ constitutive_j2_fTaylor(matID)/state(ipc,ip,el)%p(1))**constitutive_j2_n(matID) * &
|
||||
* norm_Tstar**(constitutive_j2_n(matID)-1.0_pReal)
|
||||
forall (k=1:3,l=1:3,m=1:3,n=1:3) &
|
||||
dLp_dTstar3333(k,l,m,n) = factor * (constitutive_j2_n(matID)-1.0_pReal)/(norm_Tstar**2.0_pReal) * Tstar33(k,l)*Tstar33(m,n)
|
||||
dLp_dTstar3333(k,l,m,n) = Tstar33(k,l)*Tstar33(m,n) * (constitutive_j2_n(matID)-1.0_pReal)/squarenorm_Tstar
|
||||
forall (k=1:3,l=1:3) &
|
||||
dLp_dTstar3333(k,l,k,l) = dLp_dTstar3333(k,l,k,l) + factor
|
||||
dLp_dTstar = math_Plain3333to99(dLp_dTstar3333)
|
||||
dLp_dTstar3333(k,k,l,l) = dLp_dTstar3333(k,k,l,l) + 1.0_pReal
|
||||
dLp_dTstar = math_Plain3333to99(factor * dLp_dTstar3333)
|
||||
|
||||
return
|
||||
|
||||
end subroutine
|
||||
|
||||
|
||||
|
@ -340,9 +343,9 @@ function constitutive_j2_dotState(Tstar_v,Temperature,state,ipc,ip,el)
|
|||
norm_Tstar = dsqrt(math_mul6x6(Tstar_v,Tstar_v))
|
||||
constitutive_j2_dotState = constitutive_j2_gdot0(matID)/constitutive_j2_fTaylor(matID)* &
|
||||
(dsqrt(1.5_pReal)/constitutive_j2_fTaylor(matID)*norm_Tstar/state(ipc,ip,el)%p(1))** &
|
||||
constitutive_j2_n(matID) * &
|
||||
constitutive_j2_h0(matID)*(1.0_pReal-state(ipc,ip,el)%p(1)/constitutive_j2_s_sat(matID))** &
|
||||
constitutive_j2_w0(matID)
|
||||
constitutive_j2_n(matID) * &
|
||||
constitutive_j2_h0(matID)*(1.0_pReal-state(ipc,ip,el)%p(1)/constitutive_j2_s_sat(matID))** &
|
||||
constitutive_j2_w0(matID)
|
||||
|
||||
return
|
||||
|
||||
|
@ -387,9 +390,9 @@ pure function constitutive_j2_postResults(Tstar_v,Temperature,dt,state,ipc,ip,el
|
|||
constitutive_j2_postResults(c+1) = state(ipc,ip,el)%p(1)
|
||||
c = c + 1
|
||||
case ('strainrate')
|
||||
constitutive_j2_postResults(c+1) = constitutive_j2_gdot0(matID)/constitutive_j2_fTaylor(matID)* &
|
||||
constitutive_j2_postResults(c+1) = constitutive_j2_gdot0(matID)/constitutive_j2_fTaylor(matID)* &
|
||||
(dsqrt(1.5_pReal)/constitutive_j2_fTaylor(matID)*norm_Tstar/state(ipc,ip,el)%p(1))** &
|
||||
constitutive_j2_n(matID)
|
||||
constitutive_j2_n(matID)
|
||||
c = c + 1
|
||||
end select
|
||||
enddo
|
||||
|
|
Loading…
Reference in New Issue