diff --git a/code/CPFEM.f90 b/code/CPFEM.f90 index 34a99b0f5..6a3457a64 100644 --- a/code/CPFEM.f90 +++ b/code/CPFEM.f90 @@ -217,7 +217,7 @@ subroutine CPFEM_general(mode, ffn, ffn1, Temperature, dt, element, IP, cauchySt ! deformation gradient outdated or any actual deformation gradient differs more than relevantStrain from the stored one if (terminallyIll .or. outdatedFFN1 .or. any(abs(ffn1 - materialpoint_F(:,:,IP,cp_en)) > relevantStrain)) then if (.not. terminallyIll .and. .not. outdatedFFN1) then - write(6,'(a11,x,i5,x,i2,x,a10,/,3(3(f10.3,x),/))') 'outdated at',cp_en,IP,'FFN1 now:',ffn1(:,1),ffn1(:,2),ffn1(:,3) + write(6,'(a11,x,i5,x,i2,x,a10,/,3(3(f10.6,x),/))') 'outdated at',cp_en,IP,'FFN1 now:',ffn1(:,1),ffn1(:,2),ffn1(:,3) outdatedFFN1 = .true. endif CPFEM_cs(1:ngens,IP,cp_en) = CPFEM_odd_stress diff --git a/code/crystallite.f90 b/code/crystallite.f90 index 3d3746abb..2ee284e8e 100644 --- a/code/crystallite.f90 +++ b/code/crystallite.f90 @@ -368,7 +368,7 @@ subroutine crystallite_stressAndItsTangent(updateJaco) crystallite_subLp0(:,:,g,i,e) = crystallite_Lp(:,:,g,i,e) ! ...plastic velocity gradient constitutive_subState0(g,i,e)%p = constitutive_state(g,i,e)%p ! ...microstructure crystallite_subTstar0_v(:,g,i,e) = crystallite_Tstar_v(:,g,i,e) ! ...2nd PK stress - else ! already at final time + elseif (crystallite_onTrack(g,i,e)) ! this crystallite just converged !$OMP CRITICAL (distributionCrystallite) debug_CrystalliteLoopDistribution(min(nCryst+1,NiterationCrystallite)) = & debug_CrystalliteLoopDistribution(min(nCryst+1,NiterationCrystallite)) + 1 diff --git a/code/homogenization.f90 b/code/homogenization.f90 index dca439242..a4bcb9e3a 100644 --- a/code/homogenization.f90 +++ b/code/homogenization.f90 @@ -301,7 +301,7 @@ subroutine materialpoint_stressAndItsTangent(& if (homogenization_sizeState(i,e) > 0_pInt) & homogenization_subState0(i,e)%p = homogenization_state(i,e)%p ! ...internal state of homog scheme materialpoint_subF0(:,:,i,e) = materialpoint_subF(:,:,i,e) ! ...def grad - else ! already at final time + elseif (materialpoint_requested(i,e)) ! this materialpoint just converged ! already at final time !$OMP CRITICAL (distributionHomog) debug_MaterialpointLoopDistribution(min(nHomog+1,NiterationHomog)) = & debug_MaterialpointLoopDistribution(min(nHomog+1,NiterationHomog)) + 1 diff --git a/code/material.config b/code/material.config index cce7ec698..2dc17bbda 100644 --- a/code/material.config +++ b/code/material.config @@ -6,6 +6,16 @@ type isostrain Ngrains 1 +[Grain_Cluster] +type RGC +ngrains 8 +clustersize 2 2 2 # product of these numbers must be equal to ngrains(!) +grainsizeparameter 3.2e+3 3.2e+3 3.2e+3 # 3.9e3 3.6e3 3.9e3 +overproportionality 1.6e+0 1.6e+0 1.6e+0 # 1.6e0 1.6e0 1.6e0 +(output) constitutivework +(output) penaltyenergy +(output) magnitudemismatch + [Taylor2] type isostrain Ngrains 2 @@ -23,6 +33,9 @@ Ngrains 2 [Aluminum_j2] (constituent) phase 1 texture 1 fraction 1.0 +[DP_Steel] +(constituent) phase 1 texture 1 fraction 0.82 +(constituent) phase 2 texture 1 fraction 0.18 ##################### @@ -125,10 +138,73 @@ Qsd 2.3e-19 lambda0 100 0 0 0 # prefactor for mean free path interaction_SlipSlip 1.0 2.2 3.0 1.6 3.8 4.5 # Dislocation interaction coefficient +[BCC_Ferrite] +constitution phenopowerlaw +lattice_structure bcc +Nslip 12 0 0 0 # per family +Ntwin 0 0 0 0 # per family +c11 233.3e9 +c12 135.5e9 +c44 118.0e9 +gdot0_slip 0.001 +n_slip 20 +tau0_slip 88.0e6 0 0 0 # per family +tausat_slip 201.0e6 0 0 0 # per family +gdot0_twin 0.001 +n_twin 20 +tau0_twin 31.0e6 0 0 0 # per family +s_pr 0 # push-up factor for slip saturation due to twinning +twin_b 0 +twin_c 0 +twin_d 0 +twin_e 0 +h0_slipslip 391.0e6 +h0_sliptwin 0 +h0_twinslip 0 +h0_twintwin 0 +interaction_slipslip 1 1 1.4 1.4 1.4 1.4 +interaction_sliptwin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +interaction_twinslip 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +interaction_twintwin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +w0_slip 1.0 + +[BCC_Martensite] +constitution phenopowerlaw +lattice_structure bcc +Nslip 12 0 0 0 # per family +Ntwin 0 0 0 0 # per family +c11 511.1e9 +c12 296.9e9 +c44 258.5e9 +gdot0_slip 0.001 +n_slip 20 +tau0_slip 396.0e6 0 0 0 # per family +tausat_slip 1120.0e6 0 0 0 # per family +gdot0_twin 0.001 +n_twin 20 +tau0_twin 31.0e6 0 0 0 # per family +s_pr 0 # push-up factor for slip saturation due to twinning +twin_b 0 +twin_c 0 +twin_d 0 +twin_e 0 +h0_slipslip 215000.0e6 +h0_sliptwin 0 +h0_twinslip 0 +h0_twintwin 0 +interaction_slipslip 1 1 1.4 1.4 1.4 1.4 +interaction_sliptwin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +interaction_twinslip 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +interaction_twintwin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +w0_slip 4.0 + ##################### ##################### +[Rolling] +hybridIA DP_EBSD.linearODF + [random] [001] diff --git a/code/numerics.config b/code/numerics.config index 6d94fa4b3..537352a62 100644 --- a/code/numerics.config +++ b/code/numerics.config @@ -7,8 +7,8 @@ iJacoLpresiduum 1 # frequency of Jacobian update of residuum pert_Fg 1.0e-7 # strain perturbation for FEM Jacobi nHomog 25 # homogenization loop limit nCryst 20 # crystallite loop limit (only for debugging info, real loop limit is "subStepMin") -nState 40 # state loop limit -nStress 80 # stress loop limit +nState 50 # state loop limit +nStress 200 # stress loop limit subStepMin 1.0e-3 # minimum (relative) size of sub-step allowed during cutback in crystallite rTol_crystalliteState 1.0e-6 # relative tolerance in crystallite state loop rTol_crystalliteStress 1.0e-6 # relative tolerance in crystallite stress loop @@ -17,8 +17,7 @@ aTol_crystalliteStress 1.0e-8 # absolute tolerance in crystallite stress aTol_RGC 1.0e+4 # absolute tolerance of RGC residuum (in Pa) rTol_RGC 1.0e-3 # relative ... aMax_RGC 1.0e+12 # absolute upper-limit of RGC residuum (in Pa) -rMax_RGC 1.0e+3 # relative ... +rMax_RGC 1.0e+4 # relative ... perturbPenalty_RGC 1.0e-8 # perturbation for computing penalty tangent -relevantMismatch_RGC 1.0e-5 # minimum threshold of mismatch - -fixed_seed 1234 # put any number larger than zero, integer, if you want to have a pseudo random distribution \ No newline at end of file +relevantMismatch_RGC 1.0e-6 # minimum threshold of mismatch +fixed_seed 1234 # put any number larger than zero, integer, if you want to have a pseudo random distribution