Scruff.Models
Scruff.Models.FixedTimeModel
— Typeabstract type FixedTimeModel{I,O} <: Model{I,O}
A dynamic model described only for fixed time delta. Must implement get_initial
, get_transition
, and get_dt
. These can depend on the current time.
Scruff.Models.HomogeneousModel
— TypeHomogeneousModel{I,O} <: FixedTimeModel{I,O}
A dynamic model with a fixed time step and same transition model at every time point.. The constructor is called with the initial sfunc and transition sfuncs. The constructor is also called with an optional dt (defaults to 1).
Scruff.Models.InstantModel
— Typeabstract type InstantModel{I,O} <: Model{I,Nothing,O}
A model for a variable with no time dependencies. Since this model has no transitions, it can only called with make_initial
and not make_transition
(i.e. make_transition
= make_initial
)
Scruff.Models.SimpleModel
— Typestruct SimpleModel{I,O} <: TimelessInstantModel{I,O}
A model that always produces the same SFunc. This is an TimelessInstantModel, so must always be called when the parents are the same time point. The constructor takes the sfunc as argument, which is stored. There is a convenience method to create a SimpleModel for any sfunc by applying the sfunc to zero arguments.
Scruff.Models.StaticModel
— Typestruct StaticModel{I,O} <: VariableTimeModel{I,O,O} end
A static model represents a variable that never changes its value. The value is setup through an sfunc created by make_initial. At any time point, it simply copies its previous value. Because it can be used flexibly, we make it a subtype of VariableTimeModel.
Scruff.Models.TimelessFixedTimeModel
— Typeabstract type TimelessFixedTimeModel{I,J,O} <: FixedTimeModel{I,J,O}
A FixedTimeModel in which the initial and transition models do not depend on the current time. In addition to get_dt
, must implement a version of get_initial
and get_transition
that do not take the current time as an argument.
Scruff.Models.VariableTimeModel
— Typeabstract type VariableTimeModel{I,J,O} <: Model{I,J,O}
A model that creates sfuncs based on the time delta between the parents and the current instance. In general, the deltas can be different for different parents. This type does not introduce any new functionality over Model. Its purpose is to make explicit the fact that for this type of model, separate time deltas are possible. Must implement 'makeinitial', which takes the current time, and 'maketransition', which takes the current time and parent times.