invlabmdaslip does not need to be stored
This commit is contained in:
parent
228ef831f0
commit
252f1a6a75
|
@ -115,14 +115,12 @@ module plastic_disloUCLA
|
||||||
rhoEdge, &
|
rhoEdge, &
|
||||||
rhoEdgeDip, &
|
rhoEdgeDip, &
|
||||||
accshear_slip, &
|
accshear_slip, &
|
||||||
invLambdaSlip, &
|
|
||||||
mfp_slip, &
|
mfp_slip, &
|
||||||
threshold_stress_slip
|
threshold_stress_slip
|
||||||
end type
|
end type
|
||||||
|
|
||||||
type, private :: tDisloUCLAMicrostructure
|
type, private :: tDisloUCLAMicrostructure
|
||||||
real(pReal), allocatable, dimension(:,:) :: &
|
real(pReal), allocatable, dimension(:,:) :: &
|
||||||
invLambda, &
|
|
||||||
mfp, &
|
mfp, &
|
||||||
threshold_stress
|
threshold_stress
|
||||||
end type tDisloUCLAMicrostructure
|
end type tDisloUCLAMicrostructure
|
||||||
|
@ -516,8 +514,7 @@ plastic_disloUCLA_Noutput(phase_plasticityInstance(p)) = plastic_disloUCLA_Noutp
|
||||||
sizeDotState = int(size(['rhoEdge ','rhoEdgeDip ','accshearslip']),pInt) * ns
|
sizeDotState = int(size(['rhoEdge ','rhoEdgeDip ','accshearslip']),pInt) * ns
|
||||||
sizeDeltaState = 0_pInt
|
sizeDeltaState = 0_pInt
|
||||||
sizeState = sizeDotState &
|
sizeState = sizeDotState &
|
||||||
+ int(size(['invLambdaSlip ',&
|
+ int(size(['meanFreePathSlip ','tauSlipThreshold ']),pInt) * ns
|
||||||
'meanFreePathSlip ','tauSlipThreshold ']),pInt) * ns
|
|
||||||
|
|
||||||
call material_allocatePlasticState(phase,NofMyPhase,sizeState,sizeDotState,0_pInt, &
|
call material_allocatePlasticState(phase,NofMyPhase,sizeState,sizeDotState,0_pInt, &
|
||||||
ns,0_pInt,0_pInt)
|
ns,0_pInt,0_pInt)
|
||||||
|
@ -579,10 +576,6 @@ plastic_disloUCLA_Noutput(phase_plasticityInstance(p)) = plastic_disloUCLA_Noutp
|
||||||
dotState(instance)%accshear_slip=>plasticState(phase)%dotState(startIndex:endIndex,:)
|
dotState(instance)%accshear_slip=>plasticState(phase)%dotState(startIndex:endIndex,:)
|
||||||
plasticState(p)%aTolState(startIndex:endIndex) = 1e6_pReal
|
plasticState(p)%aTolState(startIndex:endIndex) = 1e6_pReal
|
||||||
|
|
||||||
startIndex=endIndex+1_pInt
|
|
||||||
endIndex=endIndex+ns
|
|
||||||
stt%invLambdaSlip=>plasticState(phase)%state(startIndex:endIndex,:)
|
|
||||||
|
|
||||||
startIndex=endIndex+1_pInt
|
startIndex=endIndex+1_pInt
|
||||||
endIndex=endIndex+ns
|
endIndex=endIndex+ns
|
||||||
stt%mfp_slip=>plasticState(phase)%state(startIndex:endIndex,:)
|
stt%mfp_slip=>plasticState(phase)%state(startIndex:endIndex,:)
|
||||||
|
@ -591,7 +584,6 @@ plastic_disloUCLA_Noutput(phase_plasticityInstance(p)) = plastic_disloUCLA_Noutp
|
||||||
endIndex=endIndex+ns
|
endIndex=endIndex+ns
|
||||||
stt%threshold_stress_slip=>plasticState(phase)%state(startIndex:endIndex,:)
|
stt%threshold_stress_slip=>plasticState(phase)%state(startIndex:endIndex,:)
|
||||||
|
|
||||||
allocate(mse%invLambda(prm%totalNslip,NofMyPhase),source=0.0_pReal)
|
|
||||||
allocate(mse%mfp(prm%totalNslip,NofMyPhase),source=0.0_pReal)
|
allocate(mse%mfp(prm%totalNslip,NofMyPhase),source=0.0_pReal)
|
||||||
allocate(mse%threshold_stress(prm%totalNslip,NofMyPhase),source=0.0_pReal)
|
allocate(mse%threshold_stress(prm%totalNslip,NofMyPhase),source=0.0_pReal)
|
||||||
|
|
||||||
|
@ -615,7 +607,8 @@ subroutine plastic_disloUCLA_stateInit(ph,instance)
|
||||||
lattice_maxNslipFamily, &
|
lattice_maxNslipFamily, &
|
||||||
lattice_mu
|
lattice_mu
|
||||||
use material, only: &
|
use material, only: &
|
||||||
plasticState
|
plasticState, &
|
||||||
|
material_phase
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
|
@ -641,19 +634,18 @@ subroutine plastic_disloUCLA_stateInit(ph,instance)
|
||||||
forall (i = 1_pInt:ns) &
|
forall (i = 1_pInt:ns) &
|
||||||
invLambdaSlip0(i) = sqrt(dot_product((prm%rho0+prm%rhoDip0),plastic_disloUCLA_forestProjectionEdge(1:ns,i,instance)))/ &
|
invLambdaSlip0(i) = sqrt(dot_product((prm%rho0+prm%rhoDip0),plastic_disloUCLA_forestProjectionEdge(1:ns,i,instance)))/ &
|
||||||
plastic_disloUCLA_CLambdaSlipPerSlipSystem(i,instance)
|
plastic_disloUCLA_CLambdaSlipPerSlipSystem(i,instance)
|
||||||
tempState(3_pInt*ns+1:4_pInt*ns) = invLambdaSlip0
|
|
||||||
|
|
||||||
forall (i = 1_pInt:ns) &
|
forall (i = 1_pInt:ns) &
|
||||||
MeanFreePathSlip0(i) = &
|
MeanFreePathSlip0(i) = &
|
||||||
plastic_disloUCLA_GrainSize(instance)/(1.0_pReal+invLambdaSlip0(i)*plastic_disloUCLA_GrainSize(instance))
|
plastic_disloUCLA_GrainSize(instance)/(1.0_pReal+invLambdaSlip0(i)*plastic_disloUCLA_GrainSize(instance))
|
||||||
tempState(4_pInt*ns+1:5_pInt*ns) = MeanFreePathSlip0
|
tempState(3_pInt*ns+1:4_pInt*ns) = MeanFreePathSlip0
|
||||||
|
|
||||||
forall (i = 1_pInt:ns) &
|
forall (i = 1_pInt:ns) &
|
||||||
tauSlipThreshold0(i) = &
|
tauSlipThreshold0(i) = &
|
||||||
lattice_mu(ph)*prm%burgers(i) * &
|
lattice_mu(ph)*prm%burgers(i) * &
|
||||||
sqrt(dot_product((prm%rho0+prm%rhoDip0),plastic_disloUCLA_interactionMatrix_SlipSlip(i,1:ns,instance)))
|
sqrt(dot_product((prm%rho0+prm%rhoDip0),plastic_disloUCLA_interactionMatrix_SlipSlip(i,1:ns,instance)))
|
||||||
|
|
||||||
tempState(5_pInt*ns+1:6_pInt*ns) = tauSlipThreshold0
|
tempState(4_pInt*ns+1:5_pInt*ns) = tauSlipThreshold0
|
||||||
|
|
||||||
plasticState(ph)%state = spread(tempState,2,size(plasticState(ph)%state(1,:)))
|
plasticState(ph)%state = spread(tempState,2,size(plasticState(ph)%state(1,:)))
|
||||||
end associate
|
end associate
|
||||||
|
@ -668,7 +660,8 @@ subroutine plastic_disloUCLA_microstructure(temperature,ipc,ip,el)
|
||||||
pi
|
pi
|
||||||
use material, only: &
|
use material, only: &
|
||||||
phase_plasticityInstance, &
|
phase_plasticityInstance, &
|
||||||
phaseAt, phasememberAt
|
phaseAt, phasememberAt, &
|
||||||
|
material_phase
|
||||||
use lattice, only: &
|
use lattice, only: &
|
||||||
lattice_mu
|
lattice_mu
|
||||||
|
|
||||||
|
@ -685,7 +678,8 @@ subroutine plastic_disloUCLA_microstructure(temperature,ipc,ip,el)
|
||||||
ns,s, &
|
ns,s, &
|
||||||
ph, &
|
ph, &
|
||||||
of
|
of
|
||||||
|
real(pReal), dimension(plastic_disloUCLA_totalNslip(phase_plasticityInstance(material_phase(ipc,ip,el)))) :: &
|
||||||
|
invLambdaSlip
|
||||||
!* Shortened notation
|
!* Shortened notation
|
||||||
of = phasememberAt(ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
ph = phaseAt(ipc,ip,el)
|
ph = phaseAt(ipc,ip,el)
|
||||||
|
@ -694,7 +688,7 @@ subroutine plastic_disloUCLA_microstructure(temperature,ipc,ip,el)
|
||||||
associate(prm => param(instance), stt => state(instance))
|
associate(prm => param(instance), stt => state(instance))
|
||||||
!* 1/mean free distance between 2 forest dislocations seen by a moving dislocation
|
!* 1/mean free distance between 2 forest dislocations seen by a moving dislocation
|
||||||
forall (s = 1_pInt:ns) &
|
forall (s = 1_pInt:ns) &
|
||||||
stt%invLambdaSlip(s,of) = &
|
invLambdaSlip(s) = &
|
||||||
sqrt(dot_product((stt%rhoEdge(1_pInt:ns,of)+stt%rhoEdgeDip(1_pInt:ns,of)),&
|
sqrt(dot_product((stt%rhoEdge(1_pInt:ns,of)+stt%rhoEdgeDip(1_pInt:ns,of)),&
|
||||||
plastic_disloUCLA_forestProjectionEdge(1:ns,s,instance)))/ &
|
plastic_disloUCLA_forestProjectionEdge(1:ns,s,instance)))/ &
|
||||||
plastic_disloUCLA_CLambdaSlipPerSlipSystem(s,instance)
|
plastic_disloUCLA_CLambdaSlipPerSlipSystem(s,instance)
|
||||||
|
@ -703,7 +697,7 @@ subroutine plastic_disloUCLA_microstructure(temperature,ipc,ip,el)
|
||||||
do s = 1_pInt,ns
|
do s = 1_pInt,ns
|
||||||
stt%mfp_slip(s,of) = &
|
stt%mfp_slip(s,of) = &
|
||||||
plastic_disloUCLA_GrainSize(instance)/&
|
plastic_disloUCLA_GrainSize(instance)/&
|
||||||
(1.0_pReal+plastic_disloUCLA_GrainSize(instance)*(stt%invLambdaSlip(s,of)))
|
(1.0_pReal+plastic_disloUCLA_GrainSize(instance)*(invLambdaSlip(s)))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
!* threshold stress for dislocation motion
|
!* threshold stress for dislocation motion
|
||||||
|
|
Loading…
Reference in New Issue