clear names
This commit is contained in:
parent
4f59fac81d
commit
2547d4a25c
|
@ -73,23 +73,24 @@ mesh:
|
||||||
|
|
||||||
phase:
|
phase:
|
||||||
mechanical:
|
mechanical:
|
||||||
step_min: 1.0e-3 # minimum (relative) size of step allowed during cutback in crystallite
|
step_min: 1.0e-3 # minimum (relative) size of step allowed during cutback in phase state calculation
|
||||||
step_size: 0.25 # size of step when cutback introduced in crystallite (value between 0 and 1)
|
r_cutback_step: 0.25 # factor to decrease size of step when cutback introduced in phase state calculation (value between 0 and 1)
|
||||||
step_increase: 1.5 # increase of next step size when previous step converged in crystallite (value higher than 1)
|
r_increase_step: 1.5 # factor to increase size of next step when previous step converged in phase state calculation
|
||||||
eps_rel_state: 1.0e-6 # relative tolerance in crystallite state loop (abs tol provided by constitutive law)
|
eps_rel_state: 1.0e-6 # relative tolerance in phase state loop (abs tol provided by constitutive law)
|
||||||
N_iter_state_max: 10 # state loop limit
|
N_iter_state_max: 10 # state loop limit
|
||||||
N_iter_stress_max: 40 # stress loop limit
|
|
||||||
|
|
||||||
plastic:
|
plastic:
|
||||||
step_size_Lp: 0.5 # size of first substep when cutback in Lp calculation
|
r_cutback_step_Lp: 0.5 # factor to decrease the step when cutback in Lp calculation
|
||||||
eps_rel_Lp: 1.0e-6 # relative tolerance in crystallite stress loop (Lp residuum)
|
eps_rel_Lp: 1.0e-6 # relative tolerance in phase stress loop (Lp residuum)
|
||||||
eps_abs_Lp: 1.0e-8 # absolute tolerance in crystallite stress loop (Lp residuum!)
|
eps_abs_Lp: 1.0e-8 # absolute tolerance in phase stress loop (Lp residuum)
|
||||||
|
N_iter_Lp_max: 40 # stress loop limit for Lp
|
||||||
f_update_jacobi_Lp: 1 # frequency of Jacobian update of residuum in Lp
|
f_update_jacobi_Lp: 1 # frequency of Jacobian update of residuum in Lp
|
||||||
integrator_state: FPI # integration method (FPI = Fixed Point Iteration, Euler = Euler, AdaptiveEuler = Adaptive Euler, RK4 = classical 4th order Runge-Kutta, RKCK45 = 5th order Runge-Kutta Cash-Karp)
|
integrator_state: FPI # integration method (FPI = Fixed Point Iteration, Euler = Euler, AdaptiveEuler = Adaptive Euler, RK4 = classical 4th order Runge-Kutta, RKCK45 = 5th order Runge-Kutta Cash-Karp)
|
||||||
eigen:
|
eigen:
|
||||||
step_size_Li: 0.5 # size of first substep when cutback in Li calculation
|
r_cutback_step_Li: 0.5 # factor to decrease the step when cutback in Li calculation
|
||||||
eps_rel_Li: 1.0e-6 # relative tolerance in crystallite stress loop (Li residuum)
|
eps_rel_Li: 1.0e-6 # relative tolerance in phase stress loop (Li residuum)
|
||||||
eps_abs_Li: 1.0e-8 # absolute tolerance in crystallite stress loop (Li residuum!)
|
eps_abs_Li: 1.0e-8 # absolute tolerance in phase stress loop (Li residuum)
|
||||||
|
N_iter_Li_max: 40 # stress loop limit for Li
|
||||||
f_update_jacobi_Li: 1 # frequency of Jacobian update of residuum in Li
|
f_update_jacobi_Li: 1 # frequency of Jacobian update of residuum in Li
|
||||||
|
|
||||||
commercialFEM:
|
commercialFEM:
|
||||||
|
|
|
@ -86,7 +86,8 @@ module phase
|
||||||
iJacoLpresiduum, & !< frequency of Jacobian update of residuum in Lp
|
iJacoLpresiduum, & !< frequency of Jacobian update of residuum in Lp
|
||||||
iJacoLiresiduum, & !< frequency of Jacobian update of residuum in Li
|
iJacoLiresiduum, & !< frequency of Jacobian update of residuum in Li
|
||||||
nState, & !< state loop limit
|
nState, & !< state loop limit
|
||||||
nStress !< stress loop limit
|
nStress_Lp, & !< stress loop limit for Lp
|
||||||
|
nStress_Li !< stress loop limit for Li
|
||||||
real(pREAL) :: &
|
real(pREAL) :: &
|
||||||
stepMinCryst, & !< minimum (relative) size of sub-step allowed during cutback
|
stepMinCryst, & !< minimum (relative) size of sub-step allowed during cutback
|
||||||
stepSizeCryst, & !< size of first substep when cutback
|
stepSizeCryst, & !< size of first substep when cutback
|
||||||
|
|
|
@ -278,34 +278,36 @@ module subroutine mechanical_init(phases, num_mech)
|
||||||
num_mech_eigen => num_mech%get_dict('eigen', defaultVal=emptyDict)
|
num_mech_eigen => num_mech%get_dict('eigen', defaultVal=emptyDict)
|
||||||
|
|
||||||
num%stepMinCryst = num_mech%get_asReal ('step_min', defaultVal=1.0e-3_pREAL)
|
num%stepMinCryst = num_mech%get_asReal ('step_min', defaultVal=1.0e-3_pREAL)
|
||||||
num%stepSizeCryst = num_mech%get_asReal ('step_size', defaultVal=0.25_pREAL)
|
num%stepSizeCryst = num_mech%get_asReal ('r_cutback_step', defaultVal=0.25_pREAL)
|
||||||
num%stepIncreaseCryst = num_mech%get_asReal ('step_increase', defaultVal=1.5_pREAL)
|
num%stepIncreaseCryst = num_mech%get_asReal ('r_increase_step', defaultVal=1.5_pREAL)
|
||||||
num%rtol_crystalliteState = num_mech%get_asReal ('eps_rel_state', defaultVal=1.0e-6_pREAL)
|
num%rtol_crystalliteState = num_mech%get_asReal ('eps_rel_state', defaultVal=1.0e-6_pREAL)
|
||||||
num%nState = num_mech%get_asInt ('N_iter_state_max', defaultVal=20)
|
num%nState = num_mech%get_asInt ('N_iter_state_max', defaultVal=20)
|
||||||
num%nStress = num_mech%get_asInt ('N_iter_stress_max', defaultVal=40)
|
num%nStress_Lp = num_mech_plastic%get_asInt ('N_iter_Lp_max', defaultVal=40)
|
||||||
num%stepSizeLp = num_mech_plastic%get_asReal ('step_size_Lp', defaultVal=0.5_pREAL)
|
num%stepSizeLp = num_mech_plastic%get_asReal ('r_cutback_step_Lp', defaultVal=0.5_pREAL)
|
||||||
num%rtol_Lp = num_mech_plastic%get_asReal ('eps_rel_Lp', defaultVal=1.0e-6_pREAL)
|
num%rtol_Lp = num_mech_plastic%get_asReal ('eps_rel_Lp', defaultVal=1.0e-6_pREAL)
|
||||||
num%atol_Lp = num_mech_plastic%get_asReal ('eps_abs_Lp', defaultVal=1.0e-8_pREAL)
|
num%atol_Lp = num_mech_plastic%get_asReal ('eps_abs_Lp', defaultVal=1.0e-8_pREAL)
|
||||||
num%iJacoLpresiduum = num_mech_plastic%get_asInt ('f_update_jacobi_Lp', defaultVal=1)
|
num%iJacoLpresiduum = num_mech_plastic%get_asInt ('f_update_jacobi_Lp', defaultVal=1)
|
||||||
num%stepSizeLi = num_mech_eigen%get_asReal ('step_size_Li', defaultVal=0.5_pREAL)
|
num%nStress_Li = num_mech_eigen%get_asInt ('N_iter_Li_max', defaultVal=40)
|
||||||
|
num%stepSizeLi = num_mech_eigen%get_asReal ('r_cutback_step_Li', defaultVal=0.5_pREAL)
|
||||||
num%rtol_Li = num_mech_eigen%get_asReal ('eps_rel_Li', defaultVal=num%rtol_Lp)
|
num%rtol_Li = num_mech_eigen%get_asReal ('eps_rel_Li', defaultVal=num%rtol_Lp)
|
||||||
num%atol_Li = num_mech_eigen%get_asReal ('eps_abs_Li', defaultVal=num%atol_Lp)
|
num%atol_Li = num_mech_eigen%get_asReal ('eps_abs_Li', defaultVal=num%atol_Lp)
|
||||||
num%iJacoLiresiduum = num_mech_eigen%get_asInt ('f_update_jacobi_Li', defaultVal=num%iJacoLpresiduum)
|
num%iJacoLiresiduum = num_mech_eigen%get_asInt ('f_update_jacobi_Li', defaultVal=num%iJacoLpresiduum)
|
||||||
|
|
||||||
extmsg = ''
|
extmsg = ''
|
||||||
if (num%stepMinCryst <= 0.0_pREAL) extmsg = trim(extmsg)//' sub_step_min'
|
if (num%stepMinCryst <= 0.0_pREAL) extmsg = trim(extmsg)//' sub_step_min'
|
||||||
if (num%stepSizeCryst <= 0.0_pREAL) extmsg = trim(extmsg)//' sub_step_size'
|
if (num%stepSizeCryst <= 0.0_pREAL) extmsg = trim(extmsg)//' r_cutback_step'
|
||||||
if (num%stepIncreaseCryst <= 0.0_pREAL) extmsg = trim(extmsg)//' step_increase'
|
if (num%stepIncreaseCryst <= 0.0_pREAL) extmsg = trim(extmsg)//' r_increase_step'
|
||||||
if (num%stepSizeLp <= 0.0_pREAL) extmsg = trim(extmsg)//' sub_step_size_Lp'
|
if (num%stepSizeLp <= 0.0_pREAL) extmsg = trim(extmsg)//' r_cutback_step_Lp'
|
||||||
if (num%stepSizeLi <= 0.0_pREAL) extmsg = trim(extmsg)//' sub_step_size_Li'
|
if (num%stepSizeLi <= 0.0_pREAL) extmsg = trim(extmsg)//' r_cutback_step_Li'
|
||||||
if (num%rtol_Lp <= 0.0_pREAL) extmsg = trim(extmsg)//' epl_rel_Lp'
|
if (num%rtol_Lp <= 0.0_pREAL) extmsg = trim(extmsg)//' epl_rel_Lp'
|
||||||
if (num%atol_Lp <= 0.0_pREAL) extmsg = trim(extmsg)//' eps_abs_Lp'
|
if (num%atol_Lp <= 0.0_pREAL) extmsg = trim(extmsg)//' eps_abs_Lp'
|
||||||
if (num%rtol_Li <= 0.0_pREAL) extmsg = trim(extmsg)//' eps_rel_Li'
|
if (num%rtol_Li <= 0.0_pREAL) extmsg = trim(extmsg)//' eps_rel_Li'
|
||||||
if (num%atol_Li <= 0.0_pREAL) extmsg = trim(extmsg)//' eps_abs_Li'
|
if (num%atol_Li <= 0.0_pREAL) extmsg = trim(extmsg)//' eps_abs_Li'
|
||||||
if (num%iJacoLpresiduum < 1) extmsg = trim(extmsg)//' f_jacobi_residuum_update_Lp'
|
if (num%iJacoLpresiduum < 1) extmsg = trim(extmsg)//' f_update_jacobi_Lp'
|
||||||
if (num%iJacoLiresiduum < 1) extmsg = trim(extmsg)//' f_jacobi_residuum_update_Li'
|
if (num%iJacoLiresiduum < 1) extmsg = trim(extmsg)//' f_update_jacobi_Li'
|
||||||
if (num%nState < 1) extmsg = trim(extmsg)//' N_iter_state_max'
|
if (num%nState < 1) extmsg = trim(extmsg)//' N_iter_state_max'
|
||||||
if (num%nStress < 1) extmsg = trim(extmsg)//' N_iter_stress_max'
|
if (num%nStress_Lp < 1) extmsg = trim(extmsg)//' N_iter_Lp_max'
|
||||||
|
if (num%nStress_Li < 1) extmsg = trim(extmsg)//' N_iter_Li_max'
|
||||||
|
|
||||||
if (extmsg /= '') call IO_error(301,ext_msg=trim(extmsg))
|
if (extmsg /= '') call IO_error(301,ext_msg=trim(extmsg))
|
||||||
|
|
||||||
|
@ -452,7 +454,7 @@ function integrateStress(F,subFp0,subFi0,Delta_t,ph,en) result(broken)
|
||||||
NiterationStressLi = 0
|
NiterationStressLi = 0
|
||||||
LiLoop: do
|
LiLoop: do
|
||||||
NiterationStressLi = NiterationStressLi + 1
|
NiterationStressLi = NiterationStressLi + 1
|
||||||
if (NiterationStressLi>num%nStress) return ! error
|
if (NiterationStressLi>num%nStress_Li) return ! error
|
||||||
|
|
||||||
invFi_new = matmul(invFi_current,math_I3 - Delta_t*Liguess)
|
invFi_new = matmul(invFi_current,math_I3 - Delta_t*Liguess)
|
||||||
Fi_new = math_inv33(invFi_new)
|
Fi_new = math_inv33(invFi_new)
|
||||||
|
@ -465,7 +467,7 @@ function integrateStress(F,subFp0,subFi0,Delta_t,ph,en) result(broken)
|
||||||
NiterationStressLp = 0
|
NiterationStressLp = 0
|
||||||
LpLoop: do
|
LpLoop: do
|
||||||
NiterationStressLp = NiterationStressLp + 1
|
NiterationStressLp = NiterationStressLp + 1
|
||||||
if (NiterationStressLp>num%nStress) return ! error
|
if (NiterationStressLp>num%nStress_Lp) return ! error
|
||||||
|
|
||||||
B = math_I3 - Delta_t*Lpguess
|
B = math_I3 - Delta_t*Lpguess
|
||||||
Fe = matmul(matmul(A,B), invFi_new)
|
Fe = matmul(matmul(A,B), invFi_new)
|
||||||
|
|
Loading…
Reference in New Issue