Clock
The clock holds the current simulation time, iteration number, and time step stage. The time step stage is relevant only for the multi-stage time-stepper RungeKutta3TimeStepper
.
By default, Clock
s are initialized at iteration 0, and stage 1,
julia> clock = Clock(time=0.0)
Clock{Float64, Float64}(time=0 seconds, iteration=0, last_Δt=Inf days)
├── stage: 1
└── last_stage_Δt: Inf days
but can be modified to start the model clock at some other time. For example, passing
julia> clock = Clock(time=3600.0)
Clock{Float64, Float64}(time=1 hour, iteration=0, last_Δt=Inf days)
├── stage: 1
└── last_stage_Δt: Inf days
to the constructor for NonhydrostaticModel
causes the simulation time to start at $t = 3600$ seconds.
The type of the keyword argument time
should be a float or date type. To use the date type TimeDate
from the TimesDates.jl
package, for example, pass
julia> using TimesDates
julia> clock = Clock(time=TimeDate(2020))
Clock{TimesDates.TimeDate, Float64}(time=2020-01-01T00:00:00, iteration=0, last_Δt=Inf days)
├── stage: 1
└── last_stage_Δt: Inf days
to NonhydrostaticModel
. TimesDates.TimeDate
supports nanosecond resolution and is thus recommended over Base.Dates.DateTime
, which is also supported but has only millisecond resolution.