introduced itmin parameter for spectral code for defining minimum number of cycles
removed simplified_algorthim flag because the basic scheme using the polarization field will not be implemented introduced divergence_correction flag for making divergence criterion resolution-independent (still experimental and not set by default) corrected output and restart frequency (now modulo on incs of current load case)
This commit is contained in:
parent
89176ae7f1
commit
a98832100f
|
@ -55,5 +55,11 @@ fixed_seed 0 # put any number larger than zero, integer
|
||||||
## spectral parameters ##
|
## spectral parameters ##
|
||||||
err_div_tol 1.0e-4 # 1.0e-4 proposed by Suquet
|
err_div_tol 1.0e-4 # 1.0e-4 proposed by Suquet
|
||||||
err_stress_tolrel 0.01 # relative tolerance for fullfillment of stress BC
|
err_stress_tolrel 0.01 # relative tolerance for fullfillment of stress BC
|
||||||
|
fftw_timelimit -1.0 # timelimit of plan creation for FFTW, see manual on www.fftw.org, Default -1.0: disable timelimit
|
||||||
|
rotation_tol 1.0e-12 # tolerance of rotation specified in loadcase, Default 1.0e-12: first guess
|
||||||
|
fftw_plan_mode FFTW_PATIENT# reads the planing-rigor flag, see manual on www.fftw.org, Default FFTW_PATIENT: use patiant planner flag
|
||||||
itmax 20 # Maximum iteration number
|
itmax 20 # Maximum iteration number
|
||||||
|
itmin 2 # Minimum iteration number
|
||||||
memory_efficient 1 # Precalculate Gamma-operator (81 double per point)
|
memory_efficient 1 # Precalculate Gamma-operator (81 double per point)
|
||||||
|
update_gamma 0 # Update Gamma-operator with current dPdF (not possible if memory_efficient=1)
|
||||||
|
divergence_correction 0 # Use dimension-independent divergence criterion
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -72,11 +72,12 @@ real(pReal) :: relevantStrain = 1.0e-7_pReal, &
|
||||||
rotation_tol = 1.0e-12_pReal ! tolerance of rotation specified in loadcase, Default 1.0e-12: first guess
|
rotation_tol = 1.0e-12_pReal ! tolerance of rotation specified in loadcase, Default 1.0e-12: first guess
|
||||||
character(len=64) :: fftw_plan_mode = 'FFTW_PATIENT' ! reads the planing-rigor flag, see manual on www.fftw.org, Default FFTW_PATIENT: use patiant planner flag
|
character(len=64) :: fftw_plan_mode = 'FFTW_PATIENT' ! reads the planing-rigor flag, see manual on www.fftw.org, Default FFTW_PATIENT: use patiant planner flag
|
||||||
integer(pInt) :: fftw_planner_flag = -1_pInt, & ! conversion of fftw_plan_mode to integer, basically what is usually done in the include file of fftw
|
integer(pInt) :: fftw_planner_flag = -1_pInt, & ! conversion of fftw_plan_mode to integer, basically what is usually done in the include file of fftw
|
||||||
itmax = 20_pInt ! maximum number of iterations
|
itmax = 20_pInt, & ! maximum number of iterations
|
||||||
|
itmin = 2_pInt ! minimum number of iterations
|
||||||
logical :: memory_efficient = .true., & ! for fast execution (pre calculation of gamma_hat), Default .true.: do not precalculate
|
logical :: memory_efficient = .true., & ! for fast execution (pre calculation of gamma_hat), Default .true.: do not precalculate
|
||||||
divergence_correction = .false., & ! correct divergence calculation in fourier space, Default .false.: no correction
|
divergence_correction = .false., & ! correct divergence calculation in fourier space, Default .false.: no correction
|
||||||
update_gamma = .false., & ! update gamma operator with current stiffness, Default .false.: use initial stiffness
|
update_gamma = .false., & ! update gamma operator with current stiffness, Default .false.: use initial stiffness
|
||||||
simplified_algorithm = .true., & ! use short algorithm without fluctuation field, Default .true.: use simplified algorithm
|
!* end of spectral parameters:
|
||||||
analyticJaco = .false. ! use analytic Jacobian or perturbation, Default .false.: calculate Jacobian using perturbations
|
analyticJaco = .false. ! use analytic Jacobian or perturbation, Default .false.: calculate Jacobian using perturbations
|
||||||
|
|
||||||
|
|
||||||
|
@ -240,6 +241,8 @@ subroutine numerics_init()
|
||||||
err_stress_tolrel = IO_floatValue(line,positions,2_pInt)
|
err_stress_tolrel = IO_floatValue(line,positions,2_pInt)
|
||||||
case ('itmax')
|
case ('itmax')
|
||||||
itmax = IO_intValue(line,positions,2_pInt)
|
itmax = IO_intValue(line,positions,2_pInt)
|
||||||
|
case ('itmin')
|
||||||
|
itmin = IO_intValue(line,positions,2_pInt)
|
||||||
case ('memory_efficient')
|
case ('memory_efficient')
|
||||||
memory_efficient = IO_intValue(line,positions,2_pInt) > 0_pInt
|
memory_efficient = IO_intValue(line,positions,2_pInt) > 0_pInt
|
||||||
case ('fftw_timelimit')
|
case ('fftw_timelimit')
|
||||||
|
@ -252,8 +255,6 @@ subroutine numerics_init()
|
||||||
divergence_correction = IO_intValue(line,positions,2_pInt) > 0_pInt
|
divergence_correction = IO_intValue(line,positions,2_pInt) > 0_pInt
|
||||||
case ('update_gamma')
|
case ('update_gamma')
|
||||||
update_gamma = IO_intValue(line,positions,2_pInt) > 0_pInt
|
update_gamma = IO_intValue(line,positions,2_pInt) > 0_pInt
|
||||||
case ('simplified_algorithm')
|
|
||||||
simplified_algorithm = IO_intValue(line,positions,2_pInt) > 0_pInt
|
|
||||||
|
|
||||||
!* Random seeding parameters
|
!* Random seeding parameters
|
||||||
|
|
||||||
|
@ -339,6 +340,7 @@ subroutine numerics_init()
|
||||||
write(6,'(a24,1x,e8.1)') ' err_div_tol: ',err_div_tol
|
write(6,'(a24,1x,e8.1)') ' err_div_tol: ',err_div_tol
|
||||||
write(6,'(a24,1x,e8.1)') ' err_stress_tolrel: ',err_stress_tolrel
|
write(6,'(a24,1x,e8.1)') ' err_stress_tolrel: ',err_stress_tolrel
|
||||||
write(6,'(a24,1x,i8)') ' itmax: ',itmax
|
write(6,'(a24,1x,i8)') ' itmax: ',itmax
|
||||||
|
write(6,'(a24,1x,i8)') ' itmin: ',itmin
|
||||||
write(6,'(a24,1x,L8)') ' memory_efficient: ',memory_efficient
|
write(6,'(a24,1x,L8)') ' memory_efficient: ',memory_efficient
|
||||||
if(fftw_timelimit<0.0_pReal) then
|
if(fftw_timelimit<0.0_pReal) then
|
||||||
write(6,'(a24,1x,L8)') ' fftw_timelimit: ',.false.
|
write(6,'(a24,1x,L8)') ' fftw_timelimit: ',.false.
|
||||||
|
@ -350,7 +352,6 @@ subroutine numerics_init()
|
||||||
write(6,'(a24,1x,e8.1)') ' rotation_tol: ',rotation_tol
|
write(6,'(a24,1x,e8.1)') ' rotation_tol: ',rotation_tol
|
||||||
write(6,'(a24,1x,L8,/)') ' divergence_correction: ',divergence_correction
|
write(6,'(a24,1x,L8,/)') ' divergence_correction: ',divergence_correction
|
||||||
write(6,'(a24,1x,L8,/)') ' update_gamma: ',update_gamma
|
write(6,'(a24,1x,L8,/)') ' update_gamma: ',update_gamma
|
||||||
write(6,'(a24,1x,L8,/)') ' simplified_algorithm: ',simplified_algorithm
|
|
||||||
|
|
||||||
!* Random seeding parameters
|
!* Random seeding parameters
|
||||||
|
|
||||||
|
@ -411,6 +412,7 @@ subroutine numerics_init()
|
||||||
if (err_div_tol <= 0.0_pReal) call IO_error(301_pInt,ext_msg='err_div_tol')
|
if (err_div_tol <= 0.0_pReal) call IO_error(301_pInt,ext_msg='err_div_tol')
|
||||||
if (err_stress_tolrel <= 0.0_pReal) call IO_error(301_pInt,ext_msg='err_stress_tolrel')
|
if (err_stress_tolrel <= 0.0_pReal) call IO_error(301_pInt,ext_msg='err_stress_tolrel')
|
||||||
if (itmax <= 1.0_pInt) call IO_error(301_pInt,ext_msg='itmax')
|
if (itmax <= 1.0_pInt) call IO_error(301_pInt,ext_msg='itmax')
|
||||||
|
if (itmin > itmax) call IO_error(301_pInt,ext_msg='itmin')
|
||||||
|
|
||||||
if (fixedSeed <= 0_pInt) then
|
if (fixedSeed <= 0_pInt) then
|
||||||
!$OMP CRITICAL (write2out)
|
!$OMP CRITICAL (write2out)
|
||||||
|
|
Loading…
Reference in New Issue