Scruff.Models

Scruff.Models.FixedTimeModelType
abstract 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.

source
Scruff.Models.HomogeneousModelType
HomogeneousModel{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).

source
Scruff.Models.InstantModelType
abstract 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)

source
Scruff.Models.SimpleModelType
struct 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.

source
Scruff.Models.StaticModelType
struct 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.

source
Scruff.Models.TimelessFixedTimeModelType
abstract 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.

source
Scruff.Models.VariableTimeModelType
abstract 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.

source