The function mk_event_poisson
is used to create an event with intensity of type Poisson (constant intensity which does not depend on population or time).
When the event occurs, something happens in the population.
The created event must be used with mk_model
.
mk_event_poisson(type, name, intensity, kernel_code = "")
Must be one of 'birth'
, 'death'
, 'entry'
, 'exit'
, 'swap'
or 'custom'
. See details.
(Optional) If not specified, the name given to the event is its type.
String containing some constant positive value, or name of a parameter which is a constant positive value.
String containing some C++ code describing the event action. Optional for 'birth'
, 'death'
and 'exit'
events. See details.
An S3 object of class event
of type Poisson.
The type
argument is one of the following
'birth'
By default, a new individual newI
is created, with the same characteristics of the parent I
and birth date equal to the current time. Optional code can be precised in kernel_code
.
'death'
By default, the individual I
dies. Optional code can be precised in kernel_code
.
'entry'
A new individual newI
is added to the population, and its characteristics have to be defined by the user in the entry kernel_code
.
'exit'
An individual I
exits from the population. Optional code can be precised in kernel_code
.
'swap'
The user can change the characteristics of the selected individual I
. This requires kernel_code
.
'custom'
None of the above types, the user defines kernel_code
that can act on the selected individual I
and on the population pop
.
The kernel_code
argument is a string containing some C++ code which describing the action of the event. Some of available variables in the C++ code are: t
(the current time), pop
(the current population), I
(the current individual selected for the event), newI
(the new individual if 'birth'
or 'entry'
event), the name of the model parameters (some variables, or functions, see mk_model
).
See vignette('IBMPopSim')
for more details.
birth <- mk_event_poisson('birth', intensity = 10)
# \donttest{
params <- list(beta = 10)
death <- mk_event_poisson('death', intensity = 'beta') # name of one parameter
mk_model(events = list(birth, death), parameters = params)
#> Events:
#> #1: poisson event of type birth
#> #2: poisson event of type death
#> ---------------------------------------
#> Individual description:
#> names: birth death
#> R types: double double
#> C types: double double
#> ---------------------------------------
#> R parameters available in C++ code:
#> names: beta
#> R types: double
#> C types: double
# }