numpy name
This commit is contained in:
parent
9733f4a140
commit
c702a9f1d7
|
@ -453,8 +453,8 @@ pure subroutine kinetics(Mp,T,instance,of, &
|
||||||
associate(prm => param(instance), stt => state(instance), dst => dependentState(instance))
|
associate(prm => param(instance), stt => state(instance), dst => dependentState(instance))
|
||||||
|
|
||||||
do j = 1, prm%sum_N_sl
|
do j = 1, prm%sum_N_sl
|
||||||
tau_pos(j) = math_mul33xx33(Mp,prm%nonSchmid_pos(1:3,1:3,j))
|
tau_pos(j) = math_tensordot(Mp,prm%nonSchmid_pos(1:3,1:3,j))
|
||||||
tau_neg(j) = math_mul33xx33(Mp,prm%nonSchmid_neg(1:3,1:3,j))
|
tau_neg(j) = math_tensordot(Mp,prm%nonSchmid_neg(1:3,1:3,j))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -580,7 +580,7 @@ module subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dMp,Mp,T,instance,of)
|
||||||
do i = 1,6
|
do i = 1,6
|
||||||
P_sb = 0.5_pReal * math_outer(matmul(eigVectors,sb_sComposition(1:3,i)),&
|
P_sb = 0.5_pReal * math_outer(matmul(eigVectors,sb_sComposition(1:3,i)),&
|
||||||
matmul(eigVectors,sb_mComposition(1:3,i)))
|
matmul(eigVectors,sb_mComposition(1:3,i)))
|
||||||
tau = math_mul33xx33(Mp,P_sb)
|
tau = math_tensordot(Mp,P_sb)
|
||||||
|
|
||||||
significantShearBandStress: if (abs(tau) > tol_math_check) then
|
significantShearBandStress: if (abs(tau) > tol_math_check) then
|
||||||
StressRatio_p = (abs(tau)/prm%sbResistance)**prm%p_sb
|
StressRatio_p = (abs(tau)/prm%sbResistance)**prm%p_sb
|
||||||
|
@ -665,7 +665,7 @@ module subroutine plastic_dislotwin_dotState(Mp,T,instance,of)
|
||||||
rho_dip_distance_min = prm%CEdgeDipMinDistance*prm%b_sl
|
rho_dip_distance_min = prm%CEdgeDipMinDistance*prm%b_sl
|
||||||
|
|
||||||
slipState: do i = 1, prm%sum_N_sl
|
slipState: do i = 1, prm%sum_N_sl
|
||||||
tau = math_mul33xx33(Mp,prm%P_sl(1:3,1:3,i))
|
tau = math_tensordot(Mp,prm%P_sl(1:3,1:3,i))
|
||||||
|
|
||||||
significantSlipStress: if (dEq0(tau)) then
|
significantSlipStress: if (dEq0(tau)) then
|
||||||
dot_rho_dip_formation(i) = 0.0_pReal
|
dot_rho_dip_formation(i) = 0.0_pReal
|
||||||
|
@ -906,7 +906,7 @@ pure subroutine kinetics_slip(Mp,T,instance,of, &
|
||||||
associate(prm => param(instance), stt => state(instance), dst => dependentState(instance))
|
associate(prm => param(instance), stt => state(instance), dst => dependentState(instance))
|
||||||
|
|
||||||
do i = 1, prm%sum_N_sl
|
do i = 1, prm%sum_N_sl
|
||||||
tau(i) = math_mul33xx33(Mp,prm%P_sl(1:3,1:3,i))
|
tau(i) = math_tensordot(Mp,prm%P_sl(1:3,1:3,i))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
tau_eff = abs(tau)-dst%tau_pass(:,of)
|
tau_eff = abs(tau)-dst%tau_pass(:,of)
|
||||||
|
@ -977,7 +977,7 @@ pure subroutine kinetics_twin(Mp,T,dot_gamma_sl,instance,of,&
|
||||||
associate(prm => param(instance), stt => state(instance), dst => dependentState(instance))
|
associate(prm => param(instance), stt => state(instance), dst => dependentState(instance))
|
||||||
|
|
||||||
do i = 1, prm%sum_N_tw
|
do i = 1, prm%sum_N_tw
|
||||||
tau(i) = math_mul33xx33(Mp,prm%P_tw(1:3,1:3,i))
|
tau(i) = math_tensordot(Mp,prm%P_tw(1:3,1:3,i))
|
||||||
isFCC: if (prm%fccTwinTransNucleation) then
|
isFCC: if (prm%fccTwinTransNucleation) then
|
||||||
s1=prm%fcc_twinNucleationSlipPair(1,i)
|
s1=prm%fcc_twinNucleationSlipPair(1,i)
|
||||||
s2=prm%fcc_twinNucleationSlipPair(2,i)
|
s2=prm%fcc_twinNucleationSlipPair(2,i)
|
||||||
|
@ -1045,7 +1045,7 @@ pure subroutine kinetics_trans(Mp,T,dot_gamma_sl,instance,of,&
|
||||||
associate(prm => param(instance), stt => state(instance), dst => dependentState(instance))
|
associate(prm => param(instance), stt => state(instance), dst => dependentState(instance))
|
||||||
|
|
||||||
do i = 1, prm%sum_N_tr
|
do i = 1, prm%sum_N_tr
|
||||||
tau(i) = math_mul33xx33(Mp,prm%P_tr(1:3,1:3,i))
|
tau(i) = math_tensordot(Mp,prm%P_tr(1:3,1:3,i))
|
||||||
isFCC: if (prm%fccTwinTransNucleation) then
|
isFCC: if (prm%fccTwinTransNucleation) then
|
||||||
s1=prm%fcc_twinNucleationSlipPair(1,i)
|
s1=prm%fcc_twinNucleationSlipPair(1,i)
|
||||||
s2=prm%fcc_twinNucleationSlipPair(2,i)
|
s2=prm%fcc_twinNucleationSlipPair(2,i)
|
||||||
|
|
|
@ -175,7 +175,7 @@ module subroutine plastic_isotropic_LpAndItsTangent(Lp,dLp_dMp,Mp,instance,of)
|
||||||
associate(prm => param(instance), stt => state(instance))
|
associate(prm => param(instance), stt => state(instance))
|
||||||
|
|
||||||
Mp_dev = math_deviatoric33(Mp)
|
Mp_dev = math_deviatoric33(Mp)
|
||||||
squarenorm_Mp_dev = math_mul33xx33(Mp_dev,Mp_dev)
|
squarenorm_Mp_dev = math_tensordot(Mp_dev,Mp_dev)
|
||||||
norm_Mp_dev = sqrt(squarenorm_Mp_dev)
|
norm_Mp_dev = sqrt(squarenorm_Mp_dev)
|
||||||
|
|
||||||
if (norm_Mp_dev > 0.0_pReal) then
|
if (norm_Mp_dev > 0.0_pReal) then
|
||||||
|
@ -279,9 +279,9 @@ module subroutine plastic_isotropic_dotState(Mp,instance,of)
|
||||||
associate(prm => param(instance), stt => state(instance), dot => dotState(instance))
|
associate(prm => param(instance), stt => state(instance), dot => dotState(instance))
|
||||||
|
|
||||||
if (prm%dilatation) then
|
if (prm%dilatation) then
|
||||||
norm_Mp = sqrt(math_mul33xx33(Mp,Mp))
|
norm_Mp = sqrt(math_tensordot(Mp,Mp))
|
||||||
else
|
else
|
||||||
norm_Mp = sqrt(math_mul33xx33(math_deviatoric33(Mp),math_deviatoric33(Mp)))
|
norm_Mp = sqrt(math_tensordot(math_deviatoric33(Mp),math_deviatoric33(Mp)))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
dot_gamma = prm%dot_gamma_0 * (sqrt(1.5_pReal) * norm_Mp /(prm%M*stt%xi(of))) **prm%n
|
dot_gamma = prm%dot_gamma_0 * (sqrt(1.5_pReal) * norm_Mp /(prm%M*stt%xi(of))) **prm%n
|
||||||
|
|
|
@ -421,8 +421,8 @@ pure subroutine kinetics(Mp,instance,of, &
|
||||||
nonSchmidActive = size(prm%nonSchmidCoeff) > 0
|
nonSchmidActive = size(prm%nonSchmidCoeff) > 0
|
||||||
|
|
||||||
do i = 1, prm%sum_N_sl
|
do i = 1, prm%sum_N_sl
|
||||||
tau_pos(i) = math_mul33xx33(Mp,prm%nonSchmid_pos(1:3,1:3,i)) - stt%crss_back(i,of)
|
tau_pos(i) = math_tensordot(Mp,prm%nonSchmid_pos(1:3,1:3,i)) - stt%crss_back(i,of)
|
||||||
tau_neg(i) = merge(math_mul33xx33(Mp,prm%nonSchmid_neg(1:3,1:3,i)) - stt%crss_back(i,of), &
|
tau_neg(i) = merge(math_tensordot(Mp,prm%nonSchmid_neg(1:3,1:3,i)) - stt%crss_back(i,of), &
|
||||||
0.0_pReal, nonSchmidActive)
|
0.0_pReal, nonSchmidActive)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
|
|
@ -864,15 +864,15 @@ module subroutine plastic_nonlocal_LpAndItsTangent(Lp,dLp_dMp, &
|
||||||
rhoSgl = rho(:,sgl)
|
rhoSgl = rho(:,sgl)
|
||||||
|
|
||||||
do s = 1,ns
|
do s = 1,ns
|
||||||
tau(s) = math_mul33xx33(Mp, prm%Schmid(1:3,1:3,s))
|
tau(s) = math_tensordot(Mp, prm%Schmid(1:3,1:3,s))
|
||||||
tauNS(s,1) = tau(s)
|
tauNS(s,1) = tau(s)
|
||||||
tauNS(s,2) = tau(s)
|
tauNS(s,2) = tau(s)
|
||||||
if (tau(s) > 0.0_pReal) then
|
if (tau(s) > 0.0_pReal) then
|
||||||
tauNS(s,3) = math_mul33xx33(Mp, +prm%nonSchmid_pos(1:3,1:3,s))
|
tauNS(s,3) = math_tensordot(Mp, +prm%nonSchmid_pos(1:3,1:3,s))
|
||||||
tauNS(s,4) = math_mul33xx33(Mp, -prm%nonSchmid_neg(1:3,1:3,s))
|
tauNS(s,4) = math_tensordot(Mp, -prm%nonSchmid_neg(1:3,1:3,s))
|
||||||
else
|
else
|
||||||
tauNS(s,3) = math_mul33xx33(Mp, +prm%nonSchmid_neg(1:3,1:3,s))
|
tauNS(s,3) = math_tensordot(Mp, +prm%nonSchmid_neg(1:3,1:3,s))
|
||||||
tauNS(s,4) = math_mul33xx33(Mp, -prm%nonSchmid_pos(1:3,1:3,s))
|
tauNS(s,4) = math_tensordot(Mp, -prm%nonSchmid_pos(1:3,1:3,s))
|
||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
tauNS = tauNS + spread(dst%tau_back(:,of),2,4)
|
tauNS = tauNS + spread(dst%tau_back(:,of),2,4)
|
||||||
|
@ -987,7 +987,7 @@ module subroutine plastic_nonlocal_deltaState(Mp,instance,of,ip,el)
|
||||||
|
|
||||||
!*** calculate limits for stable dipole height
|
!*** calculate limits for stable dipole height
|
||||||
do s = 1,prm%totalNslip
|
do s = 1,prm%totalNslip
|
||||||
tau(s) = math_mul33xx33(Mp, prm%Schmid(1:3,1:3,s)) +dst%tau_back(s,of)
|
tau(s) = math_tensordot(Mp, prm%Schmid(1:3,1:3,s)) +dst%tau_back(s,of)
|
||||||
if (abs(tau(s)) < 1.0e-15_pReal) tau(s) = 1.0e-15_pReal
|
if (abs(tau(s)) < 1.0e-15_pReal) tau(s) = 1.0e-15_pReal
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
@ -1148,7 +1148,7 @@ module subroutine plastic_nonlocal_dotState(Mp, F, Fp, Temperature,timestep, &
|
||||||
!****************************************************************************
|
!****************************************************************************
|
||||||
!*** limits for stable dipole height
|
!*** limits for stable dipole height
|
||||||
do s = 1,ns
|
do s = 1,ns
|
||||||
tau(s) = math_mul33xx33(Mp, prm%Schmid(1:3,1:3,s)) + dst%tau_back(s,of)
|
tau(s) = math_tensordot(Mp, prm%Schmid(1:3,1:3,s)) + dst%tau_back(s,of)
|
||||||
if (abs(tau(s)) < 1.0e-15_pReal) tau(s) = 1.0e-15_pReal
|
if (abs(tau(s)) < 1.0e-15_pReal) tau(s) = 1.0e-15_pReal
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
|
|
@ -437,8 +437,8 @@ pure subroutine kinetics_slip(Mp,instance,of, &
|
||||||
associate(prm => param(instance), stt => state(instance))
|
associate(prm => param(instance), stt => state(instance))
|
||||||
|
|
||||||
do i = 1, prm%sum_N_sl
|
do i = 1, prm%sum_N_sl
|
||||||
tau_slip_pos(i) = math_mul33xx33(Mp,prm%nonSchmid_pos(1:3,1:3,i))
|
tau_slip_pos(i) = math_tensordot(Mp,prm%nonSchmid_pos(1:3,1:3,i))
|
||||||
tau_slip_neg(i) = merge(math_mul33xx33(Mp,prm%nonSchmid_neg(1:3,1:3,i)), &
|
tau_slip_neg(i) = merge(math_tensordot(Mp,prm%nonSchmid_neg(1:3,1:3,i)), &
|
||||||
0.0_pReal, prm%nonSchmidActive)
|
0.0_pReal, prm%nonSchmidActive)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
@ -503,7 +503,7 @@ pure subroutine kinetics_twin(Mp,instance,of,&
|
||||||
associate(prm => param(instance), stt => state(instance))
|
associate(prm => param(instance), stt => state(instance))
|
||||||
|
|
||||||
do i = 1, prm%sum_N_tw
|
do i = 1, prm%sum_N_tw
|
||||||
tau_twin(i) = math_mul33xx33(Mp,prm%P_tw(1:3,1:3,i))
|
tau_twin(i) = math_tensordot(Mp,prm%P_tw(1:3,1:3,i))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
where(tau_twin > 0.0_pReal)
|
where(tau_twin > 0.0_pReal)
|
||||||
|
|
|
@ -127,7 +127,7 @@ subroutine kinematics_cleavage_opening_LiAndItsTangent(Ld, dLd_dTstar, S, ipc, i
|
||||||
do i = 1,prm%totalNcleavage
|
do i = 1,prm%totalNcleavage
|
||||||
traction_crit = prm%critLoad(i)* damage(homog)%p(damageOffset)**2.0_pReal
|
traction_crit = prm%critLoad(i)* damage(homog)%p(damageOffset)**2.0_pReal
|
||||||
|
|
||||||
traction_d = math_mul33xx33(S,prm%cleavage_systems(1:3,1:3,1,i))
|
traction_d = math_tensordot(S,prm%cleavage_systems(1:3,1:3,1,i))
|
||||||
if (abs(traction_d) > traction_crit + tol_math_check) then
|
if (abs(traction_d) > traction_crit + tol_math_check) then
|
||||||
udotd = sign(1.0_pReal,traction_d)* prm%sdot0 * ((abs(traction_d) - traction_crit)/traction_crit)**prm%n
|
udotd = sign(1.0_pReal,traction_d)* prm%sdot0 * ((abs(traction_d) - traction_crit)/traction_crit)**prm%n
|
||||||
Ld = Ld + udotd*prm%cleavage_systems(1:3,1:3,1,i)
|
Ld = Ld + udotd*prm%cleavage_systems(1:3,1:3,1,i)
|
||||||
|
@ -137,7 +137,7 @@ subroutine kinematics_cleavage_opening_LiAndItsTangent(Ld, dLd_dTstar, S, ipc, i
|
||||||
+ dudotd_dt*prm%cleavage_systems(k,l,1,i) * prm%cleavage_systems(m,n,1,i)
|
+ dudotd_dt*prm%cleavage_systems(k,l,1,i) * prm%cleavage_systems(m,n,1,i)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
traction_t = math_mul33xx33(S,prm%cleavage_systems(1:3,1:3,2,i))
|
traction_t = math_tensordot(S,prm%cleavage_systems(1:3,1:3,2,i))
|
||||||
if (abs(traction_t) > traction_crit + tol_math_check) then
|
if (abs(traction_t) > traction_crit + tol_math_check) then
|
||||||
udott = sign(1.0_pReal,traction_t)* prm%sdot0 * ((abs(traction_t) - traction_crit)/traction_crit)**prm%n
|
udott = sign(1.0_pReal,traction_t)* prm%sdot0 * ((abs(traction_t) - traction_crit)/traction_crit)**prm%n
|
||||||
Ld = Ld + udott*prm%cleavage_systems(1:3,1:3,2,i)
|
Ld = Ld + udott*prm%cleavage_systems(1:3,1:3,2,i)
|
||||||
|
@ -147,7 +147,7 @@ subroutine kinematics_cleavage_opening_LiAndItsTangent(Ld, dLd_dTstar, S, ipc, i
|
||||||
+ dudott_dt*prm%cleavage_systems(k,l,2,i) * prm%cleavage_systems(m,n,2,i)
|
+ dudott_dt*prm%cleavage_systems(k,l,2,i) * prm%cleavage_systems(m,n,2,i)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
traction_n = math_mul33xx33(S,prm%cleavage_systems(1:3,1:3,3,i))
|
traction_n = math_tensordot(S,prm%cleavage_systems(1:3,1:3,3,i))
|
||||||
if (abs(traction_n) > traction_crit + tol_math_check) then
|
if (abs(traction_n) > traction_crit + tol_math_check) then
|
||||||
udotn = sign(1.0_pReal,traction_n)* prm%sdot0 * ((abs(traction_n) - traction_crit)/traction_crit)**prm%n
|
udotn = sign(1.0_pReal,traction_n)* prm%sdot0 * ((abs(traction_n) - traction_crit)/traction_crit)**prm%n
|
||||||
Ld = Ld + udotn*prm%cleavage_systems(1:3,1:3,3,i)
|
Ld = Ld + udotn*prm%cleavage_systems(1:3,1:3,3,i)
|
||||||
|
|
|
@ -73,18 +73,10 @@ module math
|
||||||
3,3 &
|
3,3 &
|
||||||
],[2,9]) !< arrangement in Plain notation
|
],[2,9]) !< arrangement in Plain notation
|
||||||
|
|
||||||
|
|
||||||
interface math_eye
|
interface math_eye
|
||||||
module procedure math_identity2nd
|
module procedure math_identity2nd
|
||||||
end interface math_eye
|
end interface math_eye
|
||||||
|
|
||||||
!--------------------------
|
|
||||||
! only for compatibility reasons
|
|
||||||
interface math_mul33xx33
|
|
||||||
module procedure math_tensordot
|
|
||||||
end interface math_mul33xx33
|
|
||||||
!--------------------------
|
|
||||||
|
|
||||||
|
|
||||||
!---------------------------------------------------------------------------------------------------
|
!---------------------------------------------------------------------------------------------------
|
||||||
private :: &
|
private :: &
|
||||||
|
|
|
@ -155,9 +155,9 @@ subroutine source_damage_anisoBrittle_dotState(S, ipc, ip, el)
|
||||||
sourceState(phase)%p(sourceOffset)%dotState(1,constituent) = 0.0_pReal
|
sourceState(phase)%p(sourceOffset)%dotState(1,constituent) = 0.0_pReal
|
||||||
do i = 1, prm%totalNcleavage
|
do i = 1, prm%totalNcleavage
|
||||||
|
|
||||||
traction_d = math_mul33xx33(S,prm%cleavage_systems(1:3,1:3,1,i))
|
traction_d = math_tensordot(S,prm%cleavage_systems(1:3,1:3,1,i))
|
||||||
traction_t = math_mul33xx33(S,prm%cleavage_systems(1:3,1:3,2,i))
|
traction_t = math_tensordot(S,prm%cleavage_systems(1:3,1:3,2,i))
|
||||||
traction_n = math_mul33xx33(S,prm%cleavage_systems(1:3,1:3,3,i))
|
traction_n = math_tensordot(S,prm%cleavage_systems(1:3,1:3,3,i))
|
||||||
|
|
||||||
traction_crit = prm%critLoad(i)*damage(homog)%p(damageOffset)**2.0_pReal
|
traction_crit = prm%critLoad(i)*damage(homog)%p(damageOffset)**2.0_pReal
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue