Class SIR
- All Implemented Interfaces:
Runnable
,IBS.HasIBS
,MilestoneListener
,Model.HasDE
,Model.HasDE.ODE
,Model.HasDE.PDE
,Model.HasDE.SDE
,Features
,HasHistogram
,HasHistogram.Degree
,HasHistogram.StatisticsProbability
,HasHistogram.StatisticsStationary
,HasHistogram.StatisticsTime
,HasMean
,HasMean.Traits
,HasPop2D
,HasPop2D.Traits
,HasPop3D
,HasPop3D.Traits
,HasS3
,CLOProvider
- S -> I: Susceptible individuals become infected with a certain probability/rate
- I -> R: Infected individuals recover with a certain probability/rate
- I -> S: Infected individuals can become susceptible again (optional)
- R -> S: Recovered individuals can become susceptible again with a certain probability/rate
- Author:
- Christoph Hauert
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclass
Population for individual based simulations of the SIR module.class
ODE model for the SIR module.class
PDE model for the SIR module.class
SDE model for the SIR module.Nested classes/interfaces inherited from interface Features
Features.Groups, Features.Multispecies, Features.Pairs, Features.Payoffs, Features.Static
Nested classes/interfaces inherited from interface HasHistogram
HasHistogram.Degree, HasHistogram.Fitness, HasHistogram.StatisticsProbability, HasHistogram.StatisticsStationary, HasHistogram.StatisticsTime, HasHistogram.Strategy
Nested classes/interfaces inherited from interface HasMean
HasMean.Fitness, HasMean.Traits
Nested classes/interfaces inherited from interface HasPop2D
HasPop2D.Fitness, HasPop2D.Traits
Nested classes/interfaces inherited from interface HasPop3D
HasPop3D.Fitness, HasPop3D.Traits
Nested classes/interfaces inherited from interface IBS.HasIBS
IBS.HasIBS.CGroups, IBS.HasIBS.CPairs, IBS.HasIBS.DGroups, IBS.HasIBS.DPairs, IBS.HasIBS.MCGroups, IBS.HasIBS.MCPairs
Nested classes/interfaces inherited from interface Model.HasDE
Model.HasDE.DGroups, Model.HasDE.DPairs, Model.HasDE.DualDynamics, Model.HasDE.EM, Model.HasDE.PDEADV, Model.HasDE.PDERD, Model.HasDE.RK5
-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal CLOption
Command line option to set the transition probability for S -> I.final CLOption
Command line option to set the transition probability for I -> R.final CLOption
Command line option to set the transition probability for R -> S.(package private) static final int
The index of the infected trait/cohort.(package private) double
The transition probability/rate for infected to recovered, I -> R.(package private) double
The transition probability/rate for infected to susceptible, I -> S.(package private) double
The transition probability/rate for recovered to susceptible, R -> S.(package private) double
The transition probability/rate for susceptibles to infected, S -> I.(package private) static final int
The index of the recovered trait/cohort.(package private) static final int
The index of the susceptible trait/cohort.Fields inherited from class Discrete
cloMonoStop, monoStop, mutation, species
Fields inherited from class Module
active, cloDeathRate, cloGeometry, cloNGroup, cloNPopulation, cloPhase2DAxes, cloTraitColors, cloTraitDisable, cloTraitNames, competition, deathRate, defaultColor, engine, ibs, ID, interaction, logger, map2fitness, markers, model, nActive, name, nGroup, nPopulation, nTraits, opponent, playerUpdate, structure, traitColor, traitName, trajectoryColor, VACANT
Fields inherited from interface HasS3
CORNER_LEFT, CORNER_RIGHT, CORNER_TOP, EDGE_BOTTOM, EDGE_LEFT, EDGE_RIGHT
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
collectCLO
(CLOParser parser) All providers of command line options must implement this method to collect their options.Opportunity to supply custom individual based simulations.createModel
(Type type) Creates a model of typetype
formodule
.int
For replicator dynamics the frequencies of all traits must sum up to one.(package private) void
getDerivatives
(double t, double[] state, double[] unused, double[] change) The SIR model is defined by the following equations:getTitle()
Returns title of active module, e.g.void
load()
Load new module and perform basic initializations.Methods inherited from class Discrete
add, getMaxMonoPayoff, getMinMonoPayoff, getMonoPayoff, getMonoStop, getMutation, setMonoStop, unload
Methods inherited from class Module
check, createGeometry, getActiveTraits, getAuthors, getCompetitionGeometry, getDeathRate, getGeometry, getIBSPopulation, getID, getInteractionGeometry, getKey, getMap2Fitness, getMarkers, getMeanColors, getModelTypes, getNActive, getName, getNGroup, getNPopulation, getNRoles, getNSpecies, getNTraits, getOpponent, getPlayerUpdate, getSpecies, getSpecies, getTraitColor, getTraitColors, getTraitName, getTraitNames, getTrajectoryColor, getVacant, init, processColorMap, reset, run, setActiveTraits, setDeathRate, setGeometries, setIBSPopulation, setModel, setName, setNGroup, setNPopulation, setNTraits, setOpponent, setTraitColors, setTraitNames, setTrajectoryColor
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface CLOProvider
adjustCLO
Methods inherited from interface Features
isMultispecies, isPairwise, isStatic
Methods inherited from interface HasHistogram
getCustomLevels, getNTraits, getTraitColors
Methods inherited from interface IBS.HasIBS
createIBS
Methods inherited from interface MilestoneListener
modelDidInit, modelDidReset, modelLoaded, modelRelaxed, modelRunning, modelSettings, modelStopped, modelUnloaded, moduleLoaded, moduleRestored, moduleUnloaded
-
Field Details
-
S
static final int SThe index of the susceptible trait/cohort.- See Also:
-
I
static final int IThe index of the infected trait/cohort.- See Also:
-
R
static final int RThe index of the recovered trait/cohort.- See Also:
-
pSI
double pSIThe transition probability/rate for susceptibles to infected, S -> I. -
pIR
double pIRThe transition probability/rate for infected to recovered, I -> R. -
pIS
double pISThe transition probability/rate for infected to susceptible, I -> S. -
pRS
double pRSThe transition probability/rate for recovered to susceptible, R -> S. -
cloInfect
Command line option to set the transition probability for S -> I. -
cloRecover
Command line option to set the transition probability for I -> R. -
cloResist
Command line option to set the transition probability for R -> S.
-
-
Constructor Details
-
SIR
Create a new SIR module with the given pacemaker.- Parameters:
engine
- the pacemaker for running the model
-
-
Method Details
-
getTitle
Description copied from interface:Features
Returns title of active module, e.g. 2x2 games inTBT
returns "2x2 Games". -
load
public void load()Description copied from class:Module
Load new module and perform basic initializations. -
getDependent
public int getDependent()Description copied from interface:Model.HasDE
For replicator dynamics the frequencies of all traits must sum up to one. Hence, fornTraits
traits there are onlynTraits-1
degrees of freedom. The index returned bygetDependent()
marks the one rate of change that is derived from all the others.Notes:
- Dependent traits are used by models where the frequencies of all types must sum up to one.
- Density modules do not have dependent traits and
getDependent()
should return-1
. - Currently differential equations implementations are only provided for Discrete modules.
- Specified by:
getDependent
in interfaceModel.HasDE
- Returns:
- the index of the dependent trait (or
-1
if there is none)
-
collectCLO
Description copied from interface:CLOProvider
All providers of command line options must implement this method to collect their options.Each command line option is (uniquely) identified by it's name (see
CLOption.getName()
), which corresponds to the long version of the option. If an attempt is made to add an option with a name that already exists, theparser
issues a warning and ignores the option. Thus, in general, implementing subclasses should first register their options and callsuper.collectCLO(CLOParser)
at the end such that subclasses are able to override command line options specified in a parental class.Override this method in subclasses to add further command line options. Subclasses must make sure that they include a call to super.
- Specified by:
collectCLO
in interfaceCLOProvider
- Overrides:
collectCLO
in classDiscrete
- Parameters:
parser
- the reference to parser that manages command line options- See Also:
-
getDerivatives
void getDerivatives(double t, double[] state, double[] unused, double[] change) The SIR model is defined by the following equations:\begin{align*} \frac{dS}{dt} =& R \cdot p_{RS} + I \cdot p_{IS} - S \cdot I \cdot p_{SI} \\ \frac{dI}{dt} =& S \cdot I \cdot p_{SI} - I \cdot (p_{IR} + p_{IS}) \\ \frac{dR}{dt} =& I \cdot p_{IR} - R \cdot p_{RS} \end{align*}
where \(S\), \(I\), and \(R\) are the densities of susceptible, infected, and recovered cohorts of individuals and \(p_{SI}, p_{IR}, p_{RS}\), and \(p_{IS}\) are the transition rates between the different cohorts.
- Parameters:
t
- the current time (not used in this model)state
- the current state of the system, an array containing the densities of the susceptible, infected, and recovered cohortsunused
- an unused array (for compatibility with theFeatures.Payoffs
interface)change
- the array to store the changes in the densities of the cohorts
-
createModel
Description copied from class:Module
Creates a model of typetype
formodule
.Note: Override to provide custom model implementations.
Important: any custom model implementations that involve random numbers, must use the shared random number generator for reproducibility
- Overrides:
createModel
in classModule
- Parameters:
type
- the type ofModel
to create- Returns:
- the model for
module
ornull
if the module does not support the requested model type - See Also:
-
createIBSPop
Description copied from class:Module
Opportunity to supply custom individual based simulations.- Overrides:
createIBSPop
in classModule
- Returns:
- the custom IBSPopulation or
null
to use default.
-