SimInf_model objectConstruct a low-level SimInf_model object. This function is
typically used internally by model constructors (e.g.,
SIR(), mparse()) or for advanced usage where custom
model definitions (e.g., user-provided C code or non-standard
matrices) are required.
SimInf_model(
G,
S,
tspan,
events = NULL,
ldata = NULL,
gdata = NULL,
U = NULL,
u0 = NULL,
v0 = NULL,
V = NULL,
E = NULL,
N = NULL,
replicates = NULL,
C_code = NULL
)A SimInf_model object.
Dependency Graph. Indicates which transition
rates need updating after a state transition. Can be provided
as a sparse matrix (class dgCMatrix) or a dense matrix.
If a dense matrix is provided, it is automatically converted
to a sparse format internally. See
SimInf_model for detailed matrix layout.
State Transition Matrix. Defines the change in
the state vector for each transition. Can be provided as a
sparse matrix (class dgCMatrix) or a dense matrix. If
a dense matrix is provided, it is automatically converted to a
sparse format internally. See
SimInf_model for detailed matrix layout.
Time Span (numeric or Date vector).
Increasing time points for output. If Date, converted
to days with names, where tspan[1] becomes the day of
the year of the first year of tspan. The dates are
added as names to the numeric vector.
Scheduled Events. A data.frame
defining the event schedule (see
SimInf_events).
Local Data. Parameters specific to each node. Can be:
A data.frame with one row per node.
A matrix where each column ldata[, j] is the
data vector for node j.
Passed to transition rate and post-step functions.
Global Data (numeric vector). Parameters common to all nodes. Passed to transition rate and post-step functions.
Result Matrix (integer matrix). Usually empty
at creation. See SimInf_model for
detailed matrix layout.
Initial State. Initial number of individuals per compartment/node. Can be:
A matrix (\(N_c \times N_n\)).
A data.frame with columns corresponding to
compartments.
Any object coercible to a data.frame (e.g., a
named numeric vector will be coerced to a one-row
data.frame).
Initial Continuous State (numeric matrix). Initial values for continuous states per node.
Continuous State Result Matrix (numeric matrix).
Usually empty at creation. See
SimInf_model for layout.
Select Matrix (matrix or data.frame).
Defines which compartments are affected by events and their
sampling weights.
Matrix: Standard sparse matrix.
data.frame: Must have columns
compartment and select. Optional column
value (default 1) sets the weight.
See SimInf_events for usage details.
Shift Matrix (matrix or data.frame).
Defines how individuals are moved between compartments during
events.
Matrix: Standard integer matrix.
data.frame: Must have columns
compartment, shift, and value
(integer offset).
See SimInf_events for usage details.
Number of model replicates to simulate (default
NULL, treated as 1L). When replicates >
1L, each replicate is simulated independently using its own
initial state (from u0), but shares the same parameters
(gdata, ldata), scheduled events, and structure
(transitions, compartments).
The u0 argument must contain initial states for all
replicates. Each replicate requires n nodes, where
n is the number of nodes in the model. Thus, u0
must have replicates * n nodes total. Nodes are grouped
by replicate: the first n nodes belong to replicate 1,
the next n to replicate 2, and so on. This allows
different starting conditions per replicate if desired.
ldata remains unchanged: its data per node is shared
across all replicates. Scheduled events are also shared—the
same event schedule applies to each replicate.
Use this when you need multiple independent stochastic
trajectories from the same model in a single simulation run.
For identical starting conditions across replicates, simply
repeat the same node pattern in u0.
C Source Code (character vector). Optional
C code for custom transition rates. If provided, it is
compiled and loaded when run() is called.
SIR, SEIR, SIS,
SISe for examples of compartment model
constructors that handle argument validation and matrix setup.
mparse for creating custom models using a simple
string syntax. SimInf_model for details
on the class structure and slots. SimInf_events
for details on the event schedule format.