return more than one tangent
This commit is contained in:
parent
15e2d4a7cd
commit
fc3ce54667
|
@ -19,8 +19,8 @@ module constitutive
|
||||||
constitutive_init, &
|
constitutive_init, &
|
||||||
constitutive_homogenizedC, &
|
constitutive_homogenizedC, &
|
||||||
constitutive_microstructure, &
|
constitutive_microstructure, &
|
||||||
constitutive_LpAndItsTangent, &
|
constitutive_LpAndItsTangents, &
|
||||||
constitutive_LiAndItsTangent, &
|
constitutive_LiAndItsTangents, &
|
||||||
constitutive_initialFi, &
|
constitutive_initialFi, &
|
||||||
constitutive_SandItsTangents, &
|
constitutive_SandItsTangents, &
|
||||||
constitutive_collectDotState, &
|
constitutive_collectDotState, &
|
||||||
|
@ -430,7 +430,7 @@ end subroutine constitutive_microstructure
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief contains the constitutive equation for calculating the velocity gradient
|
!> @brief contains the constitutive equation for calculating the velocity gradient
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine constitutive_LpAndItsTangent(Lp, dLp_dMstar, dLp_dFi, S6, Fi, ipc, ip, el)
|
subroutine constitutive_LpAndItsTangents(Lp, dLp_dMstar, dLp_dFi, S6, Fi, ipc, ip, el)
|
||||||
use prec, only: &
|
use prec, only: &
|
||||||
pReal
|
pReal
|
||||||
use math, only: &
|
use math, only: &
|
||||||
|
@ -536,13 +536,13 @@ subroutine constitutive_LpAndItsTangent(Lp, dLp_dMstar, dLp_dFi, S6, Fi, ipc, ip
|
||||||
dLp_dMstar(i,j,1:3,1:3) = math_mul33x33(math_mul33x33(transpose(Fi),Fi),dLp_dMstar(i,j,1:3,1:3))
|
dLp_dMstar(i,j,1:3,1:3) = math_mul33x33(math_mul33x33(transpose(Fi),Fi),dLp_dMstar(i,j,1:3,1:3))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
end subroutine constitutive_LpAndItsTangent
|
end subroutine constitutive_LpAndItsTangents
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief contains the constitutive equation for calculating the velocity gradient
|
!> @brief contains the constitutive equation for calculating the velocity gradient
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine constitutive_LiAndItsTangent(Li, dLi_dS, dLi_dFi, S6, Fi, ipc, ip, el)
|
subroutine constitutive_LiAndItsTangents(Li, dLi_dS, dLi_dFi, S6, Fi, ipc, ip, el)
|
||||||
use prec, only: &
|
use prec, only: &
|
||||||
pReal
|
pReal
|
||||||
use math, only: &
|
use math, only: &
|
||||||
|
@ -647,7 +647,7 @@ subroutine constitutive_LiAndItsTangent(Li, dLi_dS, dLi_dFi, S6, Fi, ipc, ip, el
|
||||||
dLi_dFi (1:3,i,1:3,j) = dLi_dFi(1:3,i,1:3,j) + math_I3*temp_33(j,i) + Li*FiInv(j,i)
|
dLi_dFi (1:3,i,1:3,j) = dLi_dFi(1:3,i,1:3,j) + math_I3*temp_33(j,i) + Li*FiInv(j,i)
|
||||||
end forall
|
end forall
|
||||||
|
|
||||||
end subroutine constitutive_LiAndItsTangent
|
end subroutine constitutive_LiAndItsTangents
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -541,8 +541,8 @@ subroutine crystallite_stressAndItsTangent(updateJaco)
|
||||||
phaseAt, phasememberAt
|
phaseAt, phasememberAt
|
||||||
use constitutive, only: &
|
use constitutive, only: &
|
||||||
constitutive_SandItsTangents, &
|
constitutive_SandItsTangents, &
|
||||||
constitutive_LpAndItsTangent, &
|
constitutive_LpAndItsTangents, &
|
||||||
constitutive_LiAndItsTangent
|
constitutive_LiAndItsTangents
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
logical, intent(in) :: &
|
logical, intent(in) :: &
|
||||||
|
@ -1102,7 +1102,7 @@ subroutine crystallite_stressAndItsTangent(updateJaco)
|
||||||
call constitutive_SandItsTangents(temp_33,dSdFe,dSdFi,crystallite_Fe(1:3,1:3,c,i,e), &
|
call constitutive_SandItsTangents(temp_33,dSdFe,dSdFi,crystallite_Fe(1:3,1:3,c,i,e), &
|
||||||
crystallite_Fi(1:3,1:3,c,i,e),c,i,e) ! call constitutive law to calculate elastic stress tangent
|
crystallite_Fi(1:3,1:3,c,i,e),c,i,e) ! call constitutive law to calculate elastic stress tangent
|
||||||
|
|
||||||
call constitutive_LiAndItsTangent(temp_33,dLidS,dLidFi,crystallite_Tstar_v(1:6,c,i,e), &
|
call constitutive_LiAndItsTangents(temp_33,dLidS,dLidFi,crystallite_Tstar_v(1:6,c,i,e), &
|
||||||
crystallite_Fi(1:3,1:3,c,i,e), &
|
crystallite_Fi(1:3,1:3,c,i,e), &
|
||||||
c,i,e) ! call constitutive law to calculate Li tangent in lattice configuration
|
c,i,e) ! call constitutive law to calculate Li tangent in lattice configuration
|
||||||
if (sum(abs(dLidS)) < tol_math_check) then
|
if (sum(abs(dLidS)) < tol_math_check) then
|
||||||
|
@ -1129,7 +1129,7 @@ subroutine crystallite_stressAndItsTangent(updateJaco)
|
||||||
dLidS = math_mul3333xx3333(dLidFi,dFidS) + dLidS
|
dLidS = math_mul3333xx3333(dLidFi,dFidS) + dLidS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call constitutive_LpAndItsTangent(temp_33,dLpdS,dLpdFi,crystallite_Tstar_v(1:6,c,i,e), &
|
call constitutive_LpAndItsTangents(temp_33,dLpdS,dLpdFi,crystallite_Tstar_v(1:6,c,i,e), &
|
||||||
crystallite_Fi(1:3,1:3,c,i,e),c,i,e) ! call constitutive law to calculate Lp tangent in lattice configuration
|
crystallite_Fi(1:3,1:3,c,i,e),c,i,e) ! call constitutive law to calculate Lp tangent in lattice configuration
|
||||||
dLpdS = math_mul3333xx3333(dLpdFi,dFidS) + dLpdS
|
dLpdS = math_mul3333xx3333(dLpdFi,dFidS) + dLpdS
|
||||||
|
|
||||||
|
@ -3176,8 +3176,8 @@ logical function crystallite_integrateStress(&
|
||||||
debug_levelExtensive, &
|
debug_levelExtensive, &
|
||||||
debug_levelSelective
|
debug_levelSelective
|
||||||
|
|
||||||
use constitutive, only: constitutive_LpAndItsTangent, &
|
use constitutive, only: constitutive_LpAndItsTangents, &
|
||||||
constitutive_LiAndItsTangent, &
|
constitutive_LiAndItsTangents, &
|
||||||
constitutive_SandItsTangents
|
constitutive_SandItsTangents
|
||||||
use math, only: math_mul33x33, &
|
use math, only: math_mul33x33, &
|
||||||
math_mul33xx33, &
|
math_mul33xx33, &
|
||||||
|
@ -3386,7 +3386,7 @@ logical function crystallite_integrateStress(&
|
||||||
write(6,'(a,/,6(e20.10,1x))') '<< CRYST >> Tstar', Tstar_v
|
write(6,'(a,/,6(e20.10,1x))') '<< CRYST >> Tstar', Tstar_v
|
||||||
endif
|
endif
|
||||||
#endif
|
#endif
|
||||||
call constitutive_LpAndItsTangent(Lp_constitutive, dLp_dT3333, dLp_dFi3333, &
|
call constitutive_LpAndItsTangents(Lp_constitutive, dLp_dT3333, dLp_dFi3333, &
|
||||||
Tstar_v, Fi_new, ipc, ip, el)
|
Tstar_v, Fi_new, ipc, ip, el)
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
@ -3488,7 +3488,7 @@ logical function crystallite_integrateStress(&
|
||||||
|
|
||||||
!* calculate intermediate velocity gradient and its tangent from constitutive law
|
!* calculate intermediate velocity gradient and its tangent from constitutive law
|
||||||
|
|
||||||
call constitutive_LiAndItsTangent(Li_constitutive, dLi_dT3333, dLi_dFi3333, &
|
call constitutive_LiAndItsTangents(Li_constitutive, dLi_dT3333, dLi_dFi3333, &
|
||||||
Tstar_v, Fi_new, ipc, ip, el)
|
Tstar_v, Fi_new, ipc, ip, el)
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
|
Loading…
Reference in New Issue