new material parameter "egdejog": fraction of annihilated screw dipoles that forms edge jogs

This commit is contained in:
Christoph Kords 2012-12-23 12:56:15 +00:00
parent 9ae8c22066
commit f14fd45ce1
2 changed files with 13 additions and 3 deletions

View File

@ -296,7 +296,8 @@ maximumVelocity 3600 # maximum allowed velocity
surfaceTransmissivity 1.0 # transmissivity of free surfaces for dislocation flux surfaceTransmissivity 1.0 # transmissivity of free surfaces for dislocation flux
grainboundaryTransmissivity 0.0 # transmissivity of grain boundaries for dislocation flux (grain bundaries are identified as interfaces with different textures on both sides); if not set or set to negative number, the subroutine automatically determines the transmissivity at the grain boundary grainboundaryTransmissivity 0.0 # transmissivity of grain boundaries for dislocation flux (grain bundaries are identified as interfaces with different textures on both sides); if not set or set to negative number, the subroutine automatically determines the transmissivity at the grain boundary
interaction_SlipSlip 0 0 0.625 0.07 0.137 0.122 # Dislocation interaction coefficient interaction_SlipSlip 0 0 0.625 0.07 0.137 0.122 # Dislocation interaction coefficient
linetension 0 # constant indicating the effect of the line tension on the hardening coefficients (0 to 1) linetension 0.8 # constant indicating the effect of the line tension on the hardening coefficients (0 to 1)
edgejog 1.0 # fraction of annihilated screw dipoles that forms edge jogs (0 to 1)
shortRangeStressCorrection 0 # switch for use of short range correction stress shortRangeStressCorrection 0 # switch for use of short range correction stress
cutoffRadius 1e-3 # cutoff radius for dislocation stress in m cutoffRadius 1e-3 # cutoff radius for dislocation stress in m
CFLfactor 2.0 # safety factor for CFL flux check (numerical parameter) CFLfactor 2.0 # safety factor for CFL flux check (numerical parameter)

View File

@ -134,7 +134,8 @@ constitutive_nonlocal_CFLfactor, & ! safety fa
constitutive_nonlocal_fEdgeMultiplication, & ! factor that determines how much edge dislocations contribute to multiplication (0...1) constitutive_nonlocal_fEdgeMultiplication, & ! factor that determines how much edge dislocations contribute to multiplication (0...1)
constitutive_nonlocal_rhoSglRandom, & constitutive_nonlocal_rhoSglRandom, &
constitutive_nonlocal_rhoSglRandomBinning, & constitutive_nonlocal_rhoSglRandomBinning, &
constitutive_nonlocal_linetensionEffect constitutive_nonlocal_linetensionEffect, &
constitutive_nonlocal_edgeJogFactor
real(pReal), dimension(:,:), allocatable, private :: & real(pReal), dimension(:,:), allocatable, private :: &
constitutive_nonlocal_rhoSglEdgePos0, & ! initial edge_pos dislocation density per slip system for each family and instance constitutive_nonlocal_rhoSglEdgePos0, & ! initial edge_pos dislocation density per slip system for each family and instance
@ -352,6 +353,7 @@ allocate(constitutive_nonlocal_probabilisticMultiplication(maxNinstance))
allocate(constitutive_nonlocal_CFLfactor(maxNinstance)) allocate(constitutive_nonlocal_CFLfactor(maxNinstance))
allocate(constitutive_nonlocal_fEdgeMultiplication(maxNinstance)) allocate(constitutive_nonlocal_fEdgeMultiplication(maxNinstance))
allocate(constitutive_nonlocal_linetensionEffect(maxNinstance)) allocate(constitutive_nonlocal_linetensionEffect(maxNinstance))
allocate(constitutive_nonlocal_edgeJogFactor(maxNinstance))
constitutive_nonlocal_CoverA = 0.0_pReal constitutive_nonlocal_CoverA = 0.0_pReal
constitutive_nonlocal_C11 = 0.0_pReal constitutive_nonlocal_C11 = 0.0_pReal
constitutive_nonlocal_C12 = 0.0_pReal constitutive_nonlocal_C12 = 0.0_pReal
@ -386,6 +388,7 @@ constitutive_nonlocal_grainboundaryTransmissivity = -1.0_pReal
constitutive_nonlocal_CFLfactor = 2.0_pReal constitutive_nonlocal_CFLfactor = 2.0_pReal
constitutive_nonlocal_fEdgeMultiplication = 0.0_pReal constitutive_nonlocal_fEdgeMultiplication = 0.0_pReal
constitutive_nonlocal_linetensionEffect = 0.0_pReal constitutive_nonlocal_linetensionEffect = 0.0_pReal
constitutive_nonlocal_edgeJogFactor = 1.0_pReal
constitutive_nonlocal_shortRangeStressCorrection = .false. constitutive_nonlocal_shortRangeStressCorrection = .false.
constitutive_nonlocal_deadZoneScaling = .false. constitutive_nonlocal_deadZoneScaling = .false.
constitutive_nonlocal_probabilisticMultiplication = .false. constitutive_nonlocal_probabilisticMultiplication = .false.
@ -508,6 +511,8 @@ do
constitutive_nonlocal_interactionSlipSlip(it,i) = IO_floatValue(line,positions,1_pInt+it) constitutive_nonlocal_interactionSlipSlip(it,i) = IO_floatValue(line,positions,1_pInt+it)
case('linetension','linetensioneffect','linetension_effect') case('linetension','linetensioneffect','linetension_effect')
constitutive_nonlocal_linetensionEffect(i) = IO_floatValue(line,positions,2_pInt) constitutive_nonlocal_linetensionEffect(i) = IO_floatValue(line,positions,2_pInt)
case('edgejog','edgejogs','edgejogeffect','edgejog_effect')
constitutive_nonlocal_edgeJogFactor(i) = IO_floatValue(line,positions,2_pInt)
case('peierlsstressedge','peierlsstress_edge') case('peierlsstressedge','peierlsstress_edge')
forall (f = 1_pInt:lattice_maxNslipFamily) & forall (f = 1_pInt:lattice_maxNslipFamily) &
constitutive_nonlocal_peierlsStressPerSlipFamily(f,1_pInt,i) = IO_floatValue(line,positions,1_pInt+f) constitutive_nonlocal_peierlsStressPerSlipFamily(f,1_pInt,i) = IO_floatValue(line,positions,1_pInt+f)
@ -612,6 +617,9 @@ enddo
if (constitutive_nonlocal_linetensionEffect(i) < 0.0_pReal .or. constitutive_nonlocal_linetensionEffect(i) > 1.0_pReal) & if (constitutive_nonlocal_linetensionEffect(i) < 0.0_pReal .or. constitutive_nonlocal_linetensionEffect(i) > 1.0_pReal) &
call IO_error(211_pInt,ext_msg='linetension (' & call IO_error(211_pInt,ext_msg='linetension (' &
//constitutive_nonlocal_label//')') //constitutive_nonlocal_label//')')
if (constitutive_nonlocal_edgeJogFactor(i) < 0.0_pReal .or. constitutive_nonlocal_edgeJogFactor(i) > 1.0_pReal) &
call IO_error(211_pInt,ext_msg='edgejog (' &
//constitutive_nonlocal_label//')')
if (constitutive_nonlocal_R(i) < 0.0_pReal) call IO_error(211_pInt,ext_msg='r (' & if (constitutive_nonlocal_R(i) < 0.0_pReal) call IO_error(211_pInt,ext_msg='r (' &
//constitutive_nonlocal_label//')') //constitutive_nonlocal_label//')')
if (constitutive_nonlocal_atomicVolume(i) <= 0.0_pReal) call IO_error(211_pInt,ext_msg='atomicVolume (' & if (constitutive_nonlocal_atomicVolume(i) <= 0.0_pReal) call IO_error(211_pInt,ext_msg='atomicVolume (' &
@ -2500,7 +2508,8 @@ forall (c=1_pInt:2_pInt) &
if (myStructure == 1_pInt) then ! only fcc if (myStructure == 1_pInt) then ! only fcc
forall (s = 1:ns, constitutive_nonlocal_colinearSystem(s,myInstance) > 0_pInt) & forall (s = 1:ns, constitutive_nonlocal_colinearSystem(s,myInstance) > 0_pInt) &
rhoDotAthermalAnnihilation(constitutive_nonlocal_colinearSystem(s,myInstance),1:2) = -rhoDotAthermalAnnihilation(s,10) & rhoDotAthermalAnnihilation(constitutive_nonlocal_colinearSystem(s,myInstance),1:2) = -rhoDotAthermalAnnihilation(s,10) &
* 0.25_pReal * sqrt(rhoForest(s)) * (dUpper(s,2) + dLower(s,2)) * 0.25_pReal * sqrt(rhoForest(s)) * (dUpper(s,2) + dLower(s,2)) &
* constitutive_nonlocal_edgeJogFactor(myInstance)
endif endif