CPFEM.f90 >>> A very small, not important thing.

homogenization.f90 and crystallite.f90 >>> Correction in the algorithm to count the iteration distribution (for better statistics).

material.config and numerics.config >>> more collection of parameters.
This commit is contained in:
Denny Tjahjanto 2009-08-28 15:05:14 +00:00
parent f27d66a9ae
commit 3ea17dd2fd
5 changed files with 84 additions and 9 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
#####################
<phase>
@ -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
#####################
<texture>
#####################
[Rolling]
hybridIA DP_EBSD.linearODF
[random]
[001]

View File

@ -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
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