initialize-methods {simecol} | R Documentation |
This function is used to initialize objects derived from the
simObj
superclass, it is by default automatically called during
object creation and by sim
.
## S4 method for signature 'simObj' initialize(.Object, ...)
.Object |
|
... |
provided for compatibility with the default method of
|
Generic function: see new
.
The initialize
function is normally called implicitly by
new
to create new objects. It may also be called explicitly
to return a cloned and re-initialized object.
The simecol version of initialize
provides an
additonal mechanism to call a user specified function provided in
the initfun
slot of a simObj
instance that can
perform computations during the object creation process. The
initfunc
must have obj
as its only argument and must
return the modified version of this obj
, see examples
below. As a side effect end to ensure consistency,
initialize
clears outputs stored in slot out
from
former simulations.
## Note: new calls initialize and initialize calls initfunc(obj) lv_efr <- new("odeModel", main = function (time, init, parms, ...) { x <- init p <- parms S <- approxTime1(inputs, time, rule=2)["s.in"] dx1 <- S * p["k1"] * x[1] - p["k2"] * x[1] * x[2] dx2 <- - p["k3"] * x[2] + p["k2"] * x[1] * x[2] list(c(dx1, dx2)) }, parms = c(k1=0.2, k2=0.2, k3=0.2), times = c(from=0, to=100, by=0.5), init = c(prey=0.5, predator=1), solver = "lsoda", initfunc = function(obj) { tt <- fromtoby(times(obj)) inputs(obj) <- as.matrix(data.frame( time = tt, s.in = pmax(rnorm(tt, mean=1, sd=0.5), 0) )) obj } ) plot(sim(lv_efr)) # initialize called automatically plot(sim(lv_efr)) # automatic initialization, different figure lv_efr<- initialize(lv_efr) # re-initialize manually plot(sim(lv_efr, initialize = FALSE)) # simulation with that configuration