Skip to content

Simulation setup

These parameters determine the basic setup of a simulation including the type of simulation you are running, such as "GENERIC_SIM" or "MALARIA_SIM", the simulation duration, and the time step duration.

Note

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Parameters are case-sensitive. For Boolean parameters, set to 1 for true or 0 for false.
Minimum, maximum, or default values of "NA" indicate that those values are not applicable for
that parameter.

EMOD does not use true defaults; that is, if the dependency relationships indicate that a 
parameter is required, you must supply a value for it. However, many of the tools used to work 
with EMOD will use the default values provided below.

JSON format does not permit comments, but you can add "dummy" parameters to add contextual
information to your files. Any keys that are not EMOD parameter names will be ignored by the
model.
Parameter Example Description Type Min Max Default
Config_Name link The optional, user-supplied title naming a configuration file. string nan nan UNINITIALIZED STRING
Custom_Coordinator_Events link The list of valid, user-defined events for Event Coordinators that will be included in the campaign. Any event used in the campaign must either be one of the built-in events or in this list.
Note: This configuration parameter is currently in beta release and has not yet been fully tested.
array of strings nan nan nan
Custom_Individual_Events link The list of valid, user-defined events that will be included in the campaign. Any event used in the campaign must either be one of the built-in events or in this list.
.. note::
This configuration parameter is currently in beta release and has not yet been fully tested.
array of strings nan nan nan
Custom_Node_Events link The list of valid, user-defined events for nodes that will be included in the campaign. Any event used in the campaign must either be one of the built-in events or in this list.
.. note::
This configuration parameter is currently in beta release and has not yet been fully tested.
array of strings nan nan nan
Enable_Interventions link Controls whether or not campaign interventions will be used in the simulation. Set Campaign_Filename to the path of the file that contains the campaign interventions. boolean 0 1 0
Enable_Random_Generator_From_Serialized_Population link Determines if the random number generator(s) should be extracted from a serialized population file. Enabling this will start a simulation from this file with the exact same random number stream and location in that stream as when the file was serialized. boolean 0 1 0
Enable_Skipping link Controls whether or not the simulation uses an optimization that can increase performance by up to 50% in some cases by probabilistically exposing individuals rather than exposing every single person. Useful in low-prevalence, high-population scenarios. boolean 0 1 0
Enable_Termination_On_Zero_Total_Infectivity link Controls whether or not the simulation should be ended when total infectivity falls to zero. Supported only in single-node simulations. boolean 0 1 0
Listed_Events link The list of valid, user-defined events that will be included in the campaign. Any event used in the campaign must either be one of the built-in events or in this list. array of strings nan nan []
Memory_Usage_Halting_Threshold_Working_Set_MB link The maximum size (in MB) of working set memory before the system throws an exception and halts. integer 0 1e+06 8000
Memory_Usage_Warning_Threshold_Working_Set_MB link The maximum size (in MB) of working set memory before memory usage statistics are written to the log regardless of log level. integer 0 1e+06 7000
Node_Grid_Size link The spatial resolution indicating the node grid size for a simulation in degrees. float 0.00416 90 0.004167
Random_Number_Generator_Policy link The policy that determines if random numbers are generated for objects in a simulation on a per-core or per-node basis. The following values are available:
ONE_PER_CORE
A random number generator (RNG) is created for each computing core running a simulation. When running a simulation on a single core, there will be only one RNG. If running the single simulation on multiple cores, each core will have its own RNG. The RNGs on the different cores start out such that they will not generate the same stream of random numbers. Prior to EMOD 2.19, all simulations used this policy.
ONE_PER_NODE
An RNG is created for each geographic node in the simulation. The advantages of this policy are that 1) an event that causes a random number to be drawn in one node does not cause things to change in another node and 2) changing a simulation from single core to multi-core will not change the results. The RNGs on the different nodesstart out such that they will not generate the same stream of random numbers.
enum nan nan ONE_PER_CORE
Random_Number_Generator_Type link The type of random number generator to use for objects in a simulation. Must set the RNG seed in Run_Number. The following values are available:
USE_PSEUDO_DES
Based on Numerical Recipes in C. The Art of Scientific Computing <https://en.wikipedia.org/wiki/Numerical_Recipes>, 2nd ed. Press, William H. et. al, 1992. Prior to EMOD 2.19, this was the only generator available.
USE_LINEAR_CONGRUENTIAL
Based on The Structure of Linear Congruential Sequences <https://www.researchgate.net/publication/242477888_The_Structure_of_Linear_Congruential_Sequences>
, Marsaglia, George, 1972.
USE_AES_COUNTER
Based on AES in CTR Mode encryption as implemented in Intel (R) Advanced Encryption Standard (AES) New Instruction Set <https://software.intel.com/sites/default/files/article/165683/aes-wp-2012-09-22-v01.pdf>_.
enum nan nan USE_PSEUDO_DES
Run_Number link Sets the random number seed used with Random_Number_Generator_Type and Random_Number_Generator_Policy to assign random numbers to objects in a simulation. This value must be different for each simulation run to ensure model stochasticity. integer 0 65535 1
Serialization_Times link The list of times at which to save the serialized state to file. 0 indicates the initial state before simulation, n indicates the time to serialize in terms of start time and step size, and will be rounded up to the nearest time step. The serialized population files can then be loaded at the beginning of a simulation using Serialized_Population_Filenames and Serialized_Population_Path. array of floats nan nan 0
Serialization_Time_Steps link The list of time steps after which to save the serialized state to file. 0 (zero) indicates the initial state before simulation, n indicates after the nth time step. Serialization_Type must be set to TIMESTEP. The serialized population files can then be loaded at the beginning of a simulation using Serialized_Population_Filenames and Serialized_Population_Path. array of integers 0 2.15e+09 nan
Serialization_Type link The type of serialization to perform. Serialization saves the population state at particular times so you can start from that state in other simulations. Accepted values are:
NONE
No serialization.
TIME
Use the definition from Serialization_Times.
TIMESTEP
Use the definition from Serialization_Timestep.
enum nan nan NONE
Serialized_Population_Filenames link An array of filenames with serialized population data. The number of filenames must match the number of cores used for the simulation. The files must be in .dtk format. Serialized population files are created using Serialization_Time_Steps. array of strings nan nan nan
Serialized_Population_Path link The root path for the serialized population files. Serialized population files are created using Serialization_Time_Steps. string nan nan nan
Simulation_Duration link The elapsed time (in days) from the start to the end of a simulation. float 0 1e+06 1
Simulation_Timestep link The duration of a simulation time step, in days. float 0 1e+06 1
Simulation_Type link The type of disease being simulated. Possible IDM-supported values are:
GENERIC_SIM
VECTOR_SIM
MALARIA_SIM
TBHIV_SIM
STI_SIM
HIV_SIM
ENVIRONMENTAL_SIM
TYPHOID_SIM
enum nan nan GENERIC_SIM
Start_Time link The time, in days, when the simulation begins. This time is used to identify the starting values of the temporal input data, such as specifying which day's climate values should be used for the first day of the simulation.
.. note::
The Start_Day of campaign events is in absolute time, so time relative to the beginning of the simulation depends on this parameter.
float 0 1e+06 1