minor polishing
This commit is contained in:
parent
6e6e4dcdfd
commit
6f9f494654
|
@ -46,7 +46,7 @@ module CPFEM
|
||||||
|
|
||||||
type, private :: tNumerics
|
type, private :: tNumerics
|
||||||
integer :: &
|
integer :: &
|
||||||
iJacoStiffness !< frequency of stiffness update
|
iJacoStiffness !< frequency of stiffness update
|
||||||
end type tNumerics
|
end type tNumerics
|
||||||
|
|
||||||
type(tNumerics), private :: num
|
type(tNumerics), private :: num
|
||||||
|
|
|
@ -62,7 +62,7 @@ module homogenization
|
||||||
|
|
||||||
module subroutine mech_RGC_init(num_homogMech)
|
module subroutine mech_RGC_init(num_homogMech)
|
||||||
class(tNode), pointer, intent(in) :: &
|
class(tNode), pointer, intent(in) :: &
|
||||||
num_homogMech
|
num_homogMech !< pointer to mechanical homogenization numerics data
|
||||||
end subroutine mech_RGC_init
|
end subroutine mech_RGC_init
|
||||||
|
|
||||||
|
|
||||||
|
@ -139,8 +139,8 @@ subroutine homogenization_init
|
||||||
num_homogMech, &
|
num_homogMech, &
|
||||||
num_homogGeneric
|
num_homogGeneric
|
||||||
|
|
||||||
num_homog => numerics_root%get('homogenization',defaultVal=emptyDict)
|
num_homog => numerics_root%get('homogenization',defaultVal=emptyDict)
|
||||||
num_homogMech => num_homog%get('mech',defaultVal=emptyDict)
|
num_homogMech => num_homog%get('mech',defaultVal=emptyDict)
|
||||||
num_homogGeneric => num_homog%get('generic',defaultVal=emptyDict)
|
num_homogGeneric => num_homog%get('generic',defaultVal=emptyDict)
|
||||||
|
|
||||||
if (any(homogenization_type == HOMOGENIZATION_NONE_ID)) call mech_none_init
|
if (any(homogenization_type == HOMOGENIZATION_NONE_ID)) call mech_none_init
|
||||||
|
@ -169,7 +169,7 @@ subroutine homogenization_init
|
||||||
if (debug_g < 1 .or. debug_g > homogenization_Ngrains(material_homogenizationAt(debug_e))) &
|
if (debug_g < 1 .or. debug_g > homogenization_Ngrains(material_homogenizationAt(debug_e))) &
|
||||||
call IO_error(602,ext_msg='constituent', el=debug_e, g=debug_g)
|
call IO_error(602,ext_msg='constituent', el=debug_e, g=debug_g)
|
||||||
|
|
||||||
num%nMPstate = num_homogGeneric%get_asInt( 'nMPstate', defaultVal=10)
|
num%nMPstate = num_homogGeneric%get_asInt ('nMPstate', defaultVal=10)
|
||||||
num%subStepMinHomog = num_homogGeneric%get_asFloat('subStepMin', defaultVal=1.0e-3_pReal)
|
num%subStepMinHomog = num_homogGeneric%get_asFloat('subStepMin', defaultVal=1.0e-3_pReal)
|
||||||
num%subStepSizeHomog = num_homogGeneric%get_asFloat('subStepSize', defaultVal=0.25_pReal)
|
num%subStepSizeHomog = num_homogGeneric%get_asFloat('subStepSize', defaultVal=0.25_pReal)
|
||||||
num%stepIncreaseHomog = num_homogGeneric%get_asFloat('stepIncrease', defaultVal=1.5_pReal)
|
num%stepIncreaseHomog = num_homogGeneric%get_asFloat('stepIncrease', defaultVal=1.5_pReal)
|
||||||
|
|
|
@ -45,19 +45,19 @@ submodule(homogenization) homogenization_mech_RGC
|
||||||
|
|
||||||
type :: tNumerics_RGC
|
type :: tNumerics_RGC
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
atol, & !< absolute tolerance of RGC residuum
|
atol, & !< absolute tolerance of RGC residuum
|
||||||
rtol, & !< relative tolerance of RGC residuum
|
rtol, & !< relative tolerance of RGC residuum
|
||||||
absMax, & !< absolute maximum of RGC residuum
|
absMax, & !< absolute maximum of RGC residuum
|
||||||
relMax, & !< relative maximum of RGC residuum
|
relMax, & !< relative maximum of RGC residuum
|
||||||
pPert, & !< perturbation for computing RGC penalty tangent
|
pPert, & !< perturbation for computing RGC penalty tangent
|
||||||
xSmoo, & !< RGC penalty smoothing parameter (hyperbolic tangent)
|
xSmoo, & !< RGC penalty smoothing parameter (hyperbolic tangent)
|
||||||
viscPower, & !< power (sensitivity rate) of numerical viscosity in RGC scheme, Default 1.0e0: Newton viscosity (linear model)
|
viscPower, & !< power (sensitivity rate) of numerical viscosity in RGC scheme, Default 1.0e0: Newton viscosity (linear model)
|
||||||
viscModus, & !< stress modulus of RGC numerical viscosity, Default 0.0e0: No viscosity is applied
|
viscModus, & !< stress modulus of RGC numerical viscosity, Default 0.0e0: No viscosity is applied
|
||||||
refRelaxRate, & !< reference relaxation rate in RGC viscosity
|
refRelaxRate, & !< reference relaxation rate in RGC viscosity
|
||||||
maxdRelax, & !< threshold of maximum relaxation vector increment (if exceed this then cutback)
|
maxdRelax, & !< threshold of maximum relaxation vector increment (if exceed this then cutback)
|
||||||
maxVolDiscr, & !< threshold of maximum volume discrepancy allowed
|
maxVolDiscr, & !< threshold of maximum volume discrepancy allowed
|
||||||
volDiscrMod, & !< stiffness of RGC volume discrepancy (zero = without volume discrepancy constraint)
|
volDiscrMod, & !< stiffness of RGC volume discrepancy (zero = without volume discrepancy constraint)
|
||||||
volDiscrPow !< powerlaw penalty for volume discrepancy
|
volDiscrPow !< powerlaw penalty for volume discrepancy
|
||||||
end type tNumerics_RGC
|
end type tNumerics_RGC
|
||||||
|
|
||||||
type(tparameters), dimension(:), allocatable :: &
|
type(tparameters), dimension(:), allocatable :: &
|
||||||
|
@ -78,7 +78,7 @@ contains
|
||||||
module subroutine mech_RGC_init(num_homogMech)
|
module subroutine mech_RGC_init(num_homogMech)
|
||||||
|
|
||||||
class(tNode), pointer, intent(in) :: &
|
class(tNode), pointer, intent(in) :: &
|
||||||
num_homogMech
|
num_homogMech !< pointer to mechanical homogenization numerics data
|
||||||
|
|
||||||
integer :: &
|
integer :: &
|
||||||
Ninstance, &
|
Ninstance, &
|
||||||
|
@ -87,7 +87,7 @@ module subroutine mech_RGC_init(num_homogMech)
|
||||||
sizeState, nIntFaceTot
|
sizeState, nIntFaceTot
|
||||||
|
|
||||||
class (tNode), pointer :: &
|
class (tNode), pointer :: &
|
||||||
num_RGC
|
num_RGC ! pointer to RGC numerics data
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- homogenization_'//HOMOGENIZATION_RGC_label//' init -+>>>'; flush(6)
|
write(6,'(/,a)') ' <<<+- homogenization_'//HOMOGENIZATION_RGC_label//' init -+>>>'; flush(6)
|
||||||
|
|
||||||
|
@ -108,19 +108,19 @@ module subroutine mech_RGC_init(num_homogMech)
|
||||||
|
|
||||||
num_RGC => num_homogMech%get('RGC',defaultVal=emptyDict)
|
num_RGC => num_homogMech%get('RGC',defaultVal=emptyDict)
|
||||||
|
|
||||||
num%atol = num_RGC%get_asFloat('atol', defaultVal=1.0e+4_pReal)
|
num%atol = num_RGC%get_asFloat('atol', defaultVal=1.0e+4_pReal)
|
||||||
num%rtol = num_RGC%get_asFloat('rtol', defaultVal=1.0e-3_pReal)
|
num%rtol = num_RGC%get_asFloat('rtol', defaultVal=1.0e-3_pReal)
|
||||||
num%absMax = num_RGC%get_asFloat('amax', defaultVal=1.0e+10_pReal)
|
num%absMax = num_RGC%get_asFloat('amax', defaultVal=1.0e+10_pReal)
|
||||||
num%relMax = num_RGC%get_asFloat('rmax', defaultVal=1.0e+2_pReal)
|
num%relMax = num_RGC%get_asFloat('rmax', defaultVal=1.0e+2_pReal)
|
||||||
num%pPert = num_RGC%get_asFloat('perturbpenalty', defaultVal=1.0e-7_pReal)
|
num%pPert = num_RGC%get_asFloat('perturbpenalty', defaultVal=1.0e-7_pReal)
|
||||||
num%xSmoo = num_RGC%get_asFloat('relvantmismatch', defaultVal=1.0e-5_pReal)
|
num%xSmoo = num_RGC%get_asFloat('relvantmismatch', defaultVal=1.0e-5_pReal)
|
||||||
num%viscPower = num_RGC%get_asFloat('viscositypower', defaultVal=1.0e+0_pReal)
|
num%viscPower = num_RGC%get_asFloat('viscositypower', defaultVal=1.0e+0_pReal)
|
||||||
num%viscModus = num_RGC%get_asFloat('viscositymodulus', defaultVal=0.0e+0_pReal)
|
num%viscModus = num_RGC%get_asFloat('viscositymodulus', defaultVal=0.0e+0_pReal)
|
||||||
num%refRelaxRate = num_RGC%get_asFloat('refrelaxationrate',defaultVal=1.0e-3_pReal)
|
num%refRelaxRate = num_RGC%get_asFloat('refrelaxationrate', defaultVal=1.0e-3_pReal)
|
||||||
num%maxdRelax = num_RGC%get_asFloat('maxrelaxationrate',defaultVal=1.0e+0_pReal)
|
num%maxdRelax = num_RGC%get_asFloat('maxrelaxationrate', defaultVal=1.0e+0_pReal)
|
||||||
num%maxVolDiscr = num_RGC%get_asFloat('maxvoldiscrepancy',defaultVal=1.0e-5_pReal)
|
num%maxVolDiscr = num_RGC%get_asFloat('maxvoldiscrepancy', defaultVal=1.0e-5_pReal)
|
||||||
num%volDiscrMod = num_RGC%get_asFloat('voldiscrepancymod',defaultVal=1.0e+12_pReal)
|
num%volDiscrMod = num_RGC%get_asFloat('voldiscrepancymod', defaultVal=1.0e+12_pReal)
|
||||||
num%volDiscrPow = num_RGC%get_asFloat('dicrepancypower', defaultVal=5.0_pReal)
|
num%volDiscrPow = num_RGC%get_asFloat('dicrepancypower', defaultVal=5.0_pReal)
|
||||||
|
|
||||||
|
|
||||||
if (num%atol <= 0.0_pReal) call IO_error(301,ext_msg='absTol_RGC')
|
if (num%atol <= 0.0_pReal) call IO_error(301,ext_msg='absTol_RGC')
|
||||||
|
|
|
@ -20,12 +20,12 @@ module numerics
|
||||||
private
|
private
|
||||||
|
|
||||||
class(tNode), pointer, protected, public :: &
|
class(tNode), pointer, protected, public :: &
|
||||||
numerics_root
|
numerics_root !< root pointer storing the numerics YAML structure
|
||||||
integer, protected, public :: &
|
integer, protected, public :: &
|
||||||
worldrank = 0, & !< MPI worldrank (/=0 for MPI simulations only)
|
worldrank = 0, & !< MPI worldrank (/=0 for MPI simulations only)
|
||||||
worldsize = 1 !< MPI worldsize (/=1 for MPI simulations only)
|
worldsize = 1 !< MPI worldsize (/=1 for MPI simulations only)
|
||||||
integer(4), protected, public :: &
|
integer(4), protected, public :: &
|
||||||
DAMASK_NumThreadsInt = 0 !< value stored in environment variable DAMASK_NUM_THREADS, set to zero if no OpenMP directive
|
DAMASK_NumThreadsInt = 0 !< value stored in environment variable DAMASK_NUM_THREADS, set to zero if no OpenMP directive
|
||||||
|
|
||||||
public :: numerics_init
|
public :: numerics_init
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue