examples follow current implementation
small polishing/consistent capitalization
This commit is contained in:
parent
0479db85ae
commit
9651f3e486
|
@ -25,30 +25,40 @@ homogenization:
|
||||||
stepIncrease: 1.5 # increase of next substep size when previous substep converged in homogenization (value higher than 1)
|
stepIncrease: 1.5 # increase of next substep size when previous substep converged in homogenization (value higher than 1)
|
||||||
nMPstate: 10 # materialpoint state loop limit
|
nMPstate: 10 # materialpoint state loop limit
|
||||||
|
|
||||||
grid:
|
solver:
|
||||||
eps_div_atol: 1.0e-3 # absolute tolerance for fulfillment of stress equilibrium
|
grid:
|
||||||
eps_div_rtol: 5.0e-4 # relative tolerance for fulfillment of stress equilibrium
|
N_staggered_iter_max: 10 # max number of field level staggered iterations
|
||||||
eps_curl_atol: 1.0e-12 # absolute tolerance for fulfillment of strain compatibility
|
N_cutback_max: 3 # maximum cut back level (0: 1, 1: 0.5, 2: 0.25, etc)
|
||||||
eps_curl_rtol: 5.0e-4 # relative tolerance for fulfillment of strain compatibility
|
|
||||||
eps_stress_atol: 1.0e+3 # absolute tolerance for fulfillment of stress BC
|
damage:
|
||||||
eps_stress_rtol: 0.01 # relative tolerance for fulfillment of stress BC
|
N_iter_max: 100 # maximum iteration number
|
||||||
eps_damage_atol: 1.0e-2 # absolute tolerance for damage evolution
|
eps_abs_phi: 1.0e-2 # absolute tolerance for damage evolution
|
||||||
eps_damage_rtol: 1.0e-6 # relative tolerance for damage evolution
|
eps_rel_phi: 1.0e-6 # relative tolerance for damage evolution
|
||||||
eps_thermal_atol: 1.0e-2 # absolute tolerance for thermal equilibrium
|
thermal:
|
||||||
eps_thermal_rtol: 1.0e-6 # relative tolerance for thermal equilibrium
|
N_iter_max: 100 # maximum iteration number
|
||||||
itmax: 250 # Maximum iteration number
|
eps_abs_T: 1.0e-2 # absolute tolerance for thermal equilibrium
|
||||||
itmin: 2 # Minimum iteration number
|
eps_rel_T: 1.0e-6 # relative tolerance for thermal equilibrium
|
||||||
fftw_timelimit: -1.0 # timelimit of plan creation for FFTW, see manual on www.fftw.org, Default -1.0: disable timelimit
|
|
||||||
fftw_plan_mode: FFTW_PATIENT # reads the planing-rigor flag, see manual on www.fftw.org, Default FFTW_PATIENT: use patient planner flag
|
mechanical:
|
||||||
maxCutBack: 3 # maximum cut back level (0: 1, 1: 0.5, 2: 0.25, etc)
|
eps_abs_div(P): 1.0e-4 # absolute tolerance for fulfillment of stress equilibrium
|
||||||
maxStaggeredIter: 10 # max number of field level staggered iterations
|
eps_rel_div(P): 5.0e-4 # relative tolerance for fulfillment of stress equilibrium
|
||||||
memory_efficient: 1 # Precalculate Gamma-operator (81 double per point)
|
eps_abs_P: 1.0e3 # absolute tolerance for fulfillment of stress BC
|
||||||
|
eps_rel_P: 1.0e-3 # relative tolerance for fulfillment of stress BC
|
||||||
|
N_iter_min: 1 # minimum iteration number
|
||||||
|
N_iter_max: 100 # maximum iteration number
|
||||||
update_gamma: false # Update Gamma-operator with current dPdF (not possible if memory_efficient=1)
|
update_gamma: false # Update Gamma-operator with current dPdF (not possible if memory_efficient=1)
|
||||||
divergence_correction: 2 # Use size-independent divergence criterion
|
|
||||||
|
FFT:
|
||||||
|
memory_efficient: True # Precalculate Gamma-operator (81 double per point)
|
||||||
|
divergence_correction: size+grid # Use size-independent divergence criterion
|
||||||
derivative: continuous # Approximation used for derivatives in Fourier space
|
derivative: continuous # Approximation used for derivatives in Fourier space
|
||||||
petsc_options: -snes_type ngmres -snes_ngmres_anderson # PetSc solver options
|
FFTW_plan_mode: FFTW_MEASURE # planing-rigor flag, see manual on www.fftw.org
|
||||||
|
FFTW_timelimit: -1.0 # timelimit of plan creation for FFTW, see manual on www.fftw.org. -1.0: disable timelimit
|
||||||
|
PETSc_options: -snes_type ngmres -snes_ngmres_anderson # PETSc solver options
|
||||||
alpha: 1.0 # polarization scheme parameter 0.0 < alpha < 2.0. alpha = 1.0 ==> AL scheme, alpha = 2.0 ==> accelerated scheme
|
alpha: 1.0 # polarization scheme parameter 0.0 < alpha < 2.0. alpha = 1.0 ==> AL scheme, alpha = 2.0 ==> accelerated scheme
|
||||||
beta: 1.0 # polarization scheme parameter 0.0 < beta < 2.0. beta = 1.0 ==> AL scheme, beta = 2.0 ==> accelerated scheme
|
beta: 1.0 # polarization scheme parameter 0.0 < beta < 2.0. beta = 1.0 ==> AL scheme, beta = 2.0 ==> accelerated scheme
|
||||||
|
eps_abs_curl(F): 1.0e-10 # absolute tolerance for fulfillment of strain compatibility
|
||||||
|
eps_rel_curl(F): 5.0e-4 # relative tolerance for fulfillment of strain compatibility
|
||||||
|
|
||||||
mesh:
|
mesh:
|
||||||
maxCutBack: 3 # maximum cut back level (0: 1, 1: 0.5, 2: 0.25, etc)
|
maxCutBack: 3 # maximum cut back level (0: 1, 1: 0.5, 2: 0.25, etc)
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
grid:
|
grid:
|
||||||
|
mechanical:
|
||||||
itmin: 4
|
itmin: 4
|
||||||
itmax: 40
|
itmax: 40
|
||||||
|
|
|
@ -135,9 +135,9 @@ subroutine grid_mechanical_spectral_basic_init(num_grid)
|
||||||
num_grid_fft => num_grid%get_dict('FFT',defaultVal=emptyDict)
|
num_grid_fft => num_grid%get_dict('FFT',defaultVal=emptyDict)
|
||||||
num_grid_mech => num_grid%get_dict('mechanical',defaultVal=emptyDict)
|
num_grid_mech => num_grid%get_dict('mechanical',defaultVal=emptyDict)
|
||||||
|
|
||||||
num%itmin = num_grid_mech%get_asInt ('N_iter_min',defaultVal=1)
|
num%itmin = num_grid_mech%get_asInt('N_iter_min',defaultVal=1)
|
||||||
num%itmax = num_grid_mech%get_asInt ('N_iter_max',defaultVal=100)
|
num%itmax = num_grid_mech%get_asInt('N_iter_max',defaultVal=100)
|
||||||
num%update_gamma = num_grid_mech%get_asBool ('update_gamma',defaultVal=.false.)
|
num%update_gamma = num_grid_mech%get_asBool('update_gamma',defaultVal=.false.)
|
||||||
num%eps_div_atol = num_grid_mech%get_asReal('eps_abs_div(P)', defaultVal=1.0e-4_pREAL)
|
num%eps_div_atol = num_grid_mech%get_asReal('eps_abs_div(P)', defaultVal=1.0e-4_pREAL)
|
||||||
num%eps_div_rtol = num_grid_mech%get_asReal('eps_rel_div(P)', defaultVal=5.0e-4_pREAL)
|
num%eps_div_rtol = num_grid_mech%get_asReal('eps_rel_div(P)', defaultVal=5.0e-4_pREAL)
|
||||||
num%eps_stress_atol = num_grid_mech%get_asReal('eps_abs_P', defaultVal=1.0e3_pREAL)
|
num%eps_stress_atol = num_grid_mech%get_asReal('eps_abs_P', defaultVal=1.0e3_pREAL)
|
||||||
|
|
|
@ -146,9 +146,9 @@ subroutine grid_mechanical_spectral_polarization_init(num_grid)
|
||||||
num_grid_fft => num_grid%get_dict('FFT',defaultVal=emptyDict)
|
num_grid_fft => num_grid%get_dict('FFT',defaultVal=emptyDict)
|
||||||
num_grid_mech => num_grid%get_dict('mechanical',defaultVal=emptyDict)
|
num_grid_mech => num_grid%get_dict('mechanical',defaultVal=emptyDict)
|
||||||
|
|
||||||
num%itmin = num_grid_mech%get_asInt ('N_iter_min',defaultVal=1)
|
num%itmin = num_grid_mech%get_asInt('N_iter_min',defaultVal=1)
|
||||||
num%itmax = num_grid_mech%get_asInt ('N_iter_max',defaultVal=100)
|
num%itmax = num_grid_mech%get_asInt('N_iter_max',defaultVal=100)
|
||||||
num%update_gamma = num_grid_mech%get_asBool ('update_gamma',defaultVal=.false.)
|
num%update_gamma = num_grid_mech%get_asBool('update_gamma',defaultVal=.false.)
|
||||||
num%eps_div_atol = num_grid_mech%get_asReal('eps_abs_div(P)', defaultVal=1.0e-4_pREAL)
|
num%eps_div_atol = num_grid_mech%get_asReal('eps_abs_div(P)', defaultVal=1.0e-4_pREAL)
|
||||||
num%eps_div_rtol = num_grid_mech%get_asReal('eps_rel_div(P)', defaultVal=5.0e-4_pREAL)
|
num%eps_div_rtol = num_grid_mech%get_asReal('eps_rel_div(P)', defaultVal=5.0e-4_pREAL)
|
||||||
num%eps_curl_atol = num_grid_mech%get_asReal('eps_abs_curl(F)',defaultVal=1.0e-10_pREAL)
|
num%eps_curl_atol = num_grid_mech%get_asReal('eps_abs_curl(F)',defaultVal=1.0e-10_pREAL)
|
||||||
|
|
|
@ -226,7 +226,7 @@ subroutine spectral_utilities_init()
|
||||||
scaledGeomSize = geomSize
|
scaledGeomSize = geomSize
|
||||||
end if
|
end if
|
||||||
|
|
||||||
select case(IO_lc(num_grid_fft%get_asStr('plan_mode',defaultVal='FFTW_MEASURE')))
|
select case(IO_lc(num_grid_fft%get_asStr('FFTW_plan_mode',defaultVal='FFTW_MEASURE')))
|
||||||
case('fftw_estimate', 'FFTW_ESTIMATE') ! ordered from slow execution (but fast plan creation) to fast execution
|
case('fftw_estimate', 'FFTW_ESTIMATE') ! ordered from slow execution (but fast plan creation) to fast execution
|
||||||
FFTW_planner_flag = FFTW_ESTIMATE
|
FFTW_planner_flag = FFTW_ESTIMATE
|
||||||
case('fftw_measure', 'FFTW_MEASURE')
|
case('fftw_measure', 'FFTW_MEASURE')
|
||||||
|
@ -243,7 +243,7 @@ subroutine spectral_utilities_init()
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! general initialization of FFTW (see manual on fftw.org for more details)
|
! general initialization of FFTW (see manual on fftw.org for more details)
|
||||||
if (pREAL /= C_DOUBLE .or. kind(1) /= C_INT) error stop 'C and Fortran datatypes do not match'
|
if (pREAL /= C_DOUBLE .or. kind(1) /= C_INT) error stop 'C and Fortran datatypes do not match'
|
||||||
call fftw_set_timelimit(num_grid_fft%get_asReal('fftw_timelimit',defaultVal=300.0_pREAL))
|
call fftw_set_timelimit(num_grid_fft%get_asReal('FFTW_timelimit',defaultVal=300.0_pREAL))
|
||||||
|
|
||||||
print'(/,1x,a)', 'FFTW initialized'; flush(IO_STDOUT)
|
print'(/,1x,a)', 'FFTW initialized'; flush(IO_STDOUT)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue