Simulazione dell'evoluzione di un'epidemia - Linee guida per la compilazione ed esecuzione del programma
Autori: Elena Calzolaio, Elena Mariotti, Giovanni Pedrelli
Le translation units coinvolte in questo progetto sono main.cpp
, population.cpp
, population.hpp
, test.cpp
e graph.cpp
(quest'ultimo da compilarsi col framework ROOT CERN).
La compilazione ed esecuzione del programma avviene da terminale scrivendo i seguenti comandi:
g++ -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -Wshadow -Wimplicit-fallthrough -Wextra-semi -Wold-style-cast -D_GLIBCXX_ASSERTIONS -fsanitize=address,undefined main.cpp population.cpp
./a.out
Per eseguire i test occorre scrivere:
g++ -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -Wshadow -Wimplicit-fallthrough -Wextra-semi -Wold-style-cast -D_GLIBCXX_ASSERTIONS -fsanitize=address,undefined test.cpp population.cpp -o test.out
./test.out
È possibile anche compilare ed eseguire con CMake
coi comandi:
cmake -DCMAKE_BUILD_TYPE=Debug -S . -Bbuild
cmake --build build
cmake --build build --target test
build/population
Per eseguire i test occorre scrivere:
build/population.t
Se nel proprio computer sono installati il framework ROOT CERN e un server grafico è possibile eseguire i seguenti comandi per ottenere la rappresentazione grafica dell'andamento dell'epidemia:
root .
.X graph.cpp
È stato utilizzato il version controller Git
e una repository GitHub remota per la gestione del codice.
Eseguito il programma, viene chiesto all'utente di inserire i parametri del modello potendo scegliere se inserirli 1. Da file di configurazione o 2. Da terminale. Digitando sul terminale il numero, si sceglie l'opzione corrispondente.
Il file di configurazione è chiamato ConfigFile.txt
e al suo interno l'utente può inserire i valori dei parametri del modello secondo le stesse regole dell'immissione da terminale. I valori numerici vanno inseriti al posto di quelli di default, prima del cancelletto. Tutto quello che verrà inserito dopo il cancelletto verrà ignorato. Esempio:
0.6 # beta, probabilità di contagio (tra 0 e 1 inclusi)
0.3 # gamma, inverso del tempo medio di risoluzione dell'infezione (tra 0 e 1 inclusi)
10000 # dimensione della popolazione (intero positivo)
1000 # durata dell'epidemia in giorni (intero positivo)
35 # numero iniziale di infetti (intero positivo)
3 # tempo di incubazione in giorni (intero positivo)
0.3 # mu, tasso di mortalità (tra 0 e 1 inclusi)