Input parameter 'QedgePerSbSystem' which denotes activation energy for each shear band system is added

This commit is contained in:
Nan Jia 2012-05-22 16:10:28 +00:00
parent 9201133913
commit bbf790a0a5
2 changed files with 37 additions and 2 deletions

View File

@ -391,6 +391,7 @@ interactionSlipSlip 0.122 0.122 0.625 0.07 0.137 0.122 # Interaction coefficient
### Shearband parameters ### ### Shearband parameters ###
shearbandresistance 180e6 shearbandresistance 180e6
shearbandvelocity 1e-4 shearbandvelocity 1e-4
QedgePerSbSystem 3.7e-19 # Activation energy for shear banding [J]
### Twinning parameters ### ### Twinning parameters ###
Ntwin 12 Ntwin 12

View File

@ -82,6 +82,7 @@ real(pReal), dimension(:), allocatable :: constitutive_dislotwin
constitutive_dislotwin_L0, & ! Length of twin nuclei in Burgers vectors constitutive_dislotwin_L0, & ! Length of twin nuclei in Burgers vectors
constitutive_dislotwin_sbResistance, & ! FIXED (for now) value for shearband resistance (might become an internal state variable at some point) constitutive_dislotwin_sbResistance, & ! FIXED (for now) value for shearband resistance (might become an internal state variable at some point)
constitutive_dislotwin_sbVelocity, & ! FIXED (for now) value for shearband velocity_0 constitutive_dislotwin_sbVelocity, & ! FIXED (for now) value for shearband velocity_0
constitutive_dislotwin_sbQedge, & ! FIXED (for now) value for shearband systems Qedge
constitutive_dislotwin_SFE_0K, & ! stacking fault energy at zero K constitutive_dislotwin_SFE_0K, & ! stacking fault energy at zero K
constitutive_dislotwin_dSFE_dT, & ! temperature dependance of stacking fault energy constitutive_dislotwin_dSFE_dT, & ! temperature dependance of stacking fault energy
constitutive_dislotwin_aTolRho ! absolute tolerance for integration of dislocation density constitutive_dislotwin_aTolRho ! absolute tolerance for integration of dislocation density
@ -246,6 +247,8 @@ allocate(constitutive_dislotwin_sbResistance(maxNinstance))
constitutive_dislotwin_sbResistance = 0.0_pReal constitutive_dislotwin_sbResistance = 0.0_pReal
allocate(constitutive_dislotwin_sbVelocity(maxNinstance)) allocate(constitutive_dislotwin_sbVelocity(maxNinstance))
constitutive_dislotwin_sbVelocity = 0.0_pReal constitutive_dislotwin_sbVelocity = 0.0_pReal
allocate(constitutive_dislotwin_sbQedge(maxNinstance))
constitutive_dislotwin_sbQedge = 0.0_pReal
allocate(constitutive_dislotwin_SFE_0K(maxNinstance)) allocate(constitutive_dislotwin_SFE_0K(maxNinstance))
constitutive_dislotwin_SFE_0K = 0.0_pReal constitutive_dislotwin_SFE_0K = 0.0_pReal
allocate(constitutive_dislotwin_dSFE_dT(maxNinstance)) allocate(constitutive_dislotwin_dSFE_dT(maxNinstance))
@ -401,6 +404,8 @@ do ! read thru sections of
constitutive_dislotwin_sbResistance(i) = IO_floatValue(line,positions,2_pInt) constitutive_dislotwin_sbResistance(i) = IO_floatValue(line,positions,2_pInt)
case ('shearbandvelocity') case ('shearbandvelocity')
constitutive_dislotwin_sbVelocity(i) = IO_floatValue(line,positions,2_pInt) constitutive_dislotwin_sbVelocity(i) = IO_floatValue(line,positions,2_pInt)
case ('qedgepersbsystem')
constitutive_dislotwin_sbQedge(i) = IO_floatValue(line,positions,2_pInt)
case default case default
call IO_error(240_pInt,ext_msg=tag) call IO_error(240_pInt,ext_msg=tag)
end select end select
@ -575,6 +580,35 @@ do i = 1_pInt,maxNinstance
constitutive_dislotwin_Cslip_66(5,5,i) = constitutive_dislotwin_C44(i) constitutive_dislotwin_Cslip_66(5,5,i) = constitutive_dislotwin_C44(i)
constitutive_dislotwin_Cslip_66(6,6,i) = 0.5_pReal*(constitutive_dislotwin_C11(i)-constitutive_dislotwin_C12(i)) constitutive_dislotwin_Cslip_66(6,6,i) = 0.5_pReal*(constitutive_dislotwin_C11(i)-constitutive_dislotwin_C12(i))
end select end select
write(6,*) constitutive_dislotwin_Cslip_66(1,1,i)
write(6,*) constitutive_dislotwin_Cslip_66(2,2,i)
write(6,*) constitutive_dislotwin_Cslip_66(3,3,i)
write(6,*) constitutive_dislotwin_Cslip_66(1,2,i)
write(6,*) constitutive_dislotwin_Cslip_66(1,3,i)
write(6,*) constitutive_dislotwin_Cslip_66(2,3,i)
write(6,*) constitutive_dislotwin_Cslip_66(4,4,i)
write(6,*) constitutive_dislotwin_Cslip_66(5,5,i)
write(6,*) constitutive_dislotwin_Cslip_66(6,6,i)
write(6,*) constitutive_dislotwin_C11(i)
write(6,*) constitutive_dislotwin_C33(i)
write(6,*) constitutive_dislotwin_C12(i)
write(6,*) constitutive_dislotwin_C13(i)
write(6,*) constitutive_dislotwin_C44(i)
write(6,'(a,/,f30.20,1x/)') ' constitutive_dislotwin_Cslip_66(2,2,1)', constitutive_dislotwin_Cslip_66(2,2,1)
write(6,'(a,/,f30.20,1x/)') ' constitutive_dislotwin_Cslip_66(3,3,1)', constitutive_dislotwin_Cslip_66(3,3,1)
write(6,'(a,/,f30.20,1x/)') ' constitutive_dislotwin_Cslip_66(1,2,1)', constitutive_dislotwin_Cslip_66(1,2,1)
write(6,'(a,/,f30.20,1x/)') ' constitutive_dislotwin_Cslip_66(1,3,1)', constitutive_dislotwin_Cslip_66(1,3,1)
write(6,'(a,/,f30.20,1x/)') ' constitutive_dislotwin_Cslip_66(2,3,1)', constitutive_dislotwin_Cslip_66(6,6,1)
write(6,'(a,/,f30.20,1x/)') ' constitutive_dislotwin_Cslip_66(4,4,1)', constitutive_dislotwin_Cslip_66(4,4,1)
write(6,'(a,/,f30.20,1x/)') ' constitutive_dislotwin_Cslip_66(5,5,1)', constitutive_dislotwin_Cslip_66(5,5,1)
write(6,'(a,/,f30.20,1x/)') ' constitutive_dislotwin_Cslip_66(6,6,1)', constitutive_dislotwin_Cslip_66(6,6,1)
constitutive_dislotwin_Cslip_66(:,:,i) = math_Mandel3333to66(math_Voigt66to3333(constitutive_dislotwin_Cslip_66(:,:,i))) constitutive_dislotwin_Cslip_66(:,:,i) = math_Mandel3333to66(math_Voigt66to3333(constitutive_dislotwin_Cslip_66(:,:,i)))
constitutive_dislotwin_Cslip_3333(:,:,:,:,i) = math_Voigt66to3333(constitutive_dislotwin_Cslip_66(:,:,i)) constitutive_dislotwin_Cslip_3333(:,:,:,:,i) = math_Voigt66to3333(constitutive_dislotwin_Cslip_66(:,:,i))
constitutive_dislotwin_Gmod(i) = & constitutive_dislotwin_Gmod(i) = &
@ -1069,7 +1103,7 @@ if(constitutive_dislotwin_sbVelocity(myInstance) /= 0.0_pReal) then
StressRatio_pminus1 = (abs(tau_sb(j))/constitutive_dislotwin_sbResistance(myInstance))& StressRatio_pminus1 = (abs(tau_sb(j))/constitutive_dislotwin_sbResistance(myInstance))&
**(constitutive_dislotwin_p(myInstance)-1.0_pReal) **(constitutive_dislotwin_p(myInstance)-1.0_pReal)
!* Boltzmann ratio !* Boltzmann ratio
BoltzmannRatio = constitutive_dislotwin_QedgePerSlipSystem(f,myInstance)/(kB*Temperature) BoltzmannRatio = constitutive_dislotwin_sbQedge(myInstance)/(kB*Temperature)
!* Initial shear rates !* Initial shear rates
DotGamma0 = constitutive_dislotwin_sbVelocity(myInstance) DotGamma0 = constitutive_dislotwin_sbVelocity(myInstance)
@ -1519,7 +1553,7 @@ do o = 1_pInt,phase_Noutput(material_phase(g,ip,el))
StressRatio_pminus1 = (abs(tau)/constitutive_dislotwin_sbResistance(myInstance))& StressRatio_pminus1 = (abs(tau)/constitutive_dislotwin_sbResistance(myInstance))&
**(constitutive_dislotwin_p(myInstance)-1.0_pReal) **(constitutive_dislotwin_p(myInstance)-1.0_pReal)
!* Boltzmann ratio !* Boltzmann ratio
BoltzmannRatio = constitutive_dislotwin_QedgePerSlipSystem(f,myInstance)/(kB*Temperature) BoltzmannRatio = constitutive_dislotwin_sbQedge(myInstance)/(kB*Temperature)
!* Initial shear rates !* Initial shear rates
DotGamma0 = constitutive_dislotwin_sbVelocity(myInstance) DotGamma0 = constitutive_dislotwin_sbVelocity(myInstance)