Merge branch 'Dislotwin-climb2' into 'development'
Dislotwin climb2 See merge request damask/DAMASK!94
This commit is contained in:
commit
2aaa5ff8e7
|
@ -390,7 +390,6 @@ Phenopowerlaw_singleSlip:
|
||||||
- master
|
- master
|
||||||
- release
|
- release
|
||||||
|
|
||||||
|
|
||||||
###################################################################################################
|
###################################################################################################
|
||||||
Marc_compileIfort2018_1:
|
Marc_compileIfort2018_1:
|
||||||
stage: compileMarc
|
stage: compileMarc
|
||||||
|
@ -402,7 +401,6 @@ Marc_compileIfort2018_1:
|
||||||
- master
|
- master
|
||||||
- release
|
- release
|
||||||
|
|
||||||
|
|
||||||
###################################################################################################
|
###################################################################################################
|
||||||
Hex_elastic:
|
Hex_elastic:
|
||||||
stage: marc
|
stage: marc
|
||||||
|
@ -440,11 +438,13 @@ J2_plasticBehavior:
|
||||||
- master
|
- master
|
||||||
- release
|
- release
|
||||||
|
|
||||||
|
|
||||||
###################################################################################################
|
###################################################################################################
|
||||||
grid_all_example:
|
grid_all_example:
|
||||||
stage: example
|
stage: example
|
||||||
script: grid_all_example/test.py
|
script: grid_all_example/test.py
|
||||||
|
except:
|
||||||
|
- master
|
||||||
|
- release
|
||||||
|
|
||||||
###################################################################################################
|
###################################################################################################
|
||||||
SpectralRuntime:
|
SpectralRuntime:
|
||||||
|
|
|
@ -53,12 +53,13 @@ module plastic_dislotwin
|
||||||
nu, &
|
nu, &
|
||||||
D0, & !< prefactor for self-diffusion coefficient
|
D0, & !< prefactor for self-diffusion coefficient
|
||||||
Qsd, & !< activation energy for dislocation climb
|
Qsd, & !< activation energy for dislocation climb
|
||||||
D, & !<grain size
|
omega, & !< frequency factor for dislocation climb
|
||||||
|
D, & !< grain size
|
||||||
p_sb, & !< p-exponent in shear band velocity
|
p_sb, & !< p-exponent in shear band velocity
|
||||||
q_sb, & !< q-exponent in shear band velocity
|
q_sb, & !< q-exponent in shear band velocity
|
||||||
CEdgeDipMinDistance, & !<
|
CEdgeDipMinDistance, & !<
|
||||||
i_tw, & !<
|
i_tw, & !<
|
||||||
tau_0, & !<strength due to elements in solid solution
|
tau_0, & !< strength due to elements in solid solution
|
||||||
L_tw, & !< Length of twin nuclei in Burgers vectors
|
L_tw, & !< Length of twin nuclei in Burgers vectors
|
||||||
L_tr, & !< Length of trans nuclei in Burgers vectors
|
L_tr, & !< Length of trans nuclei in Burgers vectors
|
||||||
xc_twin, & !< critical distance for formation of twin nucleus
|
xc_twin, & !< critical distance for formation of twin nucleus
|
||||||
|
@ -104,6 +105,7 @@ module plastic_dislotwin
|
||||||
integer, dimension(:,:), allocatable :: &
|
integer, dimension(:,:), allocatable :: &
|
||||||
fcc_twinNucleationSlipPair ! ToDo: Better name? Is also use for trans
|
fcc_twinNucleationSlipPair ! ToDo: Better name? Is also use for trans
|
||||||
real(pReal), dimension(:,:), allocatable :: &
|
real(pReal), dimension(:,:), allocatable :: &
|
||||||
|
n0_sl, & !< slip system normal
|
||||||
forestProjection, &
|
forestProjection, &
|
||||||
C66
|
C66
|
||||||
real(pReal), dimension(:,:,:), allocatable :: &
|
real(pReal), dimension(:,:,:), allocatable :: &
|
||||||
|
@ -123,6 +125,7 @@ module plastic_dislotwin
|
||||||
integer(kind(undefined_ID)), dimension(:), allocatable :: &
|
integer(kind(undefined_ID)), dimension(:), allocatable :: &
|
||||||
outputID !< ID of each post result output
|
outputID !< ID of each post result output
|
||||||
logical :: &
|
logical :: &
|
||||||
|
ExtendedDislocations, & !< consider split into partials for climb calculation
|
||||||
fccTwinTransNucleation, & !< twinning and transformation models are for fcc
|
fccTwinTransNucleation, & !< twinning and transformation models are for fcc
|
||||||
dipoleFormation !< flag indicating consideration of dipole formation
|
dipoleFormation !< flag indicating consideration of dipole formation
|
||||||
end type !< container type for internal constitutive parameters
|
end type !< container type for internal constitutive parameters
|
||||||
|
@ -251,6 +254,8 @@ subroutine plastic_dislotwin_init
|
||||||
prm%forestProjection = lattice_forestProjection (prm%N_sl,config%getString('lattice_structure'),&
|
prm%forestProjection = lattice_forestProjection (prm%N_sl,config%getString('lattice_structure'),&
|
||||||
config%getFloat('c/a',defaultVal=0.0_pReal))
|
config%getFloat('c/a',defaultVal=0.0_pReal))
|
||||||
|
|
||||||
|
prm%n0_sl = lattice_slip_normal(prm%N_sl,config%getString('lattice_structure'),&
|
||||||
|
config%getFloat('c/a',defaultVal=0.0_pReal))
|
||||||
prm%fccTwinTransNucleation = merge(.true., .false., lattice_structure(p) == LATTICE_FCC_ID) &
|
prm%fccTwinTransNucleation = merge(.true., .false., lattice_structure(p) == LATTICE_FCC_ID) &
|
||||||
.and. (prm%N_sl(1) == 12)
|
.and. (prm%N_sl(1) == 12)
|
||||||
if(prm%fccTwinTransNucleation) &
|
if(prm%fccTwinTransNucleation) &
|
||||||
|
@ -272,6 +277,19 @@ subroutine plastic_dislotwin_init
|
||||||
prm%D0 = config%getFloat('d0')
|
prm%D0 = config%getFloat('d0')
|
||||||
prm%Qsd = config%getFloat('qsd')
|
prm%Qsd = config%getFloat('qsd')
|
||||||
prm%atomicVolume = config%getFloat('catomicvolume') * prm%b_sl**3.0_pReal
|
prm%atomicVolume = config%getFloat('catomicvolume') * prm%b_sl**3.0_pReal
|
||||||
|
prm%ExtendedDislocations = config%keyExists('/extend_dislocations/')
|
||||||
|
if (prm%ExtendedDislocations) then
|
||||||
|
prm%SFE_0K = config%getFloat('sfe_0k')
|
||||||
|
prm%dSFE_dT = config%getFloat('dsfe_dt')
|
||||||
|
endif
|
||||||
|
|
||||||
|
! multiplication factor according to crystal structure (nearest neighbors bcc vs fcc/hex)
|
||||||
|
!@details: Refer: Argon & Moffat, Acta Metallurgica, Vol. 29, pg 293 to 299, 1981
|
||||||
|
prm%omega = config%getFloat('omega', defaultVal = 1000.0_pReal) &
|
||||||
|
* merge(12.0_pReal, &
|
||||||
|
8.0_pReal, &
|
||||||
|
lattice_structure(p) == LATTICE_FCC_ID .or. lattice_structure(p) == LATTICE_HEX_ID)
|
||||||
|
|
||||||
|
|
||||||
! expand: family => system
|
! expand: family => system
|
||||||
prm%rho_mob_0 = math_expand(prm%rho_mob_0, prm%N_sl)
|
prm%rho_mob_0 = math_expand(prm%rho_mob_0, prm%N_sl)
|
||||||
|
@ -740,8 +758,11 @@ subroutine plastic_dislotwin_dotState(Mp,T,instance,of)
|
||||||
f_unrotated, &
|
f_unrotated, &
|
||||||
VacancyDiffusion, &
|
VacancyDiffusion, &
|
||||||
rho_dip_distance, &
|
rho_dip_distance, &
|
||||||
v_cl, &
|
v_cl, & !< climb velocity
|
||||||
tau
|
Gamma, & !< stacking fault energy
|
||||||
|
tau, &
|
||||||
|
sigma_cl, & !< climb stress
|
||||||
|
b_d !< ratio of burgers vector to stacking fault width
|
||||||
real(pReal), dimension(param(instance)%sum_N_sl) :: &
|
real(pReal), dimension(param(instance)%sum_N_sl) :: &
|
||||||
dot_rho_dip_formation, &
|
dot_rho_dip_formation, &
|
||||||
dot_rho_dip_climb, &
|
dot_rho_dip_climb, &
|
||||||
|
@ -786,8 +807,17 @@ subroutine plastic_dislotwin_dotState(Mp,T,instance,of)
|
||||||
if (dEq0(rho_dip_distance-rho_dip_distance_min(i))) then
|
if (dEq0(rho_dip_distance-rho_dip_distance_min(i))) then
|
||||||
dot_rho_dip_climb(i) = 0.0_pReal
|
dot_rho_dip_climb(i) = 0.0_pReal
|
||||||
else
|
else
|
||||||
v_cl = 3.0_pReal*prm%mu*VacancyDiffusion*prm%atomicVolume(i) &
|
!@details: Refer: Argon & Moffat, Acta Metallurgica, Vol. 29, pg 293 to 299, 1981
|
||||||
/ (2.0_pReal*PI*kB*T*(rho_dip_distance+rho_dip_distance_min(i)))
|
sigma_cl = dot_product(prm%n0_sl(1:3,i),matmul(Mp,prm%n0_sl(1:3,i)))
|
||||||
|
if (prm%ExtendedDislocations) then
|
||||||
|
Gamma = prm%SFE_0K + prm%dSFE_dT * T
|
||||||
|
b_d = 24.0_pReal*PI*(1.0_pReal - prm%nu)/(2.0_pReal + prm%nu)* Gamma/(prm%mu*prm%b_sl(i))
|
||||||
|
else
|
||||||
|
b_d = 1.0_pReal
|
||||||
|
endif
|
||||||
|
v_cl = 2.0_pReal*prm%omega*b_d**2.0_pReal*exp(-prm%Qsd/(kB*T)) &
|
||||||
|
* (exp(abs(sigma_cl)*prm%b_sl(i)**3.0_pReal/(kB*T)) - 1.0_pReal)
|
||||||
|
|
||||||
dot_rho_dip_climb(i) = 4.0_pReal*v_cl*stt%rho_dip(i,of) &
|
dot_rho_dip_climb(i) = 4.0_pReal*v_cl*stt%rho_dip(i,of) &
|
||||||
/ (rho_dip_distance-rho_dip_distance_min(i))
|
/ (rho_dip_distance-rho_dip_distance_min(i))
|
||||||
endif
|
endif
|
||||||
|
|
Loading…
Reference in New Issue