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
|
||||
|
||||
### Dislocation glide parameters ###
|
||||
Nslip 12
|
||||
slipburgers 2.56e-10 # Burgers vector of slip system [m]
|
||||
rhoedgedip0 1.0 # Initial dislocation density [m/m**3]
|
||||
rhoedge0 1.0e12 # Initial dislocation density [m/m**3]
|
||||
v0 1.0e-4 # Initial glide velocity [m/s]
|
||||
Qedge 3.7e-19 # Activation energy for dislocation glide [J]
|
||||
pexponent 1.0 # p-exponent in glide velocity
|
||||
qexponent 1.0 # q-exponent in glide velocity
|
||||
tau_peierls 0.0 # Peierls stress (only used for bcc materials)
|
||||
Nslip 12 0
|
||||
slipburgers 2.56e-10 0 # Burgers vector of slip system [m]
|
||||
rhoedgedip0 1.0 0 # Initial dislocation density [m/m**3]
|
||||
rhoedge0 1.0e12 0 # Initial dislocation density [m/m**3]
|
||||
v0 1.0e-4 0 # Initial glide velocity [m/s]
|
||||
Qedge 3.7e-19 0 # Activation energy for dislocation glide [J]
|
||||
p_slip 1.0 0.0 # p-exponent in glide velocity
|
||||
q_slip 1.0 0.0 # q-exponent in glide velocity
|
||||
|
||||
# hardening of glide
|
||||
CLambdaSlip 10.0 0 # Adj. parameter controlling dislocation mean free path
|
||||
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
|
||||
shearbandvelocity 1e-4 # set to zero to turn shear banding of
|
||||
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 ###
|
||||
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]
|
||||
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
|
||||
r_twin 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 1.0 1.0 # Dislocation-Twin interaction coefficients
|
||||
interactionTwinTwin 0.0 1.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 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
|
||||
Nslip 12 0
|
||||
slipburgers 2.72e-10 # Burgers vector of slip system [m]
|
||||
rhoedge0 1.0e12 # Initial dislocation density [m/m**3]
|
||||
rhoedgedip0 1.0 # Initial dislocation density [m/m**3]
|
||||
rhoedge0 1.0e12 # Initial edge 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]
|
||||
Qedge 2.725e-19 # Activation energy for dislocation glide [J]
|
||||
pexponent 0.78 # p-exponent in glide velocity
|
||||
qexponent 1.58 # q-exponent in glide velocity
|
||||
p_slip 0.78 # p-exponent in glide velocity
|
||||
q_slip 1.58 # q-exponent in glide velocity
|
||||
tau_peierls 2.03e9 # peierls stress (for bcc)
|
||||
|
||||
|
||||
#hardening
|
||||
CLambdaSlip 10.0 # Adj. parameter controlling dislocation mean free path
|
||||
D0 4.0e-5 # Vacancy diffusion prefactor [m**2/s]
|
||||
Qsd 4.5e-19 # Activation energy for climb [J]
|
||||
Catomicvolume 1.0 # Adj. parameter controlling the atomic volume [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_TITANMOD_ID)) call constitutive_titanmod_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)
|
||||
|
||||
write(6,'(/,a)') ' <<<+- constitutive init -+>>>'
|
||||
|
|
|
@ -326,7 +326,7 @@ integer(pInt), intent(in) :: fileUnit
|
|||
integer(pInt), parameter :: MAXNCHUNKS = LATTICE_maxNinteraction + 1_pInt
|
||||
integer(pInt), &
|
||||
dimension(1_pInt+2_pInt*MAXNCHUNKS) :: positions
|
||||
integer(pInt) :: phase = 0_pInt, &
|
||||
integer(pInt) :: phase, &
|
||||
maxNinstances, &
|
||||
maxTotalNslip, &
|
||||
f, & ! index of my slip family
|
||||
|
@ -891,9 +891,9 @@ allocate(peierlsStress(maxTotalNslip,2,maxNinstances),
|
|||
allocate(colinearSystem(maxTotalNslip,maxNinstances), source=0_pInt)
|
||||
allocate(nonSchmidProjection(3,3,4,maxTotalNslip,maxNinstances), source=0.0_pReal)
|
||||
|
||||
|
||||
initializeInstances: do phase = 1_pInt, size(phase_plasticity)
|
||||
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
|
||||
|
||||
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) &
|
||||
+ nonSchmidCoeff(l,instance) * lattice_Sslip(1:3,1:3,2*l+1,slipSystemLattice(s,instance),phase)
|
||||
enddo
|
||||
nonSchmidProjection(1:3,1:3,3,s,instance) = -nonSchmidProjection(1:3,1:3,2,s,phase)
|
||||
nonSchmidProjection(1:3,1:3,4,s,instance) = -nonSchmidProjection(1:3,1:3,1,s,phase)
|
||||
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,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,instance)
|
||||
forall (t = 1:4) &
|
||||
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)
|
||||
enddo
|
||||
endif
|
||||
|
@ -1194,6 +1194,8 @@ maxNinstances = int(count(phase_plasticity == PLASTICITY_NONLOCAL_ID),pInt)
|
|||
do e = 1_pInt,mesh_NcpElems
|
||||
do i = 1_pInt,FE_Nips(FE_geomtype(mesh_element(2,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
|
||||
enddo
|
||||
enddo
|
||||
|
@ -1207,7 +1209,7 @@ do instance = 1_pInt,maxNinstances
|
|||
|
||||
! get the total volume of the instance
|
||||
|
||||
minimumIpVolume = 1e99_pReal
|
||||
minimumIpVolume = 1e99_pReal !use huge here?
|
||||
totalVolume = 0.0_pReal
|
||||
do e = 1_pInt,mesh_NcpElems
|
||||
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)
|
||||
!< 3: other interaction
|
||||
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 :: &
|
||||
lattice_fcc_interactionTwinTwin = reshape(int( [&
|
||||
|
@ -360,7 +360,7 @@ module lattice
|
|||
!< 2: screw trace between slip system and twin habit plane (easy cross slip)
|
||||
!< 3: other interaction
|
||||
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 :: &
|
||||
lattice_bcc_interactionTwinTwin = reshape(int( [&
|
||||
|
@ -1032,17 +1032,17 @@ subroutine lattice_initializeStructure(myPhase,CoverA)
|
|||
td(1:3,i) = lattice_fcc_systemTwin(1:3,i)
|
||||
tn(1:3,i) = lattice_fcc_systemTwin(4:6,i)
|
||||
ts(i) = lattice_fcc_shearTwin(i)
|
||||
enddo
|
||||
enddo
|
||||
lattice_NslipSystem(1:lattice_maxNslipFamily,myPhase) = lattice_fcc_NslipSystem
|
||||
lattice_NtwinSystem(1:lattice_maxNtwinFamily,myPhase) = lattice_fcc_NtwinSystem
|
||||
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_interactionSlipTwin(1:lattice_fcc_Nslip,1:lattice_fcc_Ntwin,myPhase) = &
|
||||
lattice_interactionSlipTwin(1:myNslip,1:myNtwin,myPhase) = &
|
||||
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_interactionTwinTwin(1:lattice_fcc_Ntwin,1:lattice_fcc_Ntwin,myPhase) = &
|
||||
lattice_interactionTwinTwin(1:myNtwin,1:myNtwin,myPhase) = &
|
||||
lattice_fcc_interactionTwinTwin
|
||||
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue