"dv_dtau" argument in "constitutive_nonlocal_kinetics" not optional anymore

renamed "screwStressProjection" to "nonSchmidProjection"
This commit is contained in:
Christoph Kords 2013-08-21 07:23:02 +00:00
parent 48278a4ae6
commit 277972edbd
1 changed files with 38 additions and 47 deletions

View File

@ -184,7 +184,7 @@ rhoDotMultiplicationOutput, &
rhoDotSingle2DipoleGlideOutput, &
rhoDotAthermalAnnihilationOutput, &
rhoDotThermalAnnihilationOutput, &
screwStressProjection !< combined projection of Schmid and non-Schmid stresses for resolved shear stress acting on screws
nonSchmidProjection !< combined projection of Schmid and non-Schmid contributions to the resolved shear stress (only for screws)
real(pReal), dimension(:,:,:,:,:,:), allocatable, private :: &
compatibility !< slip system compatibility between me and my neighbors
@ -770,8 +770,8 @@ peierlsStress = 0.0_pReal
allocate(colinearSystem(maxTotalNslip,maxNinstance))
colinearSystem = 0_pInt
allocate(screwStressProjection(3,3,4,maxTotalNslip,maxNinstance))
screwStressProjection = 0.0_pReal
allocate(nonSchmidProjection(3,3,4,maxTotalNslip,maxNinstance))
nonSchmidProjection = 0.0_pReal
do i = 1,maxNinstance
@ -1010,25 +1010,25 @@ do i = 1,maxNinstance
enddo
!*** combined projection of Schmid and non-Schmid stress contributions to resolved shear stress for screws
!*** combined projection of Schmid and non-Schmid contributions to the resolved shear stress (only for screws)
!* four types t:
!* 1) positive screw at positive resolved stress
!* 2) positive screw at negative resolved stress
!* 3) negative screw at positive resolved stress
!* 4) negative screw at negative resolved stress
screwStressProjection = 0.0_pReal
nonSchmidProjection = 0.0_pReal
do s = 1_pInt,ns
do l = 1_pInt,lattice_NnonSchmid(myStructure)
screwStressProjection(1:3,1:3,1,s,i) = screwStressProjection(1:3,1:3,1,s,i) &
nonSchmidProjection(1:3,1:3,1,s,i) = nonSchmidProjection(1:3,1:3,1,s,i) &
+ nonSchmidCoeff(l,i) * lattice_Sslip(1:3,1:3,2*l,slipSystemLattice(s,i),myStructure)
screwStressProjection(1:3,1:3,2,s,i) = screwStressProjection(1:3,1:3,2,s,i) &
nonSchmidProjection(1:3,1:3,2,s,i) = nonSchmidProjection(1:3,1:3,2,s,i) &
+ nonSchmidCoeff(l,i) * lattice_Sslip(1:3,1:3,2*l+1,slipSystemLattice(s,i),myStructure)
enddo
screwStressProjection(1:3,1:3,3,s,i) = -screwStressProjection(1:3,1:3,2,s,i)
screwStressProjection(1:3,1:3,4,s,i) = -screwStressProjection(1:3,1:3,1,s,i)
nonSchmidProjection(1:3,1:3,3,s,i) = -nonSchmidProjection(1:3,1:3,2,s,i)
nonSchmidProjection(1:3,1:3,4,s,i) = -nonSchmidProjection(1:3,1:3,1,s,i)
forall (t = 1:4) &
screwStressProjection(1:3,1:3,t,s,i) = screwStressProjection(1:3,1:3,t,s,i) &
nonSchmidProjection(1:3,1:3,t,s,i) = nonSchmidProjection(1:3,1:3,t,s,i) &
+ lattice_Sslip(1:3,1:3,1,slipSystemLattice(s,i),myStructure)
enddo
@ -1581,7 +1581,7 @@ type(p_vec), intent(in) :: state ! micros
real(pReal), dimension(totalNslip(phase_plasticityInstance(material_phase(g,ip,el)))), &
intent(out) :: v ! velocity
real(pReal), dimension(totalNslip(phase_plasticityInstance(material_phase(g,ip,el)))), &
intent(out), optional :: dv_dtau ! velocity derivative with respect to resolved shear stress
intent(out) :: dv_dtau ! velocity derivative with respect to resolved shear stress
!*** local variables
integer(pInt) :: instance, & ! current instance of this plasticity
@ -1619,7 +1619,7 @@ tauThreshold = state%p(iTauF(1:ns,instance))
tauEff = abs(tau) - tauThreshold
v = 0.0_pReal
if (present(dv_dtau)) dv_dtau = 0.0_pReal
dv_dtau = 0.0_pReal
if (Temperature > 0.0_pReal) then
@ -1639,14 +1639,12 @@ if (Temperature > 0.0_pReal) then
tPeierls = 1.0_pReal / fattack(instance) &
* exp(activationEnergy_P / (KB * Temperature) &
* (1.0_pReal - tauRel_P**pParam(instance))**qParam(instance))
if (present(dv_dtau)) then
if (tauEff(s) < criticalStress_P) then
dtPeierls_dtau = tPeierls * pParam(instance) * qParam(instance) * activationVolume_P / (KB * Temperature) &
* (1.0_pReal - tauRel_P**pParam(instance))**(qParam(instance)-1.0_pReal) &
* tauRel_P**(pParam(instance)-1.0_pReal)
else
dtPeierls_dtau = 0.0_pReal
endif
if (tauEff(s) < criticalStress_P) then
dtPeierls_dtau = tPeierls * pParam(instance) * qParam(instance) * activationVolume_P / (KB * Temperature) &
* (1.0_pReal - tauRel_P**pParam(instance))**(qParam(instance)-1.0_pReal) &
* tauRel_P**(pParam(instance)-1.0_pReal)
else
dtPeierls_dtau = 0.0_pReal
endif
@ -1663,15 +1661,13 @@ if (Temperature > 0.0_pReal) then
tSolidSolution = 1.0_pReal / fattack(instance) &
* exp(activationEnergy_S / (KB * Temperature) &
* (1.0_pReal - tauRel_S**pParam(instance))**qParam(instance))
if (present(dv_dtau)) then
if (tauEff(s) < criticalStress_S) then
dtSolidSolution_dtau = tSolidSolution * pParam(instance) * qParam(instance) &
* activationVolume_S / (KB * Temperature) &
* (1.0_pReal - tauRel_S**pParam(instance))**(qParam(instance)-1.0_pReal) &
* tauRel_S**(pParam(instance)-1.0_pReal)
else
dtSolidSolution_dtau = 0.0_pReal
endif
if (tauEff(s) < criticalStress_S) then
dtSolidSolution_dtau = tSolidSolution * pParam(instance) * qParam(instance) &
* activationVolume_S / (KB * Temperature) &
* (1.0_pReal - tauRel_S**pParam(instance))**(qParam(instance)-1.0_pReal) &
* tauRel_S**(pParam(instance)-1.0_pReal)
else
dtSolidSolution_dtau = 0.0_pReal
endif
@ -1687,13 +1683,10 @@ if (Temperature > 0.0_pReal) then
v(s) = sign(1.0_pReal,tau(s)) &
/ (tPeierls / meanfreepath_P + tSolidSolution / meanfreepath_S + 1.0_pReal / vViscous)
if (present(dv_dtau)) then
dv_dtau(s) = v(s) * v(s) &
* (dtPeierls_dtau / meanfreepath_P &
+ dtSolidSolution_dtau / meanfreepath_S &
+ 1.0_pReal / (mobility * tauEff(s)*tauEff(s)))
endif
dv_dtau(s) = v(s) * v(s) &
* (dtPeierls_dtau / meanfreepath_P &
+ dtSolidSolution_dtau / meanfreepath_S &
+ 1.0_pReal / (mobility * tauEff(s)*tauEff(s)))
endif
enddo
@ -1710,9 +1703,7 @@ endif
write(6,'(a,/,12x,12(f12.5,1x))') '<< CONST >> tau / MPa', tau / 1e6_pReal
write(6,'(a,/,12x,12(f12.5,1x))') '<< CONST >> tauEff / MPa', tauEff / 1e6_pReal
write(6,'(a,/,12x,12(f12.5,1x))') '<< CONST >> v / 1e-3m/s', v * 1e3
if (present(dv_dtau)) then
write(6,'(a,/,12x,12(e12.5,1x))') '<< CONST >> dv_dtau', dv_dtau
endif
write(6,'(a,/,12x,12(e12.5,1x))') '<< CONST >> dv_dtau', dv_dtau
endif
#endif
@ -1818,11 +1809,11 @@ do s = 1_pInt,ns
sLattice = slipSystemLattice(s,myInstance)
tau(s,1:2) = math_mul6x6(Tstar_v, lattice_Sslip_v(1:6,1,sLattice,myStructure))
if (tau(s,1) > 0.0_pReal) then
tau(s,3) = math_mul33xx33(math_Mandel6to33(Tstar_v), screwStressProjection(1:3,1:3,1,s,myInstance))
tau(s,4) = math_mul33xx33(math_Mandel6to33(Tstar_v), screwStressProjection(1:3,1:3,3,s,myInstance))
tau(s,3) = math_mul33xx33(math_Mandel6to33(Tstar_v), nonSchmidProjection(1:3,1:3,1,s,myInstance))
tau(s,4) = math_mul33xx33(math_Mandel6to33(Tstar_v), nonSchmidProjection(1:3,1:3,3,s,myInstance))
else
tau(s,3) = math_mul33xx33(math_Mandel6to33(Tstar_v), screwStressProjection(1:3,1:3,2,s,myInstance))
tau(s,4) = math_mul33xx33(math_Mandel6to33(Tstar_v), screwStressProjection(1:3,1:3,4,s,myInstance))
tau(s,3) = math_mul33xx33(math_Mandel6to33(Tstar_v), nonSchmidProjection(1:3,1:3,2,s,myInstance))
tau(s,4) = math_mul33xx33(math_Mandel6to33(Tstar_v), nonSchmidProjection(1:3,1:3,4,s,myInstance))
endif
forall (t = 1_pInt:4_pInt) &
tau(s,t) = tau(s,t) + tauBack(s) ! add backstress
@ -1878,15 +1869,15 @@ do s = 1_pInt,ns
dLp_dTstar3333(i,j,k,l) = dLp_dTstar3333(i,j,k,l) &
+ dgdot_dtau(s,1) * lattice_Sslip(i,j,1,sLattice,myStructure) * lattice_Sslip(k,l,1,sLattice,myStructure) &
+ dgdot_dtau(s,2) * lattice_Sslip(i,j,1,sLattice,myStructure) * lattice_Sslip(k,l,1,sLattice,myStructure) &
+ dgdot_dtau(s,3) * lattice_Sslip(i,j,1,sLattice,myStructure) * screwStressProjection(k,l,1,s,myInstance) &
+ dgdot_dtau(s,4) * lattice_Sslip(i,j,1,sLattice,myStructure) * screwStressProjection(k,l,3,s,myInstance)
+ dgdot_dtau(s,3) * lattice_Sslip(i,j,1,sLattice,myStructure) * nonSchmidProjection(k,l,1,s,myInstance) &
+ dgdot_dtau(s,4) * lattice_Sslip(i,j,1,sLattice,myStructure) * nonSchmidProjection(k,l,3,s,myInstance)
else
forall (i=1_pInt:3_pInt,j=1_pInt:3_pInt,k=1_pInt:3_pInt,l=1_pInt:3_pInt) &
dLp_dTstar3333(i,j,k,l) = dLp_dTstar3333(i,j,k,l) &
+ dgdot_dtau(s,1) * lattice_Sslip(i,j,1,sLattice,myStructure) * lattice_Sslip(k,l,1,sLattice,myStructure) &
+ dgdot_dtau(s,2) * lattice_Sslip(i,j,1,sLattice,myStructure) * lattice_Sslip(k,l,1,sLattice,myStructure) &
+ dgdot_dtau(s,3) * lattice_Sslip(i,j,1,sLattice,myStructure) * screwStressProjection(k,l,2,s,myInstance) &
+ dgdot_dtau(s,4) * lattice_Sslip(i,j,1,sLattice,myStructure) * screwStressProjection(k,l,4,s,myInstance)
+ dgdot_dtau(s,3) * lattice_Sslip(i,j,1,sLattice,myStructure) * nonSchmidProjection(k,l,2,s,myInstance) &
+ dgdot_dtau(s,4) * lattice_Sslip(i,j,1,sLattice,myStructure) * nonSchmidProjection(k,l,4,s,myInstance)
endif
enddo
dLp_dTstar99 = math_Plain3333to99(dLp_dTstar3333)