some modifications in line with Davids analytical model
input some additional variables via material.config
This commit is contained in:
parent
bb9899e7de
commit
f78b07448f
|
@ -58,6 +58,8 @@ real(pReal), dimension(:), allocatable :: constitutive_dislotwin
|
|||
constitutive_dislotwin_CEdgeDipMinDistance, & !
|
||||
constitutive_dislotwin_Cmfptwin, & !
|
||||
constitutive_dislotwin_Cthresholdtwin, & !
|
||||
constitutive_dislotwin_SolidSolutionStrength, & ! Strength due to elements in solid solution
|
||||
constitutive_dislotwin_L0, & ! Length of twin nuclei in Burgers vectors
|
||||
constitutive_dislotwin_relevantRho ! dislocation density considered relevant
|
||||
real(pReal), dimension(:,:,:), allocatable :: constitutive_dislotwin_Cslip_66 ! elasticity matrix in Mandel notation for each instance
|
||||
real(pReal), dimension(:,:,:,:), allocatable :: constitutive_dislotwin_Ctwin_66 ! twin elasticity matrix in Mandel notation for each instance
|
||||
|
@ -178,30 +180,34 @@ allocate(constitutive_dislotwin_r(maxNinstance))
|
|||
allocate(constitutive_dislotwin_CEdgeDipMinDistance(maxNinstance))
|
||||
allocate(constitutive_dislotwin_Cmfptwin(maxNinstance))
|
||||
allocate(constitutive_dislotwin_Cthresholdtwin(maxNinstance))
|
||||
allocate(constitutive_dislotwin_SolidSolutionStrength(maxNinstance))
|
||||
allocate(constitutive_dislotwin_L0(maxNinstance))
|
||||
allocate(constitutive_dislotwin_relevantRho(maxNinstance))
|
||||
allocate(constitutive_dislotwin_Cslip_66(6,6,maxNinstance))
|
||||
allocate(constitutive_dislotwin_Cslip_3333(3,3,3,3,maxNinstance))
|
||||
constitutive_dislotwin_CoverA = 0.0_pReal
|
||||
constitutive_dislotwin_C11 = 0.0_pReal
|
||||
constitutive_dislotwin_C12 = 0.0_pReal
|
||||
constitutive_dislotwin_C13 = 0.0_pReal
|
||||
constitutive_dislotwin_C33 = 0.0_pReal
|
||||
constitutive_dislotwin_C44 = 0.0_pReal
|
||||
constitutive_dislotwin_Gmod = 0.0_pReal
|
||||
constitutive_dislotwin_CAtomicVolume = 0.0_pReal
|
||||
constitutive_dislotwin_D0 = 0.0_pReal
|
||||
constitutive_dislotwin_Qsd = 0.0_pReal
|
||||
constitutive_dislotwin_GrainSize = 0.0_pReal
|
||||
constitutive_dislotwin_p = 0.0_pReal
|
||||
constitutive_dislotwin_q = 0.0_pReal
|
||||
constitutive_dislotwin_MaxTwinFraction = 0.0_pReal
|
||||
constitutive_dislotwin_r = 0.0_pReal
|
||||
constitutive_dislotwin_CEdgeDipMinDistance = 0.0_pReal
|
||||
constitutive_dislotwin_Cmfptwin = 0.0_pReal
|
||||
constitutive_dislotwin_Cthresholdtwin = 0.0_pReal
|
||||
constitutive_dislotwin_relevantRho = 0.0_pReal
|
||||
constitutive_dislotwin_Cslip_66 = 0.0_pReal
|
||||
constitutive_dislotwin_Cslip_3333 = 0.0_pReal
|
||||
constitutive_dislotwin_CoverA = 0.0_pReal
|
||||
constitutive_dislotwin_C11 = 0.0_pReal
|
||||
constitutive_dislotwin_C12 = 0.0_pReal
|
||||
constitutive_dislotwin_C13 = 0.0_pReal
|
||||
constitutive_dislotwin_C33 = 0.0_pReal
|
||||
constitutive_dislotwin_C44 = 0.0_pReal
|
||||
constitutive_dislotwin_Gmod = 0.0_pReal
|
||||
constitutive_dislotwin_CAtomicVolume = 0.0_pReal
|
||||
constitutive_dislotwin_D0 = 0.0_pReal
|
||||
constitutive_dislotwin_Qsd = 0.0_pReal
|
||||
constitutive_dislotwin_GrainSize = 0.0_pReal
|
||||
constitutive_dislotwin_p = 0.0_pReal
|
||||
constitutive_dislotwin_q = 0.0_pReal
|
||||
constitutive_dislotwin_MaxTwinFraction = 0.0_pReal
|
||||
constitutive_dislotwin_r = 0.0_pReal
|
||||
constitutive_dislotwin_CEdgeDipMinDistance = 0.0_pReal
|
||||
constitutive_dislotwin_Cmfptwin = 0.0_pReal
|
||||
constitutive_dislotwin_Cthresholdtwin = 0.0_pReal
|
||||
constitutive_dislotwin_SolidSolutionStrength= 0.0_pReal
|
||||
constitutive_dislotwin_L0 = 0.0_pReal
|
||||
constitutive_dislotwin_relevantRho = 0.0_pReal
|
||||
constitutive_dislotwin_Cslip_66 = 0.0_pReal
|
||||
constitutive_dislotwin_Cslip_3333 = 0.0_pReal
|
||||
allocate(constitutive_dislotwin_rhoEdge0(lattice_maxNslipFamily,maxNinstance))
|
||||
allocate(constitutive_dislotwin_rhoEdgeDip0(lattice_maxNslipFamily,maxNinstance))
|
||||
allocate(constitutive_dislotwin_burgersPerSlipFamily(lattice_maxNslipFamily,maxNinstance))
|
||||
|
@ -321,6 +327,10 @@ do ! read thru sections of
|
|||
constitutive_dislotwin_Cmfptwin(i) = IO_floatValue(line,positions,2)
|
||||
case ('cthresholdtwin')
|
||||
constitutive_dislotwin_Cthresholdtwin(i) = IO_floatValue(line,positions,2)
|
||||
case ('SolidSolutionStrength')
|
||||
constitutive_dislotwin_SolidSolutionStrength(i) = IO_floatValue(line,positions,2)
|
||||
case ('L0')
|
||||
constitutive_dislotwin_L0(i) = IO_floatValue(line,positions,2)
|
||||
case ('cedgedipmindistance')
|
||||
constitutive_dislotwin_CEdgeDipMinDistance(i) = IO_floatValue(line,positions,2)
|
||||
case ('catomicvolume')
|
||||
|
@ -631,7 +641,7 @@ constitutive_dislotwin_GrainSize(myInstance)/(1.0_pReal+invLambdaSlip0(s)*consti
|
|||
constitutive_dislotwin_stateInit(4*ns+2*nt+1:5*ns+2*nt) = MeanFreePathSlip0
|
||||
|
||||
forall (s = 1:ns) &
|
||||
tauSlipThreshold0(s) = &
|
||||
tauSlipThreshold0(s) = constitutive_dislotwin_SolidSolutionStrength(myInstance)+ &
|
||||
constitutive_dislotwin_Gmod(myInstance)*constitutive_dislotwin_burgersPerSlipSystem(s,myInstance)* &
|
||||
sqrt(dot_product((rhoEdge0+rhoEdgeDip0),constitutive_dislotwin_interactionMatrixSlipSlip(1:ns,s,myInstance)))
|
||||
constitutive_dislotwin_stateInit(5*ns+3*nt+1:6*ns+3*nt) = tauSlipThreshold0
|
||||
|
@ -739,7 +749,7 @@ integer(pInt), intent(in) :: g,ip,el
|
|||
real(pReal), intent(in) :: Temperature
|
||||
type(p_vec), dimension(homogenization_maxNgrains,mesh_maxNips,mesh_NcpElems), intent(inout) :: state
|
||||
!* Local variables
|
||||
integer(pInt) myInstance,myStructure,ns,nt,s,t,i
|
||||
integer(pInt) myInstance,myStructure,ns,nt,s,t
|
||||
real(pReal) sumf,sfe
|
||||
real(pReal), dimension(constitutive_dislotwin_totalNtwin(phase_constitutionInstance(material_phase(g,ip,el)))) :: fOverStacksize
|
||||
|
||||
|
@ -814,7 +824,7 @@ forall (t = 1:nt) &
|
|||
|
||||
!* threshold stress for dislocation motion
|
||||
forall (s = 1:ns) &
|
||||
state(g,ip,el)%p(5*ns+3*nt+s) = &
|
||||
state(g,ip,el)%p(5*ns+3*nt+s) = constitutive_dislotwin_SolidSolutionStrength(myInstance)+ &
|
||||
constitutive_dislotwin_Gmod(myInstance)*constitutive_dislotwin_burgersPerSlipSystem(s,myInstance)*&
|
||||
sqrt(dot_product((state(g,ip,el)%p(1:ns)+state(g,ip,el)%p(ns+1:2*ns)),&
|
||||
constitutive_dislotwin_interactionMatrixSlipSlip(1:ns,s,myInstance)))
|
||||
|
@ -825,7 +835,7 @@ forall (t = 1:nt) &
|
|||
constitutive_dislotwin_Cthresholdtwin(myInstance)*&
|
||||
(sfe/(3.0_pReal*constitutive_dislotwin_burgersPerTwinSystem(t,myInstance))+&
|
||||
3.0_pReal*constitutive_dislotwin_burgersPerTwinSystem(t,myInstance)*constitutive_dislotwin_Gmod(myInstance)/&
|
||||
state(g,ip,el)%p(5*ns+2*nt+t))
|
||||
(constitutive_dislotwin_L0(myInstance)*constitutive_dislotwin_burgersPerSlipSystem(t,myInstance)))
|
||||
|
||||
!* final twin volume after growth
|
||||
forall (t = 1:nt) &
|
||||
|
@ -1026,7 +1036,7 @@ type(p_vec), dimension(homogenization_maxNgrains,mesh_maxNips,mesh_NcpElems), in
|
|||
real(pReal), dimension(constitutive_dislotwin_sizeDotState(phase_constitutionInstance(material_phase(g,ip,el)))) :: &
|
||||
constitutive_dislotwin_dotState
|
||||
!* Local variables
|
||||
integer(pInt) MyInstance,MyStructure,ns,nt,f,i,j,k,index_myFamily
|
||||
integer(pInt) MyInstance,MyStructure,ns,nt,f,i,j,index_myFamily
|
||||
real(pReal) sumf,StressRatio_p,StressRatio_pminus1,BoltzmannRatio,DotGamma0,&
|
||||
EdgeDipMinDistance,AtomicVolume,VacancyDiffusion,StressRatio_r
|
||||
real(pReal), dimension(constitutive_dislotwin_totalNslip(phase_constitutionInstance(material_phase(g,ip,el)))) :: &
|
||||
|
@ -1034,7 +1044,7 @@ gdot_slip,tau_slip,DotRhoMultiplication,EdgeDipDistance,DotRhoEdgeEdgeAnnihilati
|
|||
|
||||
ClimbVelocity,DotRhoEdgeDipClimb,DotRhoDipFormation
|
||||
real(pReal), dimension(constitutive_dislotwin_totalNtwin(phase_constitutionInstance(material_phase(g,ip,el)))) :: &
|
||||
gdot_twin,tau_twin
|
||||
tau_twin
|
||||
|
||||
!* Shortened notation
|
||||
myInstance = phase_constitutionInstance(material_phase(g,ip,el))
|
||||
|
|
|
@ -323,10 +323,11 @@ constitution dislotwin
|
|||
|
||||
### Material parameters ###
|
||||
lattice_structure fcc
|
||||
C11 175.0e9 # From Music et al. Applied Physics Letters 91, 191904 (2007)
|
||||
C12 115.0e9
|
||||
C44 135.0e9
|
||||
grainsize 2.0e-5 # Average grain size [m]
|
||||
C11 175.0e9 # From Music et al. Applied Physics Letters 91, 191904 (2007)
|
||||
C12 115.0e9
|
||||
C44 135.0e9
|
||||
grainsize 2.0e-5 # Average grain size [m]
|
||||
SolidSolutionStrength 1.5e8 # Strength due to elements in solid solution
|
||||
|
||||
### Dislocation glide parameters ###
|
||||
Nslip 12 0 0 0
|
||||
|
@ -349,6 +350,7 @@ interactionSlipSlip 0.122 0.122 0.625 0.07 0.137 0.122 # Interaction coefficient
|
|||
Ntwin 12
|
||||
twinburgers 1.47e-10 # Burgers vector of twin system [m]
|
||||
twinsize 5.0e-8 # Twin stack mean thickness [m]
|
||||
L0 442.0 # Length of twin nuclei in Burgers vectors
|
||||
maxtwinfraction 1.0 # Maximum admissible twin volume fraction
|
||||
Ndot0 0.0 # Number of potential sources per volume per time [1/m**3.s]
|
||||
rexponent 10.0 # r-exponent in twin formation probability
|
||||
|
|
Loading…
Reference in New Issue