Simulation
The core
directory holds source files that are important for all submodels, including scheduling, landscape, and input/output functions.
simulation.jl
This file includes the basal functions for initialising and running simulations.
Persefone.finalise!
— Methodfinalise!(model)
Wrap up the simulation. Currently doesn't do anything except print some information.
Persefone.initialise
— Functioninitialise(config=PARAMFILE, seed=nothing)
Initialise the model: read in parameters, create the output data directory, and instantiate the AgentBasedModel object(s). Optionally allows specifying the configuration file and overriding the seed
parameter. This returns a single model object, unless the config file contains multiple values for one or more parameters, in which case it creates a full-factorial simulation experiment and returns a vector of model objects.
Persefone.initmodel
— Methodinitmodel(settings)
Initialise a model object using a ready-made settings dict. This is a helper function for initialise()
.
Persefone.paramscan
— Methodparamscan(settings)
Create a list of settings dicts, covering all possible parameter combinations given by the input settings (i.e. a full-factorial experiment). This is a helper function for initialise()
.
Persefone.simulate
— Functionsimulate(config=PARAMFILE, seed=nothing)
Initialise one or more model objects and carry out a full simulation experiment, optionally specifying a configuration file and a seed for the RNG.
This is the default way to run a Persefone simulation.
Persefone.simulate!
— Methodsimulate!(model)
Carry out a complete simulation run using a pre-initialised model object.
Persefone.stepsimulation!
— Methodstepsimulation!(model)
Execute one update of the model.
landscape.jl
This file manages the landscape maps that underlie the model.