simInit
and spades
togetherThese functions are convenience wrappers that may allow for more efficient caching.
Passes all arguments to simInit()
, then passes the created simList
to spades()
.
simInitAndSpades(
times,
params,
modules,
objects,
paths,
inputs,
outputs,
loadOrder,
notOlderThan,
debug,
progress,
cache,
.plots,
.plotInitialTime,
.saveInitialTime,
events,
...
)
Same as spades()
(a simList
) or
A named list of numeric simulation start and end times
(e.g., times = list(start = 0.0, end = 10.0, timeunit = "year")
),
with the final optional element, timeunit
, overriding the default
time unit used in the simulation which is the "smallest time unit" across all
modules. See examples.
A list of lists of the form list(moduleName=list(param1=value, param2=value))
.
See details.
A named list of character strings specifying the names of modules to be loaded
for the simulation.
Note: the module name should correspond to the R source file from which the module is loaded.
Example: a module named "caribou" will be sourced form the file caribou.R
,
located at the specified modulePath(simList)
(see below).
(optional) A vector of object names (naming objects
that are in the calling environment of
the simInit
, which is often the
.GlobalEnv
unless used programmatically.
NOTE: this mechanism will
fail if object name is in a package dependency), or
a named list of data objects to be
passed into the simList
(more reliable).
These objects will be accessible
from the simList
as a normal list, e.g,. mySim$obj
.
An optional named list with up to 4 named elements,
modulePath
, inputPath
, outputPath
, and cachePath
.
See details. NOTE: Experimental feature now allows for multiple modulePath
s
to be specified in a character vector. The modules will be searched for sequentially
in the first modulePath
, then if it doesn't find it, in the second etc.
A data.frame
. Can specify from 1 to 6
columns with following column names: objectName
(character, required),
file
(character), fun
(character), package
(character),
interval
(numeric), loadTime
(numeric).
See inputs()
and vignette("ii-modules") section about inputs.
A data.frame
. Can specify from 1 to 5
columns with following column names: objectName
(character, required),
file
(character), fun
(character), package
(character),
saveTime
(numeric) and eventPriority
(numeric). If
eventPriority
is not set, it defaults to .last()
. If eventPriority
is set to a low value, e.g., 0, 1, 2 and saveTime
is start(sim)
,
it should give "initial conditions".
See outputs()
and
vignette("ii-modules")
section about outputs.
An optional character vector of module names specifying the order in which to load the modules. If not specified, the module load order will be determined automatically.
A time, as in from Sys.time()
. This is passed into
the Cache
function that wraps .inputObjects
.
If the module uses the .useCache
parameter and it is
set to TRUE
or ".inputObjects"
,
then the .inputObjects
will be cached.
Setting notOlderThan = Sys.time()
will cause the
cached versions of .inputObjects
to be refreshed,
i.e., rerun.
Optional tools for invoking debugging. Supplying a list
will invoke the more powerful logging
package. See details.
Default is to use the value in getOption("spades.debug")
.
Logical (TRUE
or FALSE
show a graphical progress bar),
character ("graphical"
, "text"
) or numeric indicating
the number of update intervals to show in a graphical progress bar.
Logical. If TRUE
, then the spades
call will be cached.
This means that if the call is made again with the same simList
,
then spades
will return the return value from the previous run
of that exact same simList
. Default FALSE
. See Details.
See also the vignette on caching for examples.
Character. Sets the parameter of this name in all modules.
See Plots()
for possible values. The parameter is intended to slowly
take over from .plotInitialTime
as a mechanism to turn on or off plotting.
For backwards compatibility, if .plotInitialTime
is not set in this spades
call,
but this .plots
is used, two things will happen: setting this without "screen"
will turn off all plotting; setting this with "screen"
will trigger
plotting for any modules that use this parameter but will have no effect on
other modules. To get plotting, therefore, it may be necessary to also set
.plotInitialTime = start(sim)
.
Numeric. Temporarily override the .plotInitialTime
parameter for all modules. See Details.
Numeric. Temporarily override the .plotInitialTime
parameter for all modules. See Details.
A character vector or a named list of character vectors. If specified,
the simulations will only do the events indicated here. If a named list, the names
must correspond to the modules and the character vectors can be specific events within
each of the named modules. With the list
form, all unspecified modules
will run all their events, including internal spades modules, e.g., save
,
that get invoked with the outputs
argument in simInit
. See example.
Arguments passed to simInit()
and spades()
simInit()
, spades()