better store data locally
This commit is contained in:
parent
79012c9ffb
commit
cde8c65bd1
|
@ -15,7 +15,6 @@ module crystallite
|
||||||
use DAMASK_interface
|
use DAMASK_interface
|
||||||
use config
|
use config
|
||||||
use debug
|
use debug
|
||||||
use numerics
|
|
||||||
use rotations
|
use rotations
|
||||||
use math
|
use math
|
||||||
use FEsolving
|
use FEsolving
|
||||||
|
@ -83,7 +82,8 @@ module crystallite
|
||||||
integer :: &
|
integer :: &
|
||||||
iJacoLpresiduum, & !< frequency of Jacobian update of residuum in Lp
|
iJacoLpresiduum, & !< frequency of Jacobian update of residuum in Lp
|
||||||
nState, & !< state loop limit
|
nState, & !< state loop limit
|
||||||
nStress !< stress loop limit
|
nStress, & !< stress loop limit
|
||||||
|
integrator !< integration scheme (ToDo: better use a string)
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
subStepMinCryst, & !< minimum (relative) size of sub-step allowed during cutback
|
subStepMinCryst, & !< minimum (relative) size of sub-step allowed during cutback
|
||||||
subStepSizeCryst, & !< size of first substep when cutback
|
subStepSizeCryst, & !< size of first substep when cutback
|
||||||
|
@ -175,6 +175,8 @@ subroutine crystallite_init
|
||||||
|
|
||||||
num%iJacoLpresiduum = config_numerics%getInt ('ijacolpresiduum', defaultVal=1)
|
num%iJacoLpresiduum = config_numerics%getInt ('ijacolpresiduum', defaultVal=1)
|
||||||
|
|
||||||
|
num%integrator = config_numerics%getInt ('integrator', defaultVal=1)
|
||||||
|
|
||||||
num%nState = config_numerics%getInt ('nstate', defaultVal=20)
|
num%nState = config_numerics%getInt ('nstate', defaultVal=20)
|
||||||
num%nStress = config_numerics%getInt ('nstress', defaultVal=40)
|
num%nStress = config_numerics%getInt ('nstress', defaultVal=40)
|
||||||
|
|
||||||
|
@ -191,10 +193,14 @@ subroutine crystallite_init
|
||||||
|
|
||||||
if(num%iJacoLpresiduum < 1) call IO_error(301,ext_msg='iJacoLpresiduum')
|
if(num%iJacoLpresiduum < 1) call IO_error(301,ext_msg='iJacoLpresiduum')
|
||||||
|
|
||||||
|
if(num%integrator < 1 .or. num%integrator > 5) &
|
||||||
|
call IO_error(301,ext_msg='integrator')
|
||||||
|
|
||||||
if(num%nState < 1) call IO_error(301,ext_msg='nState')
|
if(num%nState < 1) call IO_error(301,ext_msg='nState')
|
||||||
if(num%nStress< 1) call IO_error(301,ext_msg='nStress')
|
if(num%nStress< 1) call IO_error(301,ext_msg='nStress')
|
||||||
|
|
||||||
select case(numerics_integrator)
|
|
||||||
|
select case(num%integrator)
|
||||||
case(1)
|
case(1)
|
||||||
integrateState => integrateStateFPI
|
integrateState => integrateStateFPI
|
||||||
case(2)
|
case(2)
|
||||||
|
|
|
@ -20,8 +20,7 @@ module numerics
|
||||||
iJacoStiffness = 1, & !< frequency of stiffness update
|
iJacoStiffness = 1, & !< frequency of stiffness update
|
||||||
randomSeed = 0, & !< fixed seeding for pseudo-random number generator, Default 0: use random seed
|
randomSeed = 0, & !< fixed seeding for pseudo-random number generator, Default 0: use random seed
|
||||||
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)
|
||||||
numerics_integrator = 1 !< method used for state integration Default 1: fix-point iteration
|
|
||||||
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
|
||||||
real(pReal), protected, public :: &
|
real(pReal), protected, public :: &
|
||||||
|
@ -134,8 +133,6 @@ subroutine numerics_init
|
||||||
defgradTolerance = IO_floatValue(line,chunkPos,2)
|
defgradTolerance = IO_floatValue(line,chunkPos,2)
|
||||||
case ('ijacostiffness')
|
case ('ijacostiffness')
|
||||||
iJacoStiffness = IO_intValue(line,chunkPos,2)
|
iJacoStiffness = IO_intValue(line,chunkPos,2)
|
||||||
case ('integrator')
|
|
||||||
numerics_integrator = IO_intValue(line,chunkPos,2)
|
|
||||||
case ('usepingpong')
|
case ('usepingpong')
|
||||||
usepingpong = IO_intValue(line,chunkPos,2) > 0
|
usepingpong = IO_intValue(line,chunkPos,2) > 0
|
||||||
case ('unitlength')
|
case ('unitlength')
|
||||||
|
@ -176,6 +173,11 @@ subroutine numerics_init
|
||||||
case ('maxstaggerediter')
|
case ('maxstaggerediter')
|
||||||
stagItMax = IO_intValue(line,chunkPos,2)
|
stagItMax = IO_intValue(line,chunkPos,2)
|
||||||
|
|
||||||
|
#ifdef PETSC
|
||||||
|
case ('petsc_options')
|
||||||
|
petsc_options = trim(line(chunkPos(4):))
|
||||||
|
#endif
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! spectral parameters
|
! spectral parameters
|
||||||
#ifdef Grid
|
#ifdef Grid
|
||||||
|
@ -187,8 +189,6 @@ subroutine numerics_init
|
||||||
err_stress_tolrel = IO_floatValue(line,chunkPos,2)
|
err_stress_tolrel = IO_floatValue(line,chunkPos,2)
|
||||||
case ('err_stress_tolabs')
|
case ('err_stress_tolabs')
|
||||||
err_stress_tolabs = IO_floatValue(line,chunkPos,2)
|
err_stress_tolabs = IO_floatValue(line,chunkPos,2)
|
||||||
case ('petsc_options')
|
|
||||||
petsc_options = trim(line(chunkPos(4):))
|
|
||||||
case ('err_curl_tolabs')
|
case ('err_curl_tolabs')
|
||||||
err_curl_tolAbs = IO_floatValue(line,chunkPos,2)
|
err_curl_tolAbs = IO_floatValue(line,chunkPos,2)
|
||||||
case ('err_curl_tolrel')
|
case ('err_curl_tolrel')
|
||||||
|
@ -206,8 +206,6 @@ subroutine numerics_init
|
||||||
integrationorder = IO_intValue(line,chunkPos,2)
|
integrationorder = IO_intValue(line,chunkPos,2)
|
||||||
case ('structorder')
|
case ('structorder')
|
||||||
structorder = IO_intValue(line,chunkPos,2)
|
structorder = IO_intValue(line,chunkPos,2)
|
||||||
case ('petsc_options')
|
|
||||||
petsc_options = trim(line(chunkPos(4):))
|
|
||||||
case ('bbarstabilisation')
|
case ('bbarstabilisation')
|
||||||
BBarStabilisation = IO_intValue(line,chunkPos,2) > 0
|
BBarStabilisation = IO_intValue(line,chunkPos,2) > 0
|
||||||
#endif
|
#endif
|
||||||
|
@ -223,7 +221,6 @@ subroutine numerics_init
|
||||||
! writing parameters to output
|
! writing parameters to output
|
||||||
write(6,'(a24,1x,es8.1)') ' defgradTolerance: ',defgradTolerance
|
write(6,'(a24,1x,es8.1)') ' defgradTolerance: ',defgradTolerance
|
||||||
write(6,'(a24,1x,i8)') ' iJacoStiffness: ',iJacoStiffness
|
write(6,'(a24,1x,i8)') ' iJacoStiffness: ',iJacoStiffness
|
||||||
write(6,'(a24,1x,i8)') ' integrator: ',numerics_integrator
|
|
||||||
write(6,'(a24,1x,L8)') ' use ping pong scheme: ',usepingpong
|
write(6,'(a24,1x,L8)') ' use ping pong scheme: ',usepingpong
|
||||||
write(6,'(a24,1x,es8.1,/)')' unitlength: ',numerics_unitlength
|
write(6,'(a24,1x,es8.1,/)')' unitlength: ',numerics_unitlength
|
||||||
|
|
||||||
|
@ -266,7 +263,6 @@ subroutine numerics_init
|
||||||
write(6,'(a24,1x,es8.1)') ' err_curl_tolRel: ',err_curl_tolRel
|
write(6,'(a24,1x,es8.1)') ' err_curl_tolRel: ',err_curl_tolRel
|
||||||
write(6,'(a24,1x,es8.1)') ' polarAlpha: ',polarAlpha
|
write(6,'(a24,1x,es8.1)') ' polarAlpha: ',polarAlpha
|
||||||
write(6,'(a24,1x,es8.1)') ' polarBeta: ',polarBeta
|
write(6,'(a24,1x,es8.1)') ' polarBeta: ',polarBeta
|
||||||
write(6,'(a24,1x,a)') ' PETSc_options: ',trim(petsc_options)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
@ -274,16 +270,17 @@ subroutine numerics_init
|
||||||
#ifdef FEM
|
#ifdef FEM
|
||||||
write(6,'(a24,1x,i8)') ' integrationOrder: ',integrationOrder
|
write(6,'(a24,1x,i8)') ' integrationOrder: ',integrationOrder
|
||||||
write(6,'(a24,1x,i8)') ' structOrder: ',structOrder
|
write(6,'(a24,1x,i8)') ' structOrder: ',structOrder
|
||||||
write(6,'(a24,1x,a)') ' PETSc_options: ',trim(petsc_options)
|
|
||||||
write(6,'(a24,1x,L8)') ' B-Bar stabilisation: ',BBarStabilisation
|
write(6,'(a24,1x,L8)') ' B-Bar stabilisation: ',BBarStabilisation
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PETSC
|
||||||
|
write(6,'(a24,1x,a)') ' PETSc_options: ',trim(petsc_options)
|
||||||
|
#endif
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! sanity checks
|
! sanity checks
|
||||||
if (defgradTolerance <= 0.0_pReal) call IO_error(301,ext_msg='defgradTolerance')
|
if (defgradTolerance <= 0.0_pReal) call IO_error(301,ext_msg='defgradTolerance')
|
||||||
if (iJacoStiffness < 1) call IO_error(301,ext_msg='iJacoStiffness')
|
if (iJacoStiffness < 1) call IO_error(301,ext_msg='iJacoStiffness')
|
||||||
if (numerics_integrator <= 0 .or. numerics_integrator >= 6) &
|
|
||||||
call IO_error(301,ext_msg='integrator')
|
|
||||||
if (numerics_unitlength <= 0.0_pReal) call IO_error(301,ext_msg='unitlength')
|
if (numerics_unitlength <= 0.0_pReal) call IO_error(301,ext_msg='unitlength')
|
||||||
if (residualStiffness < 0.0_pReal) call IO_error(301,ext_msg='residualStiffness')
|
if (residualStiffness < 0.0_pReal) call IO_error(301,ext_msg='residualStiffness')
|
||||||
if (itmax <= 1) call IO_error(301,ext_msg='itmax')
|
if (itmax <= 1) call IO_error(301,ext_msg='itmax')
|
||||||
|
|
Loading…
Reference in New Issue