From e7f7fa74b70f28daf5aee85ea6c4583620d33371 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Sep 2018 06:20:58 +0200 Subject: [PATCH] don't do calculation of dependentStates/microstructure manually --- src/plastic_dislotwin.f90 | 40 +-------------------------------------- 1 file changed, 1 insertion(+), 39 deletions(-) diff --git a/src/plastic_dislotwin.f90 b/src/plastic_dislotwin.f90 index 9d8c67fbc..20f2795c6 100644 --- a/src/plastic_dislotwin.f90 +++ b/src/plastic_dislotwin.f90 @@ -840,51 +840,14 @@ subroutine plastic_dislotwin_init(fileUnit) dst%strainTransFraction=>plasticState(p)%dotState(startIndex:endIndex,:) plasticState(p)%aTolState(startIndex:endIndex) = prm%aTolTransFrac - invLambdaSlip0 = spread(0.0_pReal,1,prm%totalNslip) ! calculation required? Seems to be the same as in microstructure - forall (i = 1_pInt:prm%totalNslip) & - invLambdaSlip0(i) = sqrt(dot_product(math_expand(prm%rho0,prm%Nslip)+ & - math_expand(prm%rhoDip0,prm%Nslip),prm%forestProjectionEdge(1:prm%totalNslip,i)))/ & - prm%CLambdaSlip(i) - mse%invLambdaSlip = spread(math_expand(invLambdaSlip0,prm%Nslip),2, NofMyPhase) - + dst%whole => plasticState(p)%dotState allocate(mse%invLambdaSlipTwin(prm%totalNslip,NofMyPhase),source=0.0_pReal) allocate(mse%invLambdaTwin(prm%totalNtwin,NofMyPhase),source=0.0_pReal) allocate(mse%invLambdaSlipTrans(prm%totalNtrans,NofMyPhase),source=0.0_pReal) allocate(mse%invLambdaTrans(prm%totalNtrans,NofMyPhase),source=0.0_pReal) - - MeanFreePathSlip0 = prm%GrainSize/(1.0_pReal+invLambdaSlip0*prm%GrainSize) - mse%mfp_slip = spread(math_expand(MeanFreePathSlip0,prm%Nslip),2, NofMyPhase) - - MeanFreePathTwin0 = spread(prm%GrainSize,1,prm%totalNtwin) - mse%mfp_twin = spread(math_expand(MeanFreePathTwin0,prm%Ntwin),2, NofMyPhase) - - MeanFreePathTrans0 = spread(prm%GrainSize,1,prm%totalNtrans) - mse%mfp_trans = spread(math_expand(MeanFreePathTrans0,prm%Ntrans),2, NofMyPhase) - - tauSlipThreshold0 = spread(0.0_pReal,1,prm%totalNslip) - forall (i = 1_pInt:prm%totalNslip) tauSlipThreshold0(i) = & - prm%mu*prm%burgers_slip(i) * sqrt(dot_product(math_expand(prm%rho0 + prm%rhoDip0,prm%Nslip),& - prm%interaction_SlipSlip(i,1:prm%totalNslip))) - mse%threshold_stress_slip = spread(math_expand(tauSlipThreshold0,prm%Nslip),2, NofMyPhase) - allocate(mse%threshold_stress_twin(prm%totalNtwin,NofMyPhase), source=0.0_pReal) allocate(mse%threshold_stress_trans(prm%totalNtrans,NofMyPhase),source=0.0_pReal) - - TwinVolume0= spread(0.0_pReal,1,prm%totalNtwin) - forall (i = 1_pInt:prm%totalNtwin) TwinVolume0(i) = & - (PI/4.0_pReal)*prm%twinsize(i)*MeanFreePathTwin0(i)**2.0_pReal - mse%twinVolume = & - spread(math_expand(TwinVolume0,prm%Ntwin),2, NofMyPhase) - - MartensiteVolume0= spread(0.0_pReal,1,prm%totalNtrans) - forall (i = 1_pInt:prm%totalNtrans) MartensiteVolume0(i) = & - (PI/4.0_pReal)*prm%lamellarsizePerTransSystem(i)*MeanFreePathTrans0(i)**2.0_pReal - mse%martensiteVolume = & - spread(math_expand(MartensiteVolume0,prm%Ntrans),2, NofMyPhase) - - dst%whole => plasticState(p)%dotState - allocate(mse%tau_r_twin(prm%totalNtwin,NofMyPhase), source=0.0_pReal) allocate(mse%tau_r_trans(prm%totalNtrans,NofMyPhase), source=0.0_pReal) @@ -916,7 +879,6 @@ function plastic_dislotwin_homogenizedC(ipc,ip,el) of real(pReal) :: sumf_twin, sumf_trans - !* Shortened notation of = phasememberAt(ipc,ip,el) associate(prm => param(phase_plasticityInstance(material_phase(ipc,ip,el))),& stt => state(phase_plasticityInstance(material_phase(ipc,ip,el))))