introduced case in dislotwin for bcc (peierls stress as critical stress)
renamed some parameters, now exponents (p,q) for slip are per family, shear band got own ones. exponent for twin (r) now per family fixed bugs in lattice ("empty" interactions should be 1 not zero) see both Phase examples to check what is needed
This commit is contained in:
parent
6781d7d8a5
commit
ef8fbf4dda
|
@ -31,15 +31,15 @@ grainsize 2.0e-5 # Average grain size [m]
|
||||||
SolidSolutionStrength 1.5e8 # Strength due to elements in solid solution
|
SolidSolutionStrength 1.5e8 # Strength due to elements in solid solution
|
||||||
|
|
||||||
### Dislocation glide parameters ###
|
### Dislocation glide parameters ###
|
||||||
Nslip 12
|
Nslip 12 0
|
||||||
slipburgers 2.56e-10 # Burgers vector of slip system [m]
|
slipburgers 2.56e-10 0 # Burgers vector of slip system [m]
|
||||||
rhoedgedip0 1.0 # Initial dislocation density [m/m**3]
|
rhoedgedip0 1.0 0 # Initial dislocation density [m/m**3]
|
||||||
rhoedge0 1.0e12 # Initial dislocation density [m/m**3]
|
rhoedge0 1.0e12 0 # Initial dislocation density [m/m**3]
|
||||||
v0 1.0e-4 # Initial glide velocity [m/s]
|
v0 1.0e-4 0 # Initial glide velocity [m/s]
|
||||||
Qedge 3.7e-19 # Activation energy for dislocation glide [J]
|
Qedge 3.7e-19 0 # Activation energy for dislocation glide [J]
|
||||||
pexponent 1.0 # p-exponent in glide velocity
|
p_slip 1.0 0.0 # p-exponent in glide velocity
|
||||||
qexponent 1.0 # q-exponent in glide velocity
|
q_slip 1.0 0.0 # q-exponent in glide velocity
|
||||||
tau_peierls 0.0 # Peierls stress (only used for bcc materials)
|
|
||||||
# hardening of glide
|
# hardening of glide
|
||||||
CLambdaSlip 10.0 0 # Adj. parameter controlling dislocation mean free path
|
CLambdaSlip 10.0 0 # Adj. parameter controlling dislocation mean free path
|
||||||
D0 4.0e-5 # Vacancy diffusion prefactor [m**2/s]
|
D0 4.0e-5 # Vacancy diffusion prefactor [m**2/s]
|
||||||
|
@ -53,6 +53,8 @@ interactionSlipSlip 0.122 0.122 0.625 0.07 0.137 0.122 # Interaction coefficient
|
||||||
shearbandresistance 180e6
|
shearbandresistance 180e6
|
||||||
shearbandvelocity 1e-4 # set to zero to turn shear banding of
|
shearbandvelocity 1e-4 # set to zero to turn shear banding of
|
||||||
QedgePerSbSystem 3.7e-19 # Activation energy for shear banding [J]
|
QedgePerSbSystem 3.7e-19 # Activation energy for shear banding [J]
|
||||||
|
p_shearband 1.0 # p-exponent in glide velocity
|
||||||
|
q_shearband 1.0 # q-exponent in glide velocity
|
||||||
|
|
||||||
### Twinning parameters ###
|
### Twinning parameters ###
|
||||||
Ntwin 12
|
Ntwin 12
|
||||||
|
@ -60,14 +62,13 @@ twinburgers 1.47e-10 # Burgers vector of twin system [m]
|
||||||
twinsize 5.0e-8 # Twin stack mean thickness [m]
|
twinsize 5.0e-8 # Twin stack mean thickness [m]
|
||||||
L0 442.0 # Length of twin nuclei in Burgers vectors
|
L0 442.0 # Length of twin nuclei in Burgers vectors
|
||||||
maxtwinfraction 1.0 # Maximum admissible twin volume fraction
|
maxtwinfraction 1.0 # Maximum admissible twin volume fraction
|
||||||
Ndot0 0.0 # Number of potential sources per volume per time [1/m**3.s]
|
|
||||||
xc 1.0e-9 # critical distance for formation of twin nucleus
|
xc 1.0e-9 # critical distance for formation of twin nucleus
|
||||||
VcrossSlip 1.67e-29 # cross slip volume
|
VcrossSlip 1.67e-29 # cross slip volume
|
||||||
rexponent 10.0 # r-exponent in twin formation probability
|
r_twin 10.0 # r-exponent in twin formation probability
|
||||||
Cmfptwin 1.0 # Adj. parameter controlling twin mean free path
|
Cmfptwin 1.0 # Adj. parameter controlling twin mean free path
|
||||||
Cthresholdtwin 1.0 # Adj. parameter controlling twin threshold stress
|
Cthresholdtwin 1.0 # Adj. parameter controlling twin threshold stress
|
||||||
interactionSlipTwin 0.0 1.0 1.0 # Dislocation-Twin interaction coefficients
|
interactionSlipTwin 0.0 1.0 1.0 # Dislocation-Twin interaction coefficients
|
||||||
interactionTwinTwin 0.0 1.0 # Twin-Twin interaction coefficients
|
interactionTwinTwin 0.0 1.0 # Twin-Twin interaction coefficients
|
||||||
atol_twinFrac 1.0e-7
|
atol_twinFrac 1.0e-7
|
||||||
SFE_0K -0.0396 # stacking fault energy at zero K; TWIP steel: -0.0526; Cu: -0.0396
|
SFE_0K -0.0396 # stacking fault energy at zero K; TWIP steel: -0.0526; Cu: -0.0396
|
||||||
dSFE_dT 0.0002 # temperature dependence of stacking fault energy
|
dSFE_dT 0.0002 # temperature dependance of stacking fault energy
|
||||||
|
|
|
@ -17,47 +17,19 @@ SolidSolutionStrength 1.5e8 # Strength due to elements in solid solution
|
||||||
#per family
|
#per family
|
||||||
Nslip 12 0
|
Nslip 12 0
|
||||||
slipburgers 2.72e-10 # Burgers vector of slip system [m]
|
slipburgers 2.72e-10 # Burgers vector of slip system [m]
|
||||||
rhoedge0 1.0e12 # Initial dislocation density [m/m**3]
|
rhoedge0 1.0e12 # Initial edge dislocation density [m/m**3]
|
||||||
rhoedgedip0 1.0 # Initial dislocation density [m/m**3]
|
rhoedgedip0 1.0 # Initial edged dipole dislocation density [m/m**3]
|
||||||
v0 1.0e-4 # Initial glide velocity [m/s]
|
v0 1.0e-4 # Initial glide velocity [m/s]
|
||||||
Qedge 2.725e-19 # Activation energy for dislocation glide [J]
|
Qedge 2.725e-19 # Activation energy for dislocation glide [J]
|
||||||
pexponent 0.78 # p-exponent in glide velocity
|
p_slip 0.78 # p-exponent in glide velocity
|
||||||
qexponent 1.58 # q-exponent in glide velocity
|
q_slip 1.58 # q-exponent in glide velocity
|
||||||
tau_peierls 2.03e9 # peierls stress (for bcc)
|
tau_peierls 2.03e9 # peierls stress (for bcc)
|
||||||
|
|
||||||
|
|
||||||
#hardening
|
#hardening
|
||||||
CLambdaSlip 10.0 # Adj. parameter controlling dislocation mean free path
|
CLambdaSlip 10.0 # Adj. parameter controlling dislocation mean free path
|
||||||
D0 4.0e-5 # Vacancy diffusion prefactor [m**2/s]
|
D0 4.0e-5 # Vacancy diffusion prefactor [m**2/s]
|
||||||
Qsd 4.5e-19 # Activation energy for climb [J]
|
Qsd 4.5e-19 # Activation energy for climb [J]
|
||||||
Catomicvolume 1.0 # Adj. parameter controlling the atomic volume [in b]
|
Catomicvolume 1.0 # Adj. parameter controlling the atomic volume [in b]
|
||||||
Cedgedipmindistance 1.0 # Adj. parameter controlling the minimum dipole distance [in b]
|
Cedgedipmindistance 1.0 # Adj. parameter controlling the minimum dipole distance [in b]
|
||||||
atol_rho 1.0
|
|
||||||
interactionSlipSlip 0.122 0.122 0.625 0.07 0.137 0.122 # Interaction coefficients (Kubin et al. 2008)
|
|
||||||
|
|
||||||
### no shear banding, no twinning
|
|
||||||
shearbandvelocity 0.0 # no shear banding
|
|
||||||
Ntwin 0 # no shear banding
|
|
||||||
|
|
||||||
### Shearband parameters ###
|
|
||||||
|
|
||||||
shearbandresistance 180e6
|
|
||||||
QedgePerSbSystem 3.7e-19 # Activation energy for shear banding [J]
|
|
||||||
|
|
||||||
### twinning parameter ###
|
|
||||||
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]
|
|
||||||
xc 1.0e-9 # critical distance for formation of twin nucleus
|
|
||||||
VcrossSlip 1.67e-29 # cross slip volume
|
|
||||||
rexponent 10.0 # r-exponent in twin formation probability
|
|
||||||
Cmfptwin 1.0 # Adj. parameter controlling twin mean free path
|
|
||||||
Cthresholdtwin 1.0 # Adj. parameter controlling twin threshold stress
|
|
||||||
interactionSlipTwin 0.0 0.0 0.0 # Dislocation-Twin interaction coefficients
|
|
||||||
interactionTwinTwin 0.0 0.0 # Twin-Twin interaction coefficients
|
|
||||||
atol_twinFrac 1.0e-7
|
|
||||||
SFE_0K -0.0396 # stacking fault energy at zero K; TWIP steel: -0.0526; Cu: -0.0396
|
|
||||||
dSFE_dT 0.0002 # temperature dependance of stacking fault energy
|
|
||||||
|
|
||||||
|
|
|
@ -159,7 +159,7 @@ subroutine constitutive_init
|
||||||
if (any(phase_plasticity == PLASTICITY_PHENOPOWERLAW_ID)) call constitutive_phenopowerlaw_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_PHENOPOWERLAW_ID)) call constitutive_phenopowerlaw_init(FILEUNIT)
|
||||||
if (any(phase_plasticity == PLASTICITY_TITANMOD_ID)) call constitutive_titanmod_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_TITANMOD_ID)) call constitutive_titanmod_init(FILEUNIT)
|
||||||
if (any(phase_plasticity == PLASTICITY_DISLOTWIN_ID)) call constitutive_dislotwin_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_DISLOTWIN_ID)) call constitutive_dislotwin_init(FILEUNIT)
|
||||||
if (any(phase_plasticity == PLASTICITY_NONLOCAL_ID)) call constitutive_nonlocal_init(FILEUNIT)
|
if (any(phase_plasticity == PLASTICITY_NONLOCAL_ID)) call constitutive_nonlocal_init(FILEUNIT)
|
||||||
close(FILEUNIT)
|
close(FILEUNIT)
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- constitutive init -+>>>'
|
write(6,'(/,a)') ' <<<+- constitutive init -+>>>'
|
||||||
|
|
|
@ -326,7 +326,7 @@ integer(pInt), intent(in) :: fileUnit
|
||||||
integer(pInt), parameter :: MAXNCHUNKS = LATTICE_maxNinteraction + 1_pInt
|
integer(pInt), parameter :: MAXNCHUNKS = LATTICE_maxNinteraction + 1_pInt
|
||||||
integer(pInt), &
|
integer(pInt), &
|
||||||
dimension(1_pInt+2_pInt*MAXNCHUNKS) :: positions
|
dimension(1_pInt+2_pInt*MAXNCHUNKS) :: positions
|
||||||
integer(pInt) :: phase = 0_pInt, &
|
integer(pInt) :: phase, &
|
||||||
maxNinstances, &
|
maxNinstances, &
|
||||||
maxTotalNslip, &
|
maxTotalNslip, &
|
||||||
f, & ! index of my slip family
|
f, & ! index of my slip family
|
||||||
|
@ -891,9 +891,9 @@ allocate(peierlsStress(maxTotalNslip,2,maxNinstances),
|
||||||
allocate(colinearSystem(maxTotalNslip,maxNinstances), source=0_pInt)
|
allocate(colinearSystem(maxTotalNslip,maxNinstances), source=0_pInt)
|
||||||
allocate(nonSchmidProjection(3,3,4,maxTotalNslip,maxNinstances), source=0.0_pReal)
|
allocate(nonSchmidProjection(3,3,4,maxTotalNslip,maxNinstances), source=0.0_pReal)
|
||||||
|
|
||||||
|
|
||||||
initializeInstances: do phase = 1_pInt, size(phase_plasticity)
|
initializeInstances: do phase = 1_pInt, size(phase_plasticity)
|
||||||
if (phase_plasticity(phase) == PLASTICITY_NONLOCAL_ID) then
|
if (phase_plasticity(phase) == PLASTICITY_NONLOCAL_ID) then
|
||||||
|
instance = phase_plasticityInstance(phase)
|
||||||
!*** Inverse lookup of my slip system family and the slip system in lattice
|
!*** Inverse lookup of my slip system family and the slip system in lattice
|
||||||
|
|
||||||
l = 0_pInt
|
l = 0_pInt
|
||||||
|
@ -1128,10 +1128,10 @@ allocate(nonSchmidProjection(3,3,4,maxTotalNslip,maxNinstances),
|
||||||
nonSchmidProjection(1:3,1:3,2,s,instance) = nonSchmidProjection(1:3,1:3,2,s,instance) &
|
nonSchmidProjection(1:3,1:3,2,s,instance) = nonSchmidProjection(1:3,1:3,2,s,instance) &
|
||||||
+ nonSchmidCoeff(l,instance) * lattice_Sslip(1:3,1:3,2*l+1,slipSystemLattice(s,instance),phase)
|
+ nonSchmidCoeff(l,instance) * lattice_Sslip(1:3,1:3,2*l+1,slipSystemLattice(s,instance),phase)
|
||||||
enddo
|
enddo
|
||||||
nonSchmidProjection(1:3,1:3,3,s,instance) = -nonSchmidProjection(1:3,1:3,2,s,phase)
|
nonSchmidProjection(1:3,1:3,3,s,instance) = -nonSchmidProjection(1:3,1:3,2,s,instance)
|
||||||
nonSchmidProjection(1:3,1:3,4,s,instance) = -nonSchmidProjection(1:3,1:3,1,s,phase)
|
nonSchmidProjection(1:3,1:3,4,s,instance) = -nonSchmidProjection(1:3,1:3,1,s,instance)
|
||||||
forall (t = 1:4) &
|
forall (t = 1:4) &
|
||||||
nonSchmidProjection(1:3,1:3,t,s,instance) = nonSchmidProjection(1:3,1:3,t,s,phase) &
|
nonSchmidProjection(1:3,1:3,t,s,instance) = nonSchmidProjection(1:3,1:3,t,s,instance) &
|
||||||
+ lattice_Sslip(1:3,1:3,1,slipSystemLattice(s,instance),phase)
|
+ lattice_Sslip(1:3,1:3,1,slipSystemLattice(s,instance),phase)
|
||||||
enddo
|
enddo
|
||||||
endif
|
endif
|
||||||
|
@ -1194,6 +1194,8 @@ maxNinstances = int(count(phase_plasticity == PLASTICITY_NONLOCAL_ID),pInt)
|
||||||
do e = 1_pInt,mesh_NcpElems
|
do e = 1_pInt,mesh_NcpElems
|
||||||
do i = 1_pInt,FE_Nips(FE_geomtype(mesh_element(2,e)))
|
do i = 1_pInt,FE_Nips(FE_geomtype(mesh_element(2,e)))
|
||||||
if (PLASTICITY_NONLOCAL_ID == phase_plasticity(material_phase(1,i,e))) &
|
if (PLASTICITY_NONLOCAL_ID == phase_plasticity(material_phase(1,i,e))) &
|
||||||
|
write(6,*) shape(state(1,i,e)%p)
|
||||||
|
flush(6)
|
||||||
state(1,i,e)%p = 0.0_pReal
|
state(1,i,e)%p = 0.0_pReal
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
@ -1207,7 +1209,7 @@ do instance = 1_pInt,maxNinstances
|
||||||
|
|
||||||
! get the total volume of the instance
|
! get the total volume of the instance
|
||||||
|
|
||||||
minimumIpVolume = 1e99_pReal
|
minimumIpVolume = 1e99_pReal !use huge here?
|
||||||
totalVolume = 0.0_pReal
|
totalVolume = 0.0_pReal
|
||||||
do e = 1_pInt,mesh_NcpElems
|
do e = 1_pInt,mesh_NcpElems
|
||||||
do i = 1_pInt,FE_Nips(FE_geomtype(mesh_element(2,e)))
|
do i = 1_pInt,FE_Nips(FE_geomtype(mesh_element(2,e)))
|
||||||
|
|
|
@ -185,7 +185,7 @@ module lattice
|
||||||
!< 2: screw trace between slip system and twin habit plane (easy cross slip)
|
!< 2: screw trace between slip system and twin habit plane (easy cross slip)
|
||||||
!< 3: other interaction
|
!< 3: other interaction
|
||||||
integer(pInt), dimension(lattice_fcc_Ntwin,lattice_fcc_Nslip), parameter, public :: &
|
integer(pInt), dimension(lattice_fcc_Ntwin,lattice_fcc_Nslip), parameter, public :: &
|
||||||
lattice_fcc_interactionTwinSlip = 0_pInt !< Twin--Slip interaction types for fcc
|
lattice_fcc_interactionTwinSlip = 1_pInt !< Twin--Slip interaction types for fcc
|
||||||
|
|
||||||
integer(pInt), dimension(lattice_fcc_Ntwin,lattice_fcc_Ntwin), parameter,public :: &
|
integer(pInt), dimension(lattice_fcc_Ntwin,lattice_fcc_Ntwin), parameter,public :: &
|
||||||
lattice_fcc_interactionTwinTwin = reshape(int( [&
|
lattice_fcc_interactionTwinTwin = reshape(int( [&
|
||||||
|
@ -360,7 +360,7 @@ module lattice
|
||||||
!< 2: screw trace between slip system and twin habit plane (easy cross slip)
|
!< 2: screw trace between slip system and twin habit plane (easy cross slip)
|
||||||
!< 3: other interaction
|
!< 3: other interaction
|
||||||
integer(pInt), dimension(lattice_bcc_Ntwin,lattice_bcc_Nslip), parameter, public :: &
|
integer(pInt), dimension(lattice_bcc_Ntwin,lattice_bcc_Nslip), parameter, public :: &
|
||||||
lattice_bcc_interactionTwinSlip = 0_pInt !< Twin--slip interaction types for bcc @todo not implemented yet
|
lattice_bcc_interactionTwinSlip = 1_pInt !< Twin--slip interaction types for bcc @todo not implemented yet
|
||||||
|
|
||||||
integer(pInt), dimension(lattice_bcc_Ntwin,lattice_bcc_Ntwin), parameter, public :: &
|
integer(pInt), dimension(lattice_bcc_Ntwin,lattice_bcc_Ntwin), parameter, public :: &
|
||||||
lattice_bcc_interactionTwinTwin = reshape(int( [&
|
lattice_bcc_interactionTwinTwin = reshape(int( [&
|
||||||
|
@ -1032,17 +1032,17 @@ subroutine lattice_initializeStructure(myPhase,CoverA)
|
||||||
td(1:3,i) = lattice_fcc_systemTwin(1:3,i)
|
td(1:3,i) = lattice_fcc_systemTwin(1:3,i)
|
||||||
tn(1:3,i) = lattice_fcc_systemTwin(4:6,i)
|
tn(1:3,i) = lattice_fcc_systemTwin(4:6,i)
|
||||||
ts(i) = lattice_fcc_shearTwin(i)
|
ts(i) = lattice_fcc_shearTwin(i)
|
||||||
enddo
|
enddo
|
||||||
lattice_NslipSystem(1:lattice_maxNslipFamily,myPhase) = lattice_fcc_NslipSystem
|
lattice_NslipSystem(1:lattice_maxNslipFamily,myPhase) = lattice_fcc_NslipSystem
|
||||||
lattice_NtwinSystem(1:lattice_maxNtwinFamily,myPhase) = lattice_fcc_NtwinSystem
|
lattice_NtwinSystem(1:lattice_maxNtwinFamily,myPhase) = lattice_fcc_NtwinSystem
|
||||||
lattice_NnonSchmid(myPhase) = lattice_fcc_NnonSchmid
|
lattice_NnonSchmid(myPhase) = lattice_fcc_NnonSchmid
|
||||||
lattice_interactionSlipSlip(1:lattice_fcc_Nslip,1:lattice_fcc_Nslip,myPhase) = &
|
lattice_interactionSlipSlip(1:myNslip,1:myNslip,myPhase) = &
|
||||||
lattice_fcc_interactionSlipSlip
|
lattice_fcc_interactionSlipSlip
|
||||||
lattice_interactionSlipTwin(1:lattice_fcc_Nslip,1:lattice_fcc_Ntwin,myPhase) = &
|
lattice_interactionSlipTwin(1:myNslip,1:myNtwin,myPhase) = &
|
||||||
lattice_fcc_interactionSlipTwin
|
lattice_fcc_interactionSlipTwin
|
||||||
lattice_interactionTwinSlip(1:lattice_fcc_Ntwin,1:lattice_fcc_Nslip,myPhase) = &
|
lattice_interactionTwinSlip(1:myNtwin,1:myNslip,myPhase) = &
|
||||||
lattice_fcc_interactionTwinSlip
|
lattice_fcc_interactionTwinSlip
|
||||||
lattice_interactionTwinTwin(1:lattice_fcc_Ntwin,1:lattice_fcc_Ntwin,myPhase) = &
|
lattice_interactionTwinTwin(1:myNtwin,1:myNtwin,myPhase) = &
|
||||||
lattice_fcc_interactionTwinTwin
|
lattice_fcc_interactionTwinTwin
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue