Adds a new kernel to the proto_ipm structure.
The name of the model.
The name of the new kernel.
A bare expression specifying the form of the kernel.
The type of kernel. Options are "CC" for continuous to continuous
transitions, "DC" for discrete to continuous (e.g. emergence from a seedbank),
"CD" for continuous to discrete (e.g. entering a seedbank), and "DD" for
discrete to discrete (e.g. stasis in a seedbank).
A set of named expressions that correspond
to vital rates in formula. Parameter set index syntax is supported.
A list of named values that correspond to constants in the formula
and vital rate expressions in ....
A list with character vector containing the names of each state variable used in the kernel.
A logical indicating whether or not the parameters in the kernel and/or its
underlying vital rates are derived from sets. See the
introduction vignette for this feature for more details
(vignettes(ipmr-introduction', package = 'ipmr')}, and
\code{vignettes( index-notation', package = 'ipmr')).
A named list with vectors corresponding to the values the index variable can take. The names should match the suffixes used in the vital rate expressions.
If init_ipm(uses_age = TRUE), a list with possibly
2 entries: 1. "age": the range
of possible ages in the model and, optionally, 2. "max_age": the maximum
age individuals in the model can attain. Otherwise, not used.
A logical indicating whether an eviction correction should be applied to the kernel.
If evict_cor = TRUE, then a function that corrects for it.
Currently, only truncated_distributions and discrete_extrema are
possible.
For simple_* models, this controls whether a "d_z"
is automatically appended to the formula argument. When TRUE,
this automatically generates formula * d_z. There may be some cases where
this behavior is not desirable. Set this to FALSE and specify the correct
form if needed. The default is TRUE. This argument is ignored for
all general_* models.
A proto_ipm.
Different classes of IPMs may have many or only a few kernels. Each
one requires its own call to define_kernel, though there are some exceptions,
namely for kernels derived for models derived from parameter sets (e.g. vital
rate models fit across plots and years).
A much more complete overview of how to generate kernels is provided in
vignette("ipmr-introduction", "ipmr").