Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

FACS: Flu And Coronavirus Simulator

Build Status GitHub Issues GitHub last-commit

Full documentation can be found at:

How to run the code

To run a simple simulation of a basic test dataset, type: python3 --location=test --output_dir=.

To run it in parallel, type (for four core runs): mpirun -np 4 python3 --location=test --output_dir=.

To do a run of custom length (with -t flag), and with a generically named out.csv output file, type: mpirun -np 1 python3 -t=10 -g --location=test --output_dir=.

To run a simulation of the Borough of Brent, type: python3 --location=brent --output_dir=.

To run a simulation of Brunel University London, type: python3 --location=brunel --output_dir=.

Outputs are written as CSV files in the output_dir. E.g. for the test run you will get: covid_out_infections.csv test-extend-lockdown-62.csv

There is a hardcoded lockdown in which is representative for the UK. This can be disabled by selecting the transition scenario "no-measures".

We also included a simple plotting script. This can be called e.g. as follows: python3 test-extend-lockdown-62.csv test

Advanced usage

Running with a specific data directory

Flacs can be run with a different input data directory as follows: python3 --location=brent --output_dir=. --data_dir=/home/derek/covid19-postprocess/facs_input_private

Performing quick tests

Quick tests can be triggered with the '-q' flag. This sets the house ratio to 100 (default is 2), which means that households will be less well distributed. However, as a number of calculations are performed on the house level (not the household level), this setting speeds up the code by up to an order of magnitude. python3 -q --location=brent --output_dir=.

Submitting jobs to the GridPP via HTCondor

Facs directory contains four additional files: (bash script for job submission automation) (python script equivalent to for job submission) joblist_grid.txt (list of jobs with facs arguments for job queuing) job_grid.submit (contains the configuration for facs simulations)

After initiating the python environment, the pyinstaller package can be used to create an executable from ''. pyinstaller --onefile

There are currently 18 locations (jobs) in the 'joblist_grid.txt' file. (optional) The jobs are submitted with the command: condor_submit job_grid.submit

The results are transferred back to the local machine and placed in 'output_dir'.