Houses basic timeloop class responsible for the main computation-output loop in simulations
Initialize timeloop parameters using config file and time normalization from normObj
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Timeloop), | intent(inout) | :: | this | |||
class(EnvironmentWrapper), | intent(inout) | :: | envObj | |||
class(Normalization), | intent(in) | :: | normObj |
Perform loop based on timeloop parameters and using passed modeller and environment
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Timeloop), | intent(inout) | :: | this | |||
class(EnvironmentWrapper), | intent(inout) | :: | envObj | |||
type(Modeller), | intent(inout) | :: | modellerObj |
Object responsible for the main integration loop
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public | :: | userDefined | = | .false. |
True only if user explicitly sets it to true |
|
integer(kind=ik), | private | :: | modeTimeloop |
Loop mode: 0 - fixed step number, 1 - target elapsed time (default 0), 2 - output-driven mode |
|||
integer(kind=ik), | private | :: | numTimesteps |
Fixed step number for loop mode 0 |
|||
real(kind=rk), | private | :: | targetTime |
Target time value for loop mode 1 |
|||
integer(kind=ik), | private | :: | modeSave |
Save mode: 0 - fixed save frequency, 1 - save with minimum time interval |
|||
integer(kind=ik), | private | :: | saveSteps |
Fixed step number for save mode 0 |
|||
real(kind=rk), | private | :: | minSaveInterval |
Minimum time interval between saves for save mode 1 |
|||
real(kind=rk), | public, | allocatable, dimension(:) | :: | outputPoints |
List of points to output (will use smaller timesteps if necessary) |
||
logical, | private | :: | loadRestart |
True if restart files should be loaded at the start of the loop |
|||
logical, | private | :: | loadSerial |
True if initial values are loaded from a serial file |
|||
logical, | private | :: | saveRestart |
True if restart files should be saved |
|||
logical, | private | :: | resetTimeRestart |
True if on loaded restart the time variable (if present) should be reset to 0 |
|||
integer(kind=ik), | private | :: | restartFrequency |
Number of steps between restart saves |
|||
integer(kind=ik), | private | :: | initialOutputIndex |
Initial output index (useful when restarting so no files are overwritten) |
|||
character(len=:), | private, | allocatable | :: | loadFilename |
Serial load filename - default "ReMKiT1DVarInput" |
||
type(VariableContainer), | private, | allocatable | :: | bufferVars | |||
type(HDF5Controller), | private, | allocatable | :: | inputHDF5Controller |
Controller used to input variables |
procedure, public :: isDefined => isDefinedObject | |
procedure, public :: makeDefined => makeDefinedObject | |
procedure, public :: makeUndefined => makeUndefinedObject | |
procedure, public :: init => initStandardTimeloop | |
procedure, public :: loop |