The Persefone.jl Package
This page describes how to run Persefone.jl as a command line application or Julia package, which is the default mode. To use the model with a graphical user interface, see here.
Installation
For more detailed installation instructions, see here.
Install the latest version of the Julia programming language (1.10+). The recommended editors are VSCode or Emacs. To install the package dependencies, open a Julia REPL in this folder and run:
using Pkg
Pkg.activate(".")
Pkg.instantiate()
Running from the command line
This is the normal mode of operation. Simply execute run.jl
in a terminal, typically like so (in Linux):
> julia run.jl -c <config>
where <config>
specifies the configuration file to use. The recommended workflow is to copy scr/parameters.toml
to a location of your choice and edit the copy to suit your requirements. The adapted config file can then be passed to run.jl
. (If no configuration file is specified, Persefone will run with its default settings.)
The full list of commandline arguments is:
usage: run.jl [-c CONFIGFILE] [-s SEED] [-o OUTDIR] [-l LOGLEVEL]
[--version] [-h]
optional arguments:
-c, --configfile CONFIGFILE
name of the configuration file
-s, --seed SEED inital random seed (type: Int64)
-o, --outdir OUTDIR location of the output directory
-l, --loglevel LOGLEVEL
verbosity: "debug", "info", or "quiet"
--version show version information and exit
-h, --help show this help message and exit
To run the test suite, switch to the test
directory and execute runtests.jl
.
If you are on Linux or MacOS, you can also use make
:
> make run # run a simulation with default values
> make test # run the test suite
> make profile # run and profile a default simulation
> make docs # build the documentation
> make release # create a release
Running from within Julia
To use the model from within Julia (either inside an interactive REPL or if you want to import it from your own software), do the following:
using Pkg
Pkg.activate(".") # assuming you're in the Persefone root folder
using Persefone
You can then access all Persefone functions, such as simulate
, initialise
, stepsimulation!
, simulate!
, or visualiseoutput
. (See src/Persefone.jl
for a list of exported functions.)