Added 'dislocation-type' dependent interactions. Ideal for hexagonal and BCC structures.
This commit is contained in:
parent
da53656c9a
commit
ec4269bdd8
|
@ -2,6 +2,67 @@
|
||||||
!************************************
|
!************************************
|
||||||
!* Module: CONSTITUTIVE *
|
!* Module: CONSTITUTIVE *
|
||||||
!************************************
|
!************************************
|
||||||
|
! Parameters for titanium
|
||||||
|
! [titanmod]
|
||||||
|
! constitution titanmod
|
||||||
|
! (output) rhoedge
|
||||||
|
! (output) rhoscrew
|
||||||
|
! (output) velocity_edge
|
||||||
|
! (output) velocity_screw
|
||||||
|
! (output) rss_slip
|
||||||
|
! (output) gamma_dot
|
||||||
|
! (output) resistance_edge
|
||||||
|
! (output) resistance_screw
|
||||||
|
! (output) segment_edge
|
||||||
|
! (output) segment_screw
|
||||||
|
! (output) total_generation
|
||||||
|
! (output) total_annihilation
|
||||||
|
! (output) total_density
|
||||||
|
! lattice_structure hex
|
||||||
|
! covera_ratio 1.587
|
||||||
|
! c11 162.2e9
|
||||||
|
! c12 91.8e9
|
||||||
|
! c13 68.8e9
|
||||||
|
! c33 180.5e9
|
||||||
|
! c44 46.7e9
|
||||||
|
! nslip 3 3 6 0 # per family
|
||||||
|
! ntwin 0 0 0 0 # per family
|
||||||
|
! rho_edge0 1.66e9 1.66e9 1.66e9 1.66e9
|
||||||
|
! rho_screw0 1.66e9 1.66e9 1.66e9 1.66e9
|
||||||
|
! slipburgers 2.86e-10 2.86e-10 2.86e-10 2.86e-10 # per family
|
||||||
|
! twinburgers 2.86e-10 2.86e-10 2.86e-10 2.86e-10
|
||||||
|
! f0 3.0e-19 3.0e-19 3.0e-19 3.0e-19
|
||||||
|
! v0e 1e-1 10e0 1e0 1e0
|
||||||
|
! v0s 1e-1 1e0 1e0 1e0
|
||||||
|
! ndot0 1 1 1 1
|
||||||
|
! twinsize 1e-05 5e-05 1e-05 1e-05
|
||||||
|
! celambdaslip 1.0 1.0 1.0 1.0
|
||||||
|
! cslambdaslip 1.0 1.0 1.0 1.0
|
||||||
|
! rlengthscrew 1e-6 1e-6 1e-6 1e-6
|
||||||
|
! grainsize 10e-6
|
||||||
|
! maxtwinfraction 0.7
|
||||||
|
! pe 0.61 0.45 0.61 0.61
|
||||||
|
! ps 0.61 0.45 0.61 0.61
|
||||||
|
! qe 1.40 1.60 1.40 1.40
|
||||||
|
! qs 1.40 1.60 1.40 1.40
|
||||||
|
! rexponent 0.2 0.2 0.2 0.2
|
||||||
|
! d0 0.2e-5 0.2e-5 0.2e-5 0.2e-5
|
||||||
|
! qsd 3.0e-19 3.0e-19 3.0e-19 3.0e-19
|
||||||
|
! cmfptwin 0.5
|
||||||
|
! cthresholdtwin 0.1
|
||||||
|
! cedgedipmindistance 50
|
||||||
|
! catomicvolume 10e-15
|
||||||
|
! tau0e 20e6 24e6 47e6 47e6 # per family
|
||||||
|
! tau0s 20e6 24e6 50e6 50e6 # per family
|
||||||
|
! capre 1.6e-9 5.6e-9 10.6e-9 10.6e-9
|
||||||
|
! caprs 10.6e-9 110.6e-9 10.6e-9 10.6e-9
|
||||||
|
! # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
||||||
|
! interactionslipslip 0.15 0.07 0.10 0.10 0.25 0.15 0.15 0.15 0.65 0.15 0.65 0.65 0.65 0.65 0.65 0.15 0.65 0.65 0.65 0.65
|
||||||
|
! interactionsliptwin 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
|
||||||
|
! interactiontwinslip 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
|
||||||
|
! interactiontwintwin 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
|
||||||
|
! relevantRho 1.e1
|
||||||
|
|
||||||
! Parameters for aluminum
|
! Parameters for aluminum
|
||||||
! [alumod]
|
! [alumod]
|
||||||
! constitution titanmod
|
! constitution titanmod
|
||||||
|
@ -190,10 +251,16 @@ real(pReal), dimension(:,:), allocatable :: constitutive_titanmod_
|
||||||
constitutive_titanmod_CsLambdaSlipPerSlipFamily, & ! Adj. parameter for distance between 2 forest dislocations for each slip family and instance
|
constitutive_titanmod_CsLambdaSlipPerSlipFamily, & ! Adj. parameter for distance between 2 forest dislocations for each slip family and instance
|
||||||
constitutive_titanmod_CsLambdaSlipPerSlipSystem, & ! Adj. parameter for distance between 2 forest dislocations for each slip system and instance
|
constitutive_titanmod_CsLambdaSlipPerSlipSystem, & ! Adj. parameter for distance between 2 forest dislocations for each slip system and instance
|
||||||
constitutive_titanmod_interactionSlipSlip, & ! coefficients for slip-slip interaction for each interaction type and instance
|
constitutive_titanmod_interactionSlipSlip, & ! coefficients for slip-slip interaction for each interaction type and instance
|
||||||
constitutive_titanmod_interactionSlipTwin, & ! coefficients for slip-twin interaction for each interaction type and instance
|
constitutive_titanmod_interaction_ee, & ! coefficients for e-e interaction for each interaction type and instance
|
||||||
|
constitutive_titanmod_interaction_ss, & ! coefficients for s-s interaction for each interaction type and instance
|
||||||
|
constitutive_titanmod_interaction_es, & ! coefficients for e-s-twin interaction for each interaction type and instance
|
||||||
|
constitutive_titanmod_interactionSlipTwin, & ! coefficients for twin-slip interaction for each interaction type and instance
|
||||||
constitutive_titanmod_interactionTwinSlip, & ! coefficients for twin-slip interaction for each interaction type and instance
|
constitutive_titanmod_interactionTwinSlip, & ! coefficients for twin-slip interaction for each interaction type and instance
|
||||||
constitutive_titanmod_interactionTwinTwin ! coefficients for twin-twin interaction for each interaction type and instance
|
constitutive_titanmod_interactionTwinTwin ! coefficients for twin-twin interaction for each interaction type and instance
|
||||||
real(pReal), dimension(:,:,:), allocatable :: constitutive_titanmod_interactionMatrixSlipSlip, & ! interaction matrix of the different slip systems for each instance
|
real(pReal), dimension(:,:,:), allocatable :: constitutive_titanmod_interactionMatrixSlipSlip, & ! interaction matrix of the different slip systems for each instance
|
||||||
|
constitutive_titanmod_interactionMatrix_ee, & ! interaction matrix of e-e for each instance
|
||||||
|
constitutive_titanmod_interactionMatrix_ss, & ! interaction matrix of s-s for each instance
|
||||||
|
constitutive_titanmod_interactionMatrix_es, & ! interaction matrix of e-s for each instance
|
||||||
constitutive_titanmod_interactionMatrixSlipTwin, & ! interaction matrix of slip systems with twin systems for each instance
|
constitutive_titanmod_interactionMatrixSlipTwin, & ! interaction matrix of slip systems with twin systems for each instance
|
||||||
constitutive_titanmod_interactionMatrixTwinSlip, & ! interaction matrix of twin systems with slip systems for each instance
|
constitutive_titanmod_interactionMatrixTwinSlip, & ! interaction matrix of twin systems with slip systems for each instance
|
||||||
constitutive_titanmod_interactionMatrixTwinTwin, & ! interaction matrix of the different twin systems for each instance
|
constitutive_titanmod_interactionMatrixTwinTwin, & ! interaction matrix of the different twin systems for each instance
|
||||||
|
@ -228,7 +295,8 @@ integer(pInt), intent(in) :: file
|
||||||
!* Local variables
|
!* Local variables
|
||||||
integer(pInt), parameter :: maxNchunks = 21
|
integer(pInt), parameter :: maxNchunks = 21
|
||||||
integer(pInt), dimension(1+2*maxNchunks) :: positions
|
integer(pInt), dimension(1+2*maxNchunks) :: positions
|
||||||
integer(pInt) section,maxNinstance,f,i,j,k,l,m,n,o,p,q,r,s,s1,s2,t1,t2,ns,nt,output,mySize,myStructure,maxTotalNslip,maxTotalNtwin
|
integer(pInt) section,maxNinstance,f,i,j,k,l,m,n,o,p,q,r,s,s1,s2,t1,t2,ns,nt,output,mySize,myStructure,maxTotalNslip, &
|
||||||
|
maxTotalNtwin
|
||||||
character(len=64) tag
|
character(len=64) tag
|
||||||
character(len=1024) line
|
character(len=1024) line
|
||||||
|
|
||||||
|
@ -351,10 +419,16 @@ constitutive_titanmod_ps_PerSlipFamily = 0.0_pReal
|
||||||
constitutive_titanmod_qe_PerSlipFamily = 0.0_pReal
|
constitutive_titanmod_qe_PerSlipFamily = 0.0_pReal
|
||||||
constitutive_titanmod_qs_PerSlipFamily = 0.0_pReal
|
constitutive_titanmod_qs_PerSlipFamily = 0.0_pReal
|
||||||
allocate(constitutive_titanmod_interactionSlipSlip(lattice_maxNinteraction,maxNinstance))
|
allocate(constitutive_titanmod_interactionSlipSlip(lattice_maxNinteraction,maxNinstance))
|
||||||
|
allocate(constitutive_titanmod_interaction_ee(lattice_maxNinteraction,maxNinstance))
|
||||||
|
allocate(constitutive_titanmod_interaction_ss(lattice_maxNinteraction,maxNinstance))
|
||||||
|
allocate(constitutive_titanmod_interaction_es(lattice_maxNinteraction,maxNinstance))
|
||||||
allocate(constitutive_titanmod_interactionSlipTwin(lattice_maxNinteraction,maxNinstance))
|
allocate(constitutive_titanmod_interactionSlipTwin(lattice_maxNinteraction,maxNinstance))
|
||||||
allocate(constitutive_titanmod_interactionTwinSlip(lattice_maxNinteraction,maxNinstance))
|
allocate(constitutive_titanmod_interactionTwinSlip(lattice_maxNinteraction,maxNinstance))
|
||||||
allocate(constitutive_titanmod_interactionTwinTwin(lattice_maxNinteraction,maxNinstance))
|
allocate(constitutive_titanmod_interactionTwinTwin(lattice_maxNinteraction,maxNinstance))
|
||||||
constitutive_titanmod_interactionSlipSlip = 0.0_pReal
|
constitutive_titanmod_interactionSlipSlip = 0.0_pReal
|
||||||
|
constitutive_titanmod_interaction_ee = 0.0_pReal
|
||||||
|
constitutive_titanmod_interaction_ss = 0.0_pReal
|
||||||
|
constitutive_titanmod_interaction_ss = 0.0_pReal
|
||||||
constitutive_titanmod_interactionSlipTwin = 0.0_pReal
|
constitutive_titanmod_interactionSlipTwin = 0.0_pReal
|
||||||
constitutive_titanmod_interactionTwinSlip = 0.0_pReal
|
constitutive_titanmod_interactionTwinSlip = 0.0_pReal
|
||||||
constitutive_titanmod_interactionTwinTwin = 0.0_pReal
|
constitutive_titanmod_interactionTwinTwin = 0.0_pReal
|
||||||
|
@ -475,7 +549,8 @@ do ! read thru sections of
|
||||||
case ('rlengthscrew')
|
case ('rlengthscrew')
|
||||||
forall (j = 1:lattice_maxNslipFamily) &
|
forall (j = 1:lattice_maxNslipFamily) &
|
||||||
constitutive_titanmod_rlengthscrew_PerSlipFamily(j,i) = IO_floatValue(line,positions,1+j)
|
constitutive_titanmod_rlengthscrew_PerSlipFamily(j,i) = IO_floatValue(line,positions,1+j)
|
||||||
write(6,*) tag,constitutive_titanmod_rlengthscrew_PerSlipFamily(1,i),constitutive_titanmod_rlengthscrew_PerSlipFamily(2,i), &
|
write(6,*) tag,constitutive_titanmod_rlengthscrew_PerSlipFamily(1,i), &
|
||||||
|
constitutive_titanmod_rlengthscrew_PerSlipFamily(2,i), &
|
||||||
constitutive_titanmod_rlengthscrew_PerSlipFamily(3,i), constitutive_titanmod_rlengthscrew_PerSlipFamily(4,i)
|
constitutive_titanmod_rlengthscrew_PerSlipFamily(3,i), constitutive_titanmod_rlengthscrew_PerSlipFamily(4,i)
|
||||||
case ('ndot0')
|
case ('ndot0')
|
||||||
forall (j = 1:lattice_maxNtwinFamily) &
|
forall (j = 1:lattice_maxNtwinFamily) &
|
||||||
|
@ -547,6 +622,18 @@ do ! read thru sections of
|
||||||
forall (j = 1:lattice_maxNinteraction) &
|
forall (j = 1:lattice_maxNinteraction) &
|
||||||
constitutive_titanmod_interactionSlipSlip(j,i) = IO_floatValue(line,positions,1+j)
|
constitutive_titanmod_interactionSlipSlip(j,i) = IO_floatValue(line,positions,1+j)
|
||||||
write(6,*) tag
|
write(6,*) tag
|
||||||
|
case ('interactionee')
|
||||||
|
forall (j = 1:lattice_maxNinteraction) &
|
||||||
|
constitutive_titanmod_interaction_ee(j,i) = IO_floatValue(line,positions,1+j)
|
||||||
|
write(6,*) tag
|
||||||
|
case ('interactionss')
|
||||||
|
forall (j = 1:lattice_maxNinteraction) &
|
||||||
|
constitutive_titanmod_interaction_ss(j,i) = IO_floatValue(line,positions,1+j)
|
||||||
|
write(6,*) tag
|
||||||
|
case ('interactiones')
|
||||||
|
forall (j = 1:lattice_maxNinteraction) &
|
||||||
|
constitutive_titanmod_interaction_es(j,i) = IO_floatValue(line,positions,1+j)
|
||||||
|
write(6,*) tag
|
||||||
case ('interactionsliptwin')
|
case ('interactionsliptwin')
|
||||||
forall (j = 1:lattice_maxNinteraction) &
|
forall (j = 1:lattice_maxNinteraction) &
|
||||||
constitutive_titanmod_interactionSlipTwin(j,i) = IO_floatValue(line,positions,1+j)
|
constitutive_titanmod_interactionSlipTwin(j,i) = IO_floatValue(line,positions,1+j)
|
||||||
|
@ -655,12 +742,18 @@ constitutive_titanmod_CeLambdaSlipPerSlipSystem = 0.0_pReal
|
||||||
constitutive_titanmod_CsLambdaSlipPerSlipSystem = 0.0_pReal
|
constitutive_titanmod_CsLambdaSlipPerSlipSystem = 0.0_pReal
|
||||||
|
|
||||||
allocate(constitutive_titanmod_interactionMatrixSlipSlip(maxTotalNslip,maxTotalNslip,maxNinstance))
|
allocate(constitutive_titanmod_interactionMatrixSlipSlip(maxTotalNslip,maxTotalNslip,maxNinstance))
|
||||||
|
allocate(constitutive_titanmod_interactionMatrix_ee(maxTotalNslip,maxTotalNslip,maxNinstance))
|
||||||
|
allocate(constitutive_titanmod_interactionMatrix_ss(maxTotalNslip,maxTotalNslip,maxNinstance))
|
||||||
|
allocate(constitutive_titanmod_interactionMatrix_es(maxTotalNslip,maxTotalNslip,maxNinstance))
|
||||||
allocate(constitutive_titanmod_interactionMatrixSlipTwin(maxTotalNslip,maxTotalNtwin,maxNinstance))
|
allocate(constitutive_titanmod_interactionMatrixSlipTwin(maxTotalNslip,maxTotalNtwin,maxNinstance))
|
||||||
allocate(constitutive_titanmod_interactionMatrixTwinSlip(maxTotalNtwin,maxTotalNslip,maxNinstance))
|
allocate(constitutive_titanmod_interactionMatrixTwinSlip(maxTotalNtwin,maxTotalNslip,maxNinstance))
|
||||||
allocate(constitutive_titanmod_interactionMatrixTwinTwin(maxTotalNtwin,maxTotalNtwin,maxNinstance))
|
allocate(constitutive_titanmod_interactionMatrixTwinTwin(maxTotalNtwin,maxTotalNtwin,maxNinstance))
|
||||||
allocate(constitutive_titanmod_forestProjectionEdge(maxTotalNslip,maxTotalNslip,maxNinstance))
|
allocate(constitutive_titanmod_forestProjectionEdge(maxTotalNslip,maxTotalNslip,maxNinstance))
|
||||||
allocate(constitutive_titanmod_forestProjectionScrew(maxTotalNslip,maxTotalNslip,maxNinstance))
|
allocate(constitutive_titanmod_forestProjectionScrew(maxTotalNslip,maxTotalNslip,maxNinstance))
|
||||||
constitutive_titanmod_interactionMatrixSlipSlip = 0.0_pReal
|
constitutive_titanmod_interactionMatrixSlipSlip = 0.0_pReal
|
||||||
|
constitutive_titanmod_interactionMatrix_ee = 0.0_pReal
|
||||||
|
constitutive_titanmod_interactionMatrix_ss = 0.0_pReal
|
||||||
|
constitutive_titanmod_interactionMatrix_es = 0.0_pReal
|
||||||
constitutive_titanmod_interactionMatrixSlipTwin = 0.0_pReal
|
constitutive_titanmod_interactionMatrixSlipTwin = 0.0_pReal
|
||||||
constitutive_titanmod_interactionMatrixTwinSlip = 0.0_pReal
|
constitutive_titanmod_interactionMatrixTwinSlip = 0.0_pReal
|
||||||
constitutive_titanmod_interactionMatrixTwinTwin = 0.0_pReal
|
constitutive_titanmod_interactionMatrixTwinTwin = 0.0_pReal
|
||||||
|
@ -827,6 +920,30 @@ write(6,*) 'Determining elasticity matrix'
|
||||||
myStructure),i)
|
myStructure),i)
|
||||||
enddo; enddo
|
enddo; enddo
|
||||||
|
|
||||||
|
do s1 = 1,constitutive_titanmod_totalNslip(i)
|
||||||
|
do s2 = 1,constitutive_titanmod_totalNslip(i)
|
||||||
|
constitutive_titanmod_interactionMatrix_ee(s1,s2,i) = &
|
||||||
|
constitutive_titanmod_interaction_ee(lattice_interactionSlipSlip(constitutive_titanmod_slipSystemLattice(s1,i), &
|
||||||
|
constitutive_titanmod_slipSystemLattice(s2,i), &
|
||||||
|
myStructure),i)
|
||||||
|
enddo; enddo
|
||||||
|
|
||||||
|
do s1 = 1,constitutive_titanmod_totalNslip(i)
|
||||||
|
do s2 = 1,constitutive_titanmod_totalNslip(i)
|
||||||
|
constitutive_titanmod_interactionMatrix_ss(s1,s2,i) = &
|
||||||
|
constitutive_titanmod_interaction_ss(lattice_interactionSlipSlip(constitutive_titanmod_slipSystemLattice(s1,i), &
|
||||||
|
constitutive_titanmod_slipSystemLattice(s2,i), &
|
||||||
|
myStructure),i)
|
||||||
|
enddo; enddo
|
||||||
|
|
||||||
|
do s1 = 1,constitutive_titanmod_totalNslip(i)
|
||||||
|
do s2 = 1,constitutive_titanmod_totalNslip(i)
|
||||||
|
constitutive_titanmod_interactionMatrix_es(s1,s2,i) = &
|
||||||
|
constitutive_titanmod_interaction_es(lattice_interactionSlipSlip(constitutive_titanmod_slipSystemLattice(s1,i), &
|
||||||
|
constitutive_titanmod_slipSystemLattice(s2,i), &
|
||||||
|
myStructure),i)
|
||||||
|
enddo; enddo
|
||||||
|
|
||||||
do s1 = 1,constitutive_titanmod_totalNslip(i)
|
do s1 = 1,constitutive_titanmod_totalNslip(i)
|
||||||
do t2 = 1,constitutive_titanmod_totalNtwin(i)
|
do t2 = 1,constitutive_titanmod_totalNtwin(i)
|
||||||
constitutive_titanmod_interactionMatrixSlipTwin(s1,t2,i) = &
|
constitutive_titanmod_interactionMatrixSlipTwin(s1,t2,i) = &
|
||||||
|
@ -928,13 +1045,15 @@ constitutive_titanmod_stateInit(4*ns+2*nt+1:5*ns+2*nt) = segment_screw0
|
||||||
forall (s = 1:ns) &
|
forall (s = 1:ns) &
|
||||||
resistance_edge0(s) = &
|
resistance_edge0(s) = &
|
||||||
constitutive_titanmod_Gmod(myInstance)*constitutive_titanmod_burgersPerSlipSystem(s,myInstance)* &
|
constitutive_titanmod_Gmod(myInstance)*constitutive_titanmod_burgersPerSlipSystem(s,myInstance)* &
|
||||||
sqrt(dot_product((rho_edge0+rho_screw0),constitutive_titanmod_interactionMatrixSlipSlip(1:ns,s,myInstance)))
|
sqrt(dot_product((rho_edge0),constitutive_titanmod_interactionMatrix_ee(1:ns,s,myInstance))+dot_product((rho_screw0), &
|
||||||
|
constitutive_titanmod_interactionMatrix_es(1:ns,s,myInstance)))
|
||||||
constitutive_titanmod_stateInit(5*ns+3*nt+1:6*ns+3*nt) = resistance_edge0
|
constitutive_titanmod_stateInit(5*ns+3*nt+1:6*ns+3*nt) = resistance_edge0
|
||||||
|
|
||||||
forall (s = 1:ns) &
|
forall (s = 1:ns) &
|
||||||
resistance_screw0(s) = &
|
resistance_screw0(s) = &
|
||||||
constitutive_titanmod_Gmod(myInstance)*constitutive_titanmod_burgersPerSlipSystem(s,myInstance)* &
|
constitutive_titanmod_Gmod(myInstance)*constitutive_titanmod_burgersPerSlipSystem(s,myInstance)* &
|
||||||
sqrt(dot_product((rho_edge0+rho_screw0),constitutive_titanmod_interactionMatrixSlipSlip(1:ns,s,myInstance)))
|
sqrt(dot_product((rho_edge0),constitutive_titanmod_interactionMatrix_es(1:ns,s,myInstance))+dot_product((rho_screw0), &
|
||||||
|
constitutive_titanmod_interactionMatrix_ss(1:ns,s,myInstance)))
|
||||||
constitutive_titanmod_stateInit(6*ns+3*nt+1:7*ns+3*nt) = resistance_screw0
|
constitutive_titanmod_stateInit(6*ns+3*nt+1:7*ns+3*nt) = resistance_screw0
|
||||||
|
|
||||||
!* Initialize dependent twin microstructural variables
|
!* Initialize dependent twin microstructural variables
|
||||||
|
@ -1116,15 +1235,19 @@ forall (t = 1:nt) &
|
||||||
forall (s = 1:ns) &
|
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_titanmod_Gmod(myInstance)*constitutive_titanmod_burgersPerSlipSystem(s,myInstance)*&
|
constitutive_titanmod_Gmod(myInstance)*constitutive_titanmod_burgersPerSlipSystem(s,myInstance)*&
|
||||||
sqrt(dot_product((state(g,ip,el)%p(1:ns)+state(g,ip,el)%p(ns+1:2*ns)),&
|
sqrt(dot_product((state(g,ip,el)%p(1:ns)),&
|
||||||
constitutive_titanmod_interactionMatrixSlipSlip(1:ns,s,myInstance)))
|
constitutive_titanmod_interactionMatrix_ee(1:ns,s,myInstance))+ &
|
||||||
|
dot_product((state(g,ip,el)%p(ns+1:2*ns)),&
|
||||||
|
constitutive_titanmod_interactionMatrix_es(1:ns,s,myInstance)))
|
||||||
|
|
||||||
!* threshold stress or slip resistance for screw dislocation motion
|
!* threshold stress or slip resistance for screw dislocation motion
|
||||||
forall (s = 1:ns) &
|
forall (s = 1:ns) &
|
||||||
state(g,ip,el)%p(6*ns+3*nt+s) = &
|
state(g,ip,el)%p(6*ns+3*nt+s) = &
|
||||||
constitutive_titanmod_Gmod(myInstance)*constitutive_titanmod_burgersPerSlipSystem(s,myInstance)*&
|
constitutive_titanmod_Gmod(myInstance)*constitutive_titanmod_burgersPerSlipSystem(s,myInstance)*&
|
||||||
sqrt(dot_product((state(g,ip,el)%p(1:ns)+state(g,ip,el)%p(ns+1:2*ns)),&
|
sqrt(dot_product((state(g,ip,el)%p(1:ns)),&
|
||||||
constitutive_titanmod_interactionMatrixSlipSlip(1:ns,s,myInstance)))
|
constitutive_titanmod_interactionMatrix_es(1:ns,s,myInstance))+ &
|
||||||
|
dot_product((state(g,ip,el)%p(ns+1:2*ns)),&
|
||||||
|
constitutive_titanmod_interactionMatrix_ss(1:ns,s,myInstance)))
|
||||||
|
|
||||||
!* threshold stress for growing twin
|
!* threshold stress for growing twin
|
||||||
forall (t = 1:nt) &
|
forall (t = 1:nt) &
|
||||||
|
@ -1298,7 +1421,8 @@ do f = 1,lattice_maxNslipFamily ! loop over all
|
||||||
+ constitutive_titanmod_v0e_PerSlipSystem(j,myInstance)+state(g,ip,el)%p(ns+j)* &
|
+ constitutive_titanmod_v0e_PerSlipSystem(j,myInstance)+state(g,ip,el)%p(ns+j)* &
|
||||||
constitutive_titanmod_v0e_PerSlipSystem(j,myInstance))
|
constitutive_titanmod_v0e_PerSlipSystem(j,myInstance))
|
||||||
|
|
||||||
edge_velocity(j) =constitutive_titanmod_v0e_PerSlipSystem(j,myInstance)*exp(-BoltzmannRatio*(minusStressRatio_edge_p)** &
|
edge_velocity(j) =constitutive_titanmod_v0e_PerSlipSystem(j,myInstance)*exp(-BoltzmannRatio* &
|
||||||
|
(minusStressRatio_edge_p)** &
|
||||||
constitutive_titanmod_qe_PerSlipSystem(j,myInstance))
|
constitutive_titanmod_qe_PerSlipSystem(j,myInstance))
|
||||||
|
|
||||||
screw_velocity(j) =screwvelocity_kink_prefactor * constitutive_titanmod_v0s_PerSlipSystem(j,myInstance)* &
|
screw_velocity(j) =screwvelocity_kink_prefactor * constitutive_titanmod_v0s_PerSlipSystem(j,myInstance)* &
|
||||||
|
@ -1470,7 +1594,8 @@ real(pReal) sumf,StressRatio_edge_p,minusStressRatio_edge_p,StressRatio_pminus1,
|
||||||
real(pReal), dimension(constitutive_titanmod_totalNslip(phase_constitutionInstance(material_phase(g,ip,el)))) :: &
|
real(pReal), dimension(constitutive_titanmod_totalNslip(phase_constitutionInstance(material_phase(g,ip,el)))) :: &
|
||||||
gdot_slip,tau_slip,DotRhoEdgeGeneration,EdgeDipDistance,DotRhoEdgeAnnihilation,DotRhoScrewAnnihilation,&
|
gdot_slip,tau_slip,DotRhoEdgeGeneration,EdgeDipDistance,DotRhoEdgeAnnihilation,DotRhoScrewAnnihilation,&
|
||||||
ClimbVelocity,DotRhoScrewGeneration, edge_segment, screw_segment,edge_velocity,screw_velocity
|
ClimbVelocity,DotRhoScrewGeneration, edge_segment, screw_segment,edge_velocity,screw_velocity
|
||||||
real(pReal), dimension(constitutive_titanmod_totalNtwin(phase_constitutionInstance(material_phase(g,ip,el)))) :: gdot_twin,tau_twin
|
real(pReal), dimension(constitutive_titanmod_totalNtwin(phase_constitutionInstance(material_phase(g,ip,el)))) :: gdot_twin, &
|
||||||
|
tau_twin
|
||||||
|
|
||||||
!* Shortened notation
|
!* Shortened notation
|
||||||
myInstance = phase_constitutionInstance(material_phase(g,ip,el))
|
myInstance = phase_constitutionInstance(material_phase(g,ip,el))
|
||||||
|
@ -1557,7 +1682,8 @@ forall (s = 1:ns) &
|
||||||
! edge_velocity(j) = 0.0_pReal
|
! edge_velocity(j) = 0.0_pReal
|
||||||
! screw_velocity(j) = 0.0_pReal
|
! screw_velocity(j) = 0.0_pReal
|
||||||
! else
|
! else
|
||||||
edge_velocity(j) =constitutive_titanmod_v0e_PerSlipSystem(j,myInstance)*exp(-BoltzmannRatio*(minusStressRatio_edge_p)** &
|
edge_velocity(j) =constitutive_titanmod_v0e_PerSlipSystem(j,myInstance)*exp(-BoltzmannRatio* &
|
||||||
|
(minusStressRatio_edge_p)** &
|
||||||
constitutive_titanmod_qe_PerSlipSystem(j,myInstance))
|
constitutive_titanmod_qe_PerSlipSystem(j,myInstance))
|
||||||
screw_velocity(j) =screwvelocity_kink_prefactor* constitutive_titanmod_v0s_PerSlipSystem(j,myInstance)* &
|
screw_velocity(j) =screwvelocity_kink_prefactor* constitutive_titanmod_v0s_PerSlipSystem(j,myInstance)* &
|
||||||
exp(-BoltzmannRatio*(minusStressRatio_screw_p)** &
|
exp(-BoltzmannRatio*(minusStressRatio_screw_p)** &
|
||||||
|
|
Loading…
Reference in New Issue