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.