From 777a2711909f51f96256d7569f544bcd31f53488 Mon Sep 17 00:00:00 2001
From: mohcine chraibi <m.chraibi@fz-juelich.de>
Date: Thu, 11 Apr 2019 14:55:07 +0200
Subject: [PATCH] change name
---
.../figure/multiM-inflowrate-n.png | Bin 0 -> 75717 bytes
.../figure/multiM-inflowrate-nt.png | Bin 0 -> 84097 bytes
.../factor-inflowrate/m0/inflowrate-n.png | Bin 0 -> 5985 bytes
.../factor-inflowrate/m0/inflowrate-nt.png | Bin 0 -> 6166 bytes
.../m0/inflowrate=10/1.0_geometry.xml | 66 ++++
.../m0/inflowrate=10/fmaster_ini.xml | 121 +++++++
.../inflowrate=10/inifiles/ini_seed_1.0.xml | 73 ++++
.../inifiles/ini_seed_10000.0.xml | 73 ++++
.../inifiles/ini_seed_3334.0.xml | 73 ++++
.../inifiles/ini_seed_6667.0.xml | 73 ++++
.../m0/inflowrate=10/makeini.py | 267 +++++++++++++++
.../m0/inflowrate=10/master_ini.xml | 124 +++++++
.../m0/inflowrate=10/untitled21.py | 69 ++++
.../m0/inflowrate=10/untitled22.py | 19 ++
.../m0/inflowrate=16/1.0_geometry.xml | 66 ++++
.../m0/inflowrate=16/fmaster_ini.xml | 121 +++++++
.../inflowrate=16/inifiles/ini_seed_1.0.xml | 79 +++++
.../inifiles/ini_seed_10000.0.xml | 79 +++++
.../inifiles/ini_seed_3334.0.xml | 79 +++++
.../inifiles/ini_seed_6667.0.xml | 79 +++++
.../m0/inflowrate=16/makeini.py | 267 +++++++++++++++
.../m0/inflowrate=16/master_ini.xml | 130 +++++++
.../m0/inflowrate=16/untitled21.py | 69 ++++
.../m0/inflowrate=16/untitled22.py | 19 ++
.../m0/inflowrate=2/1.0_geometry.xml | 66 ++++
.../m0/inflowrate=2/fmaster_ini.xml | 121 +++++++
.../m0/inflowrate=2/inifiles/ini_seed_1.0.xml | 65 ++++
.../inifiles/ini_seed_10000.0.xml | 65 ++++
.../inflowrate=2/inifiles/ini_seed_3334.0.xml | 65 ++++
.../inflowrate=2/inifiles/ini_seed_6667.0.xml | 65 ++++
.../m0/inflowrate=2/makeini.py | 267 +++++++++++++++
.../m0/inflowrate=2/master_ini.xml | 123 +++++++
.../m0/inflowrate=2/untitled21.py | 69 ++++
.../m0/inflowrate=2/untitled22.py | 19 ++
.../m0/inflowrate=4/1.0_geometry.xml | 66 ++++
.../m0/inflowrate=4/fmaster_ini.xml | 121 +++++++
.../m0/inflowrate=4/inifiles/ini_seed_1.0.xml | 67 ++++
.../inifiles/ini_seed_10000.0.xml | 67 ++++
.../inflowrate=4/inifiles/ini_seed_3334.0.xml | 67 ++++
.../inflowrate=4/inifiles/ini_seed_6667.0.xml | 67 ++++
.../m0/inflowrate=4/makeini.py | 267 +++++++++++++++
.../m0/inflowrate=4/master_ini.xml | 123 +++++++
.../m0/inflowrate=4/untitled21.py | 69 ++++
.../m0/inflowrate=4/untitled22.py | 19 ++
.../m0/inflowrate=8/1.0_geometry.xml | 66 ++++
.../m0/inflowrate=8/fmaster_ini.xml | 121 +++++++
.../m0/inflowrate=8/inifiles/ini_seed_1.0.xml | 71 ++++
.../inifiles/ini_seed_10000.0.xml | 71 ++++
.../inflowrate=8/inifiles/ini_seed_3334.0.xml | 71 ++++
.../inflowrate=8/inifiles/ini_seed_6667.0.xml | 71 ++++
.../m0/inflowrate=8/makeini.py | 267 +++++++++++++++
.../m0/inflowrate=8/master_ini.xml | 122 +++++++
.../m0/inflowrate=8/untitled21.py | 69 ++++
.../m0/inflowrate=8/untitled22.py | 19 ++
.../factor-inflowrate/m1/inflowrate-n.png | Bin 0 -> 5985 bytes
.../factor-inflowrate/m1/inflowrate-nt.png | Bin 0 -> 6166 bytes
.../m1/inflowrate=10/1.0_geometry.xml | 66 ++++
.../m1/inflowrate=10/fmaster_ini.xml | 121 +++++++
.../inflowrate=10/inifiles/ini_seed_1.0.xml | 73 ++++
.../inifiles/ini_seed_10000.0.xml | 73 ++++
.../inifiles/ini_seed_3334.0.xml | 73 ++++
.../inifiles/ini_seed_6667.0.xml | 73 ++++
.../m1/inflowrate=10/makeini.py | 267 +++++++++++++++
.../m1/inflowrate=10/master_ini.xml | 124 +++++++
.../m1/inflowrate=10/untitled21.py | 69 ++++
.../m1/inflowrate=10/untitled22.py | 19 ++
.../m1/inflowrate=16/1.0_geometry.xml | 66 ++++
.../m1/inflowrate=16/fmaster_ini.xml | 121 +++++++
.../inflowrate=16/inifiles/ini_seed_1.0.xml | 79 +++++
.../inifiles/ini_seed_10000.0.xml | 79 +++++
.../inifiles/ini_seed_3334.0.xml | 79 +++++
.../inifiles/ini_seed_6667.0.xml | 79 +++++
.../m1/inflowrate=16/makeini.py | 267 +++++++++++++++
.../m1/inflowrate=16/master_ini.xml | 130 +++++++
.../m1/inflowrate=16/untitled21.py | 69 ++++
.../m1/inflowrate=16/untitled22.py | 19 ++
.../m1/inflowrate=2/1.0_geometry.xml | 66 ++++
.../m1/inflowrate=2/fmaster_ini.xml | 121 +++++++
.../m1/inflowrate=2/inifiles/ini_seed_1.0.xml | 65 ++++
.../inifiles/ini_seed_10000.0.xml | 65 ++++
.../inflowrate=2/inifiles/ini_seed_3334.0.xml | 65 ++++
.../inflowrate=2/inifiles/ini_seed_6667.0.xml | 65 ++++
.../m1/inflowrate=2/makeini.py | 267 +++++++++++++++
.../m1/inflowrate=2/master_ini.xml | 123 +++++++
.../m1/inflowrate=2/untitled21.py | 69 ++++
.../m1/inflowrate=2/untitled22.py | 19 ++
.../m1/inflowrate=4/1.0_geometry.xml | 66 ++++
.../m1/inflowrate=4/fmaster_ini.xml | 121 +++++++
.../m1/inflowrate=4/inifiles/ini_seed_1.0.xml | 67 ++++
.../inifiles/ini_seed_10000.0.xml | 67 ++++
.../inflowrate=4/inifiles/ini_seed_3334.0.xml | 67 ++++
.../inflowrate=4/inifiles/ini_seed_6667.0.xml | 67 ++++
.../m1/inflowrate=4/makeini.py | 267 +++++++++++++++
.../m1/inflowrate=4/master_ini.xml | 123 +++++++
.../m1/inflowrate=4/untitled21.py | 69 ++++
.../m1/inflowrate=4/untitled22.py | 19 ++
.../m1/inflowrate=8/1.0_geometry.xml | 66 ++++
.../m1/inflowrate=8/fmaster_ini.xml | 121 +++++++
.../m1/inflowrate=8/inifiles/ini_seed_1.0.xml | 71 ++++
.../inifiles/ini_seed_10000.0.xml | 71 ++++
.../inflowrate=8/inifiles/ini_seed_3334.0.xml | 71 ++++
.../inflowrate=8/inifiles/ini_seed_6667.0.xml | 71 ++++
.../m1/inflowrate=8/makeini.py | 267 +++++++++++++++
.../m1/inflowrate=8/master_ini.xml | 122 +++++++
.../m1/inflowrate=8/untitled21.py | 69 ++++
.../m1/inflowrate=8/untitled22.py | 19 ++
Data_3.0/factor-inflowrate/m2/W-N.png | Bin 0 -> 5985 bytes
.../factor-inflowrate/m2/inflowrate-n.png | Bin 0 -> 5985 bytes
.../factor-inflowrate/m2/inflowrate-nt.png | Bin 0 -> 6166 bytes
.../m2/inflowrate=10/1.0_geometry.xml | 66 ++++
.../m2/inflowrate=10/fmaster_ini.xml | 121 +++++++
.../inflowrate=10/inifiles/ini_seed_1.0.xml | 73 ++++
.../inifiles/ini_seed_10000.0.xml | 73 ++++
.../inifiles/ini_seed_3334.0.xml | 73 ++++
.../inifiles/ini_seed_6667.0.xml | 73 ++++
.../m2/inflowrate=10/makeini.py | 267 +++++++++++++++
.../m2/inflowrate=10/master_ini.xml | 124 +++++++
.../m2/inflowrate=10/untitled21.py | 69 ++++
.../m2/inflowrate=10/untitled22.py | 19 ++
.../m2/inflowrate=16/1.0_geometry.xml | 66 ++++
.../m2/inflowrate=16/fmaster_ini.xml | 121 +++++++
.../inflowrate=16/inifiles/ini_seed_1.0.xml | 79 +++++
.../inifiles/ini_seed_10000.0.xml | 79 +++++
.../inifiles/ini_seed_3334.0.xml | 79 +++++
.../inifiles/ini_seed_6667.0.xml | 79 +++++
.../m2/inflowrate=16/makeini.py | 267 +++++++++++++++
.../m2/inflowrate=16/master_ini.xml | 130 +++++++
.../m2/inflowrate=16/untitled21.py | 69 ++++
.../m2/inflowrate=16/untitled22.py | 19 ++
.../m2/inflowrate=2/1.0_geometry.xml | 66 ++++
.../m2/inflowrate=2/fmaster_ini.xml | 121 +++++++
.../m2/inflowrate=2/inifiles/ini_seed_1.0.xml | 65 ++++
.../inifiles/ini_seed_10000.0.xml | 65 ++++
.../inflowrate=2/inifiles/ini_seed_3334.0.xml | 65 ++++
.../inflowrate=2/inifiles/ini_seed_6667.0.xml | 65 ++++
.../m2/inflowrate=2/makeini.py | 267 +++++++++++++++
.../m2/inflowrate=2/master_ini.xml | 123 +++++++
.../m2/inflowrate=2/untitled21.py | 69 ++++
.../m2/inflowrate=2/untitled22.py | 19 ++
.../m2/inflowrate=4/1.0_geometry.xml | 66 ++++
.../m2/inflowrate=4/fmaster_ini.xml | 121 +++++++
.../m2/inflowrate=4/inifiles/ini_seed_1.0.xml | 67 ++++
.../inifiles/ini_seed_10000.0.xml | 67 ++++
.../inflowrate=4/inifiles/ini_seed_3334.0.xml | 67 ++++
.../inflowrate=4/inifiles/ini_seed_6667.0.xml | 67 ++++
.../m2/inflowrate=4/makeini.py | 267 +++++++++++++++
.../m2/inflowrate=4/master_ini.xml | 123 +++++++
.../m2/inflowrate=4/untitled21.py | 69 ++++
.../m2/inflowrate=4/untitled22.py | 19 ++
.../m2/inflowrate=8/1.0_geometry.xml | 66 ++++
.../m2/inflowrate=8/fmaster_ini.xml | 121 +++++++
.../m2/inflowrate=8/inifiles/ini_seed_1.0.xml | 71 ++++
.../inifiles/ini_seed_10000.0.xml | 71 ++++
.../inflowrate=8/inifiles/ini_seed_3334.0.xml | 71 ++++
.../inflowrate=8/inifiles/ini_seed_6667.0.xml | 71 ++++
.../m2/inflowrate=8/makeini.py | 267 +++++++++++++++
.../m2/inflowrate=8/master_ini.xml | 122 +++++++
.../m2/inflowrate=8/untitled21.py | 69 ++++
.../m2/inflowrate=8/untitled22.py | 19 ++
Data_3.0/factor-inflowrate/m3/W-N.png | Bin 0 -> 5985 bytes
.../factor-inflowrate/m3/inflowrate-n.png | Bin 0 -> 5985 bytes
.../factor-inflowrate/m3/inflowrate-nt.png | Bin 0 -> 6166 bytes
.../m3/inflowrate=10/1.0_geometry.xml | 66 ++++
.../m3/inflowrate=10/fmaster_ini.xml | 121 +++++++
.../inflowrate=10/inifiles/ini_seed_1.0.xml | 73 ++++
.../inifiles/ini_seed_10000.0.xml | 73 ++++
.../inifiles/ini_seed_3334.0.xml | 73 ++++
.../inifiles/ini_seed_6667.0.xml | 73 ++++
.../m3/inflowrate=10/makeini.py | 267 +++++++++++++++
.../m3/inflowrate=10/master_ini.xml | 124 +++++++
.../m3/inflowrate=10/untitled21.py | 69 ++++
.../m3/inflowrate=10/untitled22.py | 19 ++
.../m3/inflowrate=16/1.0_geometry.xml | 66 ++++
.../m3/inflowrate=16/fmaster_ini.xml | 121 +++++++
.../inflowrate=16/inifiles/ini_seed_1.0.xml | 79 +++++
.../inifiles/ini_seed_10000.0.xml | 79 +++++
.../inifiles/ini_seed_3334.0.xml | 79 +++++
.../inifiles/ini_seed_6667.0.xml | 79 +++++
.../m3/inflowrate=16/makeini.py | 267 +++++++++++++++
.../m3/inflowrate=16/master_ini.xml | 130 +++++++
.../m3/inflowrate=16/untitled21.py | 69 ++++
.../m3/inflowrate=16/untitled22.py | 19 ++
.../m3/inflowrate=2/1.0_geometry.xml | 66 ++++
.../m3/inflowrate=2/fmaster_ini.xml | 121 +++++++
.../m3/inflowrate=2/inifiles/ini_seed_1.0.xml | 65 ++++
.../inifiles/ini_seed_10000.0.xml | 65 ++++
.../inflowrate=2/inifiles/ini_seed_3334.0.xml | 65 ++++
.../inflowrate=2/inifiles/ini_seed_6667.0.xml | 65 ++++
.../m3/inflowrate=2/makeini.py | 267 +++++++++++++++
.../m3/inflowrate=2/master_ini.xml | 123 +++++++
.../m3/inflowrate=2/untitled21.py | 69 ++++
.../m3/inflowrate=2/untitled22.py | 19 ++
.../m3/inflowrate=4/1.0_geometry.xml | 66 ++++
.../m3/inflowrate=4/fmaster_ini.xml | 121 +++++++
.../m3/inflowrate=4/inifiles/ini_seed_1.0.xml | 67 ++++
.../inifiles/ini_seed_10000.0.xml | 67 ++++
.../inflowrate=4/inifiles/ini_seed_3334.0.xml | 67 ++++
.../inflowrate=4/inifiles/ini_seed_6667.0.xml | 67 ++++
.../m3/inflowrate=4/makeini.py | 267 +++++++++++++++
.../m3/inflowrate=4/master_ini.xml | 123 +++++++
.../m3/inflowrate=4/untitled21.py | 69 ++++
.../m3/inflowrate=4/untitled22.py | 19 ++
.../m3/inflowrate=8/1.0_geometry.xml | 66 ++++
.../m3/inflowrate=8/fmaster_ini.xml | 121 +++++++
.../m3/inflowrate=8/inifiles/ini_seed_1.0.xml | 71 ++++
.../inifiles/ini_seed_10000.0.xml | 71 ++++
.../inflowrate=8/inifiles/ini_seed_3334.0.xml | 71 ++++
.../inflowrate=8/inifiles/ini_seed_6667.0.xml | 71 ++++
.../m3/inflowrate=8/makeini.py | 267 +++++++++++++++
.../m3/inflowrate=8/master_ini.xml | 122 +++++++
.../m3/inflowrate=8/untitled21.py | 69 ++++
.../m3/inflowrate=8/untitled22.py | 19 ++
.../factor-inflowrate/m4/inflowrate-n.png | Bin 0 -> 5985 bytes
.../factor-inflowrate/m4/inflowrate-nt.png | Bin 0 -> 6166 bytes
.../m4/inflowrate=10/1.0_geometry.xml | 66 ++++
.../m4/inflowrate=10/fmaster_ini.xml | 121 +++++++
.../inflowrate=10/inifiles/ini_seed_1.0.xml | 73 ++++
.../inifiles/ini_seed_10000.0.xml | 73 ++++
.../inifiles/ini_seed_3334.0.xml | 73 ++++
.../inifiles/ini_seed_6667.0.xml | 73 ++++
.../m4/inflowrate=10/makeini.py | 267 +++++++++++++++
.../m4/inflowrate=10/master_ini.xml | 124 +++++++
.../m4/inflowrate=10/untitled21.py | 69 ++++
.../m4/inflowrate=10/untitled22.py | 19 ++
.../m4/inflowrate=16/1.0_geometry.xml | 66 ++++
.../m4/inflowrate=16/fmaster_ini.xml | 121 +++++++
.../inflowrate=16/inifiles/ini_seed_1.0.xml | 79 +++++
.../inifiles/ini_seed_10000.0.xml | 79 +++++
.../inifiles/ini_seed_3334.0.xml | 79 +++++
.../inifiles/ini_seed_6667.0.xml | 79 +++++
.../m4/inflowrate=16/makeini.py | 267 +++++++++++++++
.../m4/inflowrate=16/master_ini.xml | 130 +++++++
.../m4/inflowrate=16/untitled21.py | 69 ++++
.../m4/inflowrate=16/untitled22.py | 19 ++
.../m4/inflowrate=2/1.0_geometry.xml | 66 ++++
.../m4/inflowrate=2/fmaster_ini.xml | 121 +++++++
.../m4/inflowrate=2/inifiles/ini_seed_1.0.xml | 65 ++++
.../inifiles/ini_seed_10000.0.xml | 65 ++++
.../inflowrate=2/inifiles/ini_seed_3334.0.xml | 65 ++++
.../inflowrate=2/inifiles/ini_seed_6667.0.xml | 65 ++++
.../m4/inflowrate=2/makeini.py | 267 +++++++++++++++
.../m4/inflowrate=2/master_ini.xml | 123 +++++++
.../m4/inflowrate=2/untitled21.py | 69 ++++
.../m4/inflowrate=2/untitled22.py | 19 ++
.../m4/inflowrate=4/1.0_geometry.xml | 66 ++++
.../m4/inflowrate=4/fmaster_ini.xml | 121 +++++++
.../m4/inflowrate=4/inifiles/ini_seed_1.0.xml | 67 ++++
.../inifiles/ini_seed_10000.0.xml | 67 ++++
.../inflowrate=4/inifiles/ini_seed_3334.0.xml | 67 ++++
.../inflowrate=4/inifiles/ini_seed_6667.0.xml | 67 ++++
.../m4/inflowrate=4/makeini.py | 267 +++++++++++++++
.../m4/inflowrate=4/master_ini.xml | 123 +++++++
.../m4/inflowrate=4/untitled21.py | 69 ++++
.../m4/inflowrate=4/untitled22.py | 19 ++
.../m4/inflowrate=8/1.0_geometry.xml | 66 ++++
.../m4/inflowrate=8/fmaster_ini.xml | 121 +++++++
.../m4/inflowrate=8/inifiles/ini_seed_1.0.xml | 71 ++++
.../inifiles/ini_seed_10000.0.xml | 71 ++++
.../inflowrate=8/inifiles/ini_seed_3334.0.xml | 71 ++++
.../inflowrate=8/inifiles/ini_seed_6667.0.xml | 71 ++++
.../m4/inflowrate=8/makeini.py | 267 +++++++++++++++
.../m4/inflowrate=8/master_ini.xml | 122 +++++++
.../m4/inflowrate=8/untitled21.py | 69 ++++
.../m4/inflowrate=8/untitled22.py | 19 ++
.../factor-inflowrate/simulation-plotting.py | 236 +++++++++++++
.../figure/multiM-stepsize-n.png | Bin 0 -> 74564 bytes
.../figure/multiM-stepsize-nt.png | Bin 0 -> 82799 bytes
Data_3.0/factor-stepsize/m0/1.0_geometry.xml | 66 ++++
Data_3.0/factor-stepsize/m0/fmaster_ini.xml | 121 +++++++
.../inifiles/ini_seed_1.0_stepsize_0.01.xml | 71 ++++
.../inifiles/ini_seed_1.0_stepsize_0.02.xml | 71 ++++
.../inifiles/ini_seed_1.0_stepsize_0.05.xml | 71 ++++
.../m0/inifiles/ini_seed_1.0_stepsize_0.1.xml | 71 ++++
.../m0/inifiles/ini_seed_1.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.05.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.1.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.05.xml | 71 ++++
.../inifiles/ini_seed_3334.0_stepsize_0.1.xml | 71 ++++
.../inifiles/ini_seed_3334.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.05.xml | 71 ++++
.../inifiles/ini_seed_6667.0_stepsize_0.1.xml | 71 ++++
.../inifiles/ini_seed_6667.0_stepsize_0.2.xml | 71 ++++
Data_3.0/factor-stepsize/m0/makeini.py | 267 +++++++++++++++
Data_3.0/factor-stepsize/m0/master_ini.xml | 122 +++++++
Data_3.0/factor-stepsize/m1/1.0_geometry.xml | 66 ++++
Data_3.0/factor-stepsize/m1/fmaster_ini.xml | 121 +++++++
.../inifiles/ini_seed_1.0_stepsize_0.01.xml | 71 ++++
.../inifiles/ini_seed_1.0_stepsize_0.02.xml | 71 ++++
.../inifiles/ini_seed_1.0_stepsize_0.05.xml | 71 ++++
.../m1/inifiles/ini_seed_1.0_stepsize_0.1.xml | 71 ++++
.../m1/inifiles/ini_seed_1.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.05.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.1.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.05.xml | 71 ++++
.../inifiles/ini_seed_3334.0_stepsize_0.1.xml | 71 ++++
.../inifiles/ini_seed_3334.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.05.xml | 71 ++++
.../inifiles/ini_seed_6667.0_stepsize_0.1.xml | 71 ++++
.../inifiles/ini_seed_6667.0_stepsize_0.2.xml | 71 ++++
Data_3.0/factor-stepsize/m1/makeini.py | 267 +++++++++++++++
Data_3.0/factor-stepsize/m1/master_ini.xml | 122 +++++++
Data_3.0/factor-stepsize/m2/1.0_geometry.xml | 66 ++++
Data_3.0/factor-stepsize/m2/fmaster_ini.xml | 121 +++++++
.../inifiles/ini_seed_1.0_stepsize_0.01.xml | 71 ++++
.../inifiles/ini_seed_1.0_stepsize_0.02.xml | 71 ++++
.../inifiles/ini_seed_1.0_stepsize_0.05.xml | 71 ++++
.../m2/inifiles/ini_seed_1.0_stepsize_0.1.xml | 71 ++++
.../m2/inifiles/ini_seed_1.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.05.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.1.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.05.xml | 71 ++++
.../inifiles/ini_seed_3334.0_stepsize_0.1.xml | 71 ++++
.../inifiles/ini_seed_3334.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.05.xml | 71 ++++
.../inifiles/ini_seed_6667.0_stepsize_0.1.xml | 71 ++++
.../inifiles/ini_seed_6667.0_stepsize_0.2.xml | 71 ++++
Data_3.0/factor-stepsize/m2/makeini.py | 267 +++++++++++++++
Data_3.0/factor-stepsize/m2/master_ini.xml | 122 +++++++
Data_3.0/factor-stepsize/m2/untitled22.py | 21 ++
Data_3.0/factor-stepsize/m3/1.0_geometry.xml | 66 ++++
Data_3.0/factor-stepsize/m3/fmaster_ini.xml | 121 +++++++
.../inifiles/ini_seed_1.0_stepsize_0.01.xml | 71 ++++
.../inifiles/ini_seed_1.0_stepsize_0.02.xml | 71 ++++
.../inifiles/ini_seed_1.0_stepsize_0.05.xml | 71 ++++
.../m3/inifiles/ini_seed_1.0_stepsize_0.1.xml | 71 ++++
.../m3/inifiles/ini_seed_1.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.05.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.1.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.05.xml | 71 ++++
.../inifiles/ini_seed_3334.0_stepsize_0.1.xml | 71 ++++
.../inifiles/ini_seed_3334.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.05.xml | 71 ++++
.../inifiles/ini_seed_6667.0_stepsize_0.1.xml | 71 ++++
.../inifiles/ini_seed_6667.0_stepsize_0.2.xml | 71 ++++
Data_3.0/factor-stepsize/m3/makeini.py | 267 +++++++++++++++
Data_3.0/factor-stepsize/m3/master_ini.xml | 122 +++++++
Data_3.0/factor-stepsize/m3/untitled22.py | 21 ++
Data_3.0/factor-stepsize/m4/1.0_geometry.xml | 66 ++++
Data_3.0/factor-stepsize/m4/fmaster_ini.xml | 121 +++++++
.../inifiles/ini_seed_1.0_stepsize_0.01.xml | 71 ++++
.../inifiles/ini_seed_1.0_stepsize_0.02.xml | 71 ++++
.../inifiles/ini_seed_1.0_stepsize_0.05.xml | 71 ++++
.../m4/inifiles/ini_seed_1.0_stepsize_0.1.xml | 71 ++++
.../m4/inifiles/ini_seed_1.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.05.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.1.xml | 71 ++++
.../ini_seed_10000.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_3334.0_stepsize_0.05.xml | 71 ++++
.../inifiles/ini_seed_3334.0_stepsize_0.1.xml | 71 ++++
.../inifiles/ini_seed_3334.0_stepsize_0.2.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.01.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.02.xml | 71 ++++
.../ini_seed_6667.0_stepsize_0.05.xml | 71 ++++
.../inifiles/ini_seed_6667.0_stepsize_0.1.xml | 71 ++++
.../inifiles/ini_seed_6667.0_stepsize_0.2.xml | 71 ++++
Data_3.0/factor-stepsize/m4/makeini.py | 267 +++++++++++++++
Data_3.0/factor-stepsize/m4/master_ini.xml | 122 +++++++
.../simulation-plotting-stepsize.py | 206 +++++++++++
.../m0-p/1.0_geometry.xml | 66 ++++
.../m0-p/fmaster_ini.xml | 121 +++++++
.../m0-p/inifiles/ini_seed_1.0.xml | 72 ++++
.../m0-p/inifiles/ini_seed_10000.0.xml | 72 ++++
.../m0-p/inifiles/ini_seed_3334.0.xml | 72 ++++
.../m0-p/inifiles/ini_seed_6667.0.xml | 72 ++++
.../factor-update_methods/m0-p/makeini.py | 267 +++++++++++++++
.../factor-update_methods/m0-p/master_ini.xml | 123 +++++++
.../m0-s/1.0_geometry.xml | 66 ++++
.../m0-s/fmaster_ini.xml | 121 +++++++
.../m0-s/inifiles/ini_seed_1.0.xml | 72 ++++
.../m0-s/inifiles/ini_seed_10000.0.xml | 72 ++++
.../m0-s/inifiles/ini_seed_3334.0.xml | 72 ++++
.../m0-s/inifiles/ini_seed_6667.0.xml | 72 ++++
.../factor-update_methods/m0-s/makeini.py | 267 +++++++++++++++
.../factor-update_methods/m0-s/master_ini.xml | 123 +++++++
.../m0-s/para_master_ini.xml | 123 +++++++
.../m1-p/1.0_geometry.xml | 66 ++++
.../m1-p/fmaster_ini.xml | 121 +++++++
.../m1-p/inifiles/ini_seed_1.0.xml | 72 ++++
.../m1-p/inifiles/ini_seed_10000.0.xml | 72 ++++
.../m1-p/inifiles/ini_seed_3334.0.xml | 72 ++++
.../m1-p/inifiles/ini_seed_6667.0.xml | 72 ++++
.../factor-update_methods/m1-p/makeini.py | 267 +++++++++++++++
.../factor-update_methods/m1-p/master_ini.xml | 123 +++++++
.../m1-s/1.0_geometry.xml | 66 ++++
.../m1-s/fmaster_ini.xml | 121 +++++++
.../m1-s/inifiles/ini_seed_1.0.xml | 72 ++++
.../m1-s/inifiles/ini_seed_10000.0.xml | 72 ++++
.../m1-s/inifiles/ini_seed_3334.0.xml | 72 ++++
.../m1-s/inifiles/ini_seed_6667.0.xml | 72 ++++
.../factor-update_methods/m1-s/makeini.py | 267 +++++++++++++++
.../factor-update_methods/m1-s/master_ini.xml | 123 +++++++
.../m1-s/para_master_ini.xml | 123 +++++++
.../m2-p/1.0_geometry.xml | 66 ++++
.../m2-p/fmaster_ini.xml | 121 +++++++
.../m2-p/inifiles/ini_seed_1.0.xml | 72 ++++
.../m2-p/inifiles/ini_seed_10000.0.xml | 72 ++++
.../m2-p/inifiles/ini_seed_3334.0.xml | 72 ++++
.../m2-p/inifiles/ini_seed_6667.0.xml | 72 ++++
.../factor-update_methods/m2-p/makeini.py | 267 +++++++++++++++
.../factor-update_methods/m2-p/master_ini.xml | 123 +++++++
.../factor-update_methods/m2-p/untitled22.py | 21 ++
.../m2-s/1.0_geometry.xml | 66 ++++
.../m2-s/fmaster_ini.xml | 121 +++++++
.../m2-s/inifiles/ini_seed_1.0.xml | 72 ++++
.../m2-s/inifiles/ini_seed_10000.0.xml | 72 ++++
.../m2-s/inifiles/ini_seed_3334.0.xml | 72 ++++
.../m2-s/inifiles/ini_seed_6667.0.xml | 72 ++++
.../factor-update_methods/m2-s/makeini.py | 267 +++++++++++++++
.../factor-update_methods/m2-s/master_ini.xml | 123 +++++++
.../m2-s/para_master_ini.xml | 123 +++++++
.../factor-update_methods/m2-s/untitled22.py | 21 ++
.../m3-p/1.0_geometry.xml | 66 ++++
.../m3-p/fmaster_ini.xml | 121 +++++++
.../m3-p/inifiles/ini_seed_1.0.xml | 72 ++++
.../m3-p/inifiles/ini_seed_10000.0.xml | 72 ++++
.../m3-p/inifiles/ini_seed_3334.0.xml | 72 ++++
.../m3-p/inifiles/ini_seed_6667.0.xml | 72 ++++
.../factor-update_methods/m3-p/makeini.py | 267 +++++++++++++++
.../factor-update_methods/m3-p/master_ini.xml | 123 +++++++
.../factor-update_methods/m3-p/untitled22.py | 21 ++
.../m3-s/1.0_geometry.xml | 66 ++++
.../m3-s/fmaster_ini.xml | 121 +++++++
.../m3-s/inifiles/ini_seed_1.0.xml | 72 ++++
.../m3-s/inifiles/ini_seed_10000.0.xml | 72 ++++
.../m3-s/inifiles/ini_seed_3334.0.xml | 72 ++++
.../m3-s/inifiles/ini_seed_6667.0.xml | 72 ++++
.../factor-update_methods/m3-s/makeini.py | 267 +++++++++++++++
.../factor-update_methods/m3-s/master_ini.xml | 123 +++++++
.../m3-s/para_master_ini.xml | 123 +++++++
.../factor-update_methods/m3-s/untitled22.py | 21 ++
.../m4-p/1.0_geometry.xml | 66 ++++
.../m4-p/inifiles/ini_seed_1.0.xml | 72 ++++
.../m4-p/inifiles/ini_seed_10000.0.xml | 72 ++++
.../m4-p/inifiles/ini_seed_3334.0.xml | 72 ++++
.../m4-p/inifiles/ini_seed_6667.0.xml | 72 ++++
.../factor-update_methods/m4-p/makeini.py | 267 +++++++++++++++
.../factor-update_methods/m4-p/master_ini.xml | 123 +++++++
.../m4-s/1.0_geometry.xml | 66 ++++
.../m4-s/inifiles/ini_seed_1.0.xml | 72 ++++
.../m4-s/inifiles/ini_seed_10000.0.xml | 72 ++++
.../m4-s/inifiles/ini_seed_3334.0.xml | 72 ++++
.../m4-s/inifiles/ini_seed_6667.0.xml | 72 ++++
.../factor-update_methods/m4-s/makeini.py | 267 +++++++++++++++
.../factor-update_methods/m4-s/master_ini.xml | 123 +++++++
.../simulation-plotting-update.py | 321 ++++++++++++++++++
.../m0/geometries/0.8_geometry.xml | 66 ++++
.../m0/geometries/1.0_geometry.xml | 66 ++++
.../m0/geometries/1.2_geometry.xml | 66 ++++
.../m0/geometries/1.6_geometry.xml | 66 ++++
.../m0/geometries/2.0_geometry.xml | 66 ++++
.../m0/geometries/2.5_geometry.xml | 66 ++++
.../ini_seed_1.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_2.5_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_0.8_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.0_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.2_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.6_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_2.0_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_2.5_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_2.5_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_2.5_geometry.xml | 70 ++++
Data_3.0/factor-width/m0/makeini.py | 267 +++++++++++++++
Data_3.0/factor-width/m0/master_ini.xml | 121 +++++++
Data_3.0/factor-width/m1/fmaster_ini.xml | 121 +++++++
.../m1/geometries/0.8_geometry.xml | 66 ++++
.../m1/geometries/1.0_geometry.xml | 66 ++++
.../m1/geometries/1.2_geometry.xml | 66 ++++
.../m1/geometries/1.6_geometry.xml | 66 ++++
.../m1/geometries/2.0_geometry.xml | 66 ++++
.../m1/geometries/2.5_geometry.xml | 66 ++++
.../ini_seed_1.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_2.5_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_0.8_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.0_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.2_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.6_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_2.0_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_2.5_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_2.5_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_2.5_geometry.xml | 70 ++++
Data_3.0/factor-width/m1/makeini.py | 267 +++++++++++++++
Data_3.0/factor-width/m1/master_ini.xml | 121 +++++++
Data_3.0/factor-width/m2/fmaster_ini.xml | 121 +++++++
.../m2/geometries/0.8_geometry.xml | 66 ++++
.../m2/geometries/1.0_geometry.xml | 66 ++++
.../m2/geometries/1.2_geometry.xml | 66 ++++
.../m2/geometries/1.6_geometry.xml | 66 ++++
.../m2/geometries/2.0_geometry.xml | 66 ++++
.../m2/geometries/2.5_geometry.xml | 66 ++++
.../ini_seed_1.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_2.5_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_0.8_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.0_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.2_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.6_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_2.0_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_2.5_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_2.5_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_2.5_geometry.xml | 70 ++++
Data_3.0/factor-width/m2/makeini.py | 267 +++++++++++++++
Data_3.0/factor-width/m2/master_ini.xml | 121 +++++++
Data_3.0/factor-width/m3/fmaster_ini.xml | 121 +++++++
.../m3/geometries/0.8_geometry.xml | 66 ++++
.../m3/geometries/1.0_geometry.xml | 66 ++++
.../m3/geometries/1.2_geometry.xml | 66 ++++
.../m3/geometries/1.6_geometry.xml | 66 ++++
.../m3/geometries/2.0_geometry.xml | 66 ++++
.../m3/geometries/2.5_geometry.xml | 66 ++++
.../ini_seed_1.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_2.5_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_0.8_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.0_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.2_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.6_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_2.0_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_2.5_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_2.5_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_2.5_geometry.xml | 70 ++++
Data_3.0/factor-width/m3/makeini.py | 267 +++++++++++++++
Data_3.0/factor-width/m3/master_ini.xml | 121 +++++++
Data_3.0/factor-width/m4/fmaster_ini.xml | 121 +++++++
.../m4/geometries/0.8_geometry.xml | 66 ++++
.../m4/geometries/1.0_geometry.xml | 66 ++++
.../m4/geometries/1.2_geometry.xml | 66 ++++
.../m4/geometries/1.6_geometry.xml | 66 ++++
.../m4/geometries/2.0_geometry.xml | 66 ++++
.../m4/geometries/2.5_geometry.xml | 66 ++++
.../ini_seed_1.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_1.0_geometry_2.5_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_0.8_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.0_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.2_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_1.6_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_2.0_geometry.xml | 70 ++++
...ini_seed_10000.0_geometry_2.5_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_3334.0_geometry_2.5_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_0.8_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.0_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.2_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_1.6_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_2.0_geometry.xml | 70 ++++
.../ini_seed_6667.0_geometry_2.5_geometry.xml | 70 ++++
Data_3.0/factor-width/m4/makeini.py | 267 +++++++++++++++
Data_3.0/factor-width/m4/master_ini.xml | 121 +++++++
.../factor-width/simulation-plotting-width.py | 226 ++++++++++++
642 files changed, 56559 insertions(+)
create mode 100644 Data_3.0/factor-inflowrate/figure/multiM-inflowrate-n.png
create mode 100644 Data_3.0/factor-inflowrate/figure/multiM-inflowrate-nt.png
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate-n.png
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate-nt.png
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=10/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=10/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=10/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=10/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=10/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=10/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=16/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=16/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=16/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=16/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=16/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=16/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=2/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=2/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=2/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=2/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=2/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=2/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=4/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=4/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=4/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=4/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=4/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=4/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=8/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=8/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=8/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=8/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=8/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m0/inflowrate=8/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate-n.png
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate-nt.png
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=10/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=10/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=10/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=10/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=10/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=10/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=16/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=16/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=16/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=16/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=16/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=16/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=2/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=2/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=2/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=2/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=2/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=2/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=4/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=4/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=4/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=4/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=4/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=4/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=8/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=8/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=8/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=8/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=8/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m1/inflowrate=8/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m2/W-N.png
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate-n.png
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate-nt.png
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=10/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=10/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=10/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=10/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=10/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=10/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=16/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=16/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=16/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=16/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=16/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=16/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=2/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=2/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=2/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=2/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=2/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=2/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=4/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=4/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=4/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=4/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=4/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=4/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=8/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=8/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=8/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=8/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=8/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m2/inflowrate=8/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m3/W-N.png
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate-n.png
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate-nt.png
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=10/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=10/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=10/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=10/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=10/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=10/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=16/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=16/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=16/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=16/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=16/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=16/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=2/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=2/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=2/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=2/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=2/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=2/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=4/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=4/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=4/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=4/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=4/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=4/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=8/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=8/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=8/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=8/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=8/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m3/inflowrate=8/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate-n.png
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate-nt.png
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=10/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=10/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=10/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=10/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=10/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=10/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=16/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=16/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=16/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=16/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=16/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=16/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=2/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=2/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=2/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=2/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=2/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=2/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=4/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=4/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=4/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=4/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=4/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=4/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=8/1.0_geometry.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=8/fmaster_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=8/makeini.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=8/master_ini.xml
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=8/untitled21.py
create mode 100644 Data_3.0/factor-inflowrate/m4/inflowrate=8/untitled22.py
create mode 100644 Data_3.0/factor-inflowrate/simulation-plotting.py
create mode 100644 Data_3.0/factor-stepsize/figure/multiM-stepsize-n.png
create mode 100644 Data_3.0/factor-stepsize/figure/multiM-stepsize-nt.png
create mode 100644 Data_3.0/factor-stepsize/m0/1.0_geometry.xml
create mode 100644 Data_3.0/factor-stepsize/m0/fmaster_ini.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m0/makeini.py
create mode 100644 Data_3.0/factor-stepsize/m0/master_ini.xml
create mode 100644 Data_3.0/factor-stepsize/m1/1.0_geometry.xml
create mode 100644 Data_3.0/factor-stepsize/m1/fmaster_ini.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m1/makeini.py
create mode 100644 Data_3.0/factor-stepsize/m1/master_ini.xml
create mode 100644 Data_3.0/factor-stepsize/m2/1.0_geometry.xml
create mode 100644 Data_3.0/factor-stepsize/m2/fmaster_ini.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m2/makeini.py
create mode 100644 Data_3.0/factor-stepsize/m2/master_ini.xml
create mode 100644 Data_3.0/factor-stepsize/m2/untitled22.py
create mode 100644 Data_3.0/factor-stepsize/m3/1.0_geometry.xml
create mode 100644 Data_3.0/factor-stepsize/m3/fmaster_ini.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m3/makeini.py
create mode 100644 Data_3.0/factor-stepsize/m3/master_ini.xml
create mode 100644 Data_3.0/factor-stepsize/m3/untitled22.py
create mode 100644 Data_3.0/factor-stepsize/m4/1.0_geometry.xml
create mode 100644 Data_3.0/factor-stepsize/m4/fmaster_ini.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.01.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.02.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.05.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.1.xml
create mode 100644 Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.2.xml
create mode 100644 Data_3.0/factor-stepsize/m4/makeini.py
create mode 100644 Data_3.0/factor-stepsize/m4/master_ini.xml
create mode 100644 Data_3.0/factor-stepsize/simulation-plotting-stepsize.py
create mode 100644 Data_3.0/factor-update_methods/m0-p/1.0_geometry.xml
create mode 100644 Data_3.0/factor-update_methods/m0-p/fmaster_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-update_methods/m0-p/makeini.py
create mode 100644 Data_3.0/factor-update_methods/m0-p/master_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m0-s/1.0_geometry.xml
create mode 100644 Data_3.0/factor-update_methods/m0-s/fmaster_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-update_methods/m0-s/makeini.py
create mode 100644 Data_3.0/factor-update_methods/m0-s/master_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m0-s/para_master_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m1-p/1.0_geometry.xml
create mode 100644 Data_3.0/factor-update_methods/m1-p/fmaster_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-update_methods/m1-p/makeini.py
create mode 100644 Data_3.0/factor-update_methods/m1-p/master_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m1-s/1.0_geometry.xml
create mode 100644 Data_3.0/factor-update_methods/m1-s/fmaster_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-update_methods/m1-s/makeini.py
create mode 100644 Data_3.0/factor-update_methods/m1-s/master_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m1-s/para_master_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m2-p/1.0_geometry.xml
create mode 100644 Data_3.0/factor-update_methods/m2-p/fmaster_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-update_methods/m2-p/makeini.py
create mode 100644 Data_3.0/factor-update_methods/m2-p/master_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m2-p/untitled22.py
create mode 100644 Data_3.0/factor-update_methods/m2-s/1.0_geometry.xml
create mode 100644 Data_3.0/factor-update_methods/m2-s/fmaster_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-update_methods/m2-s/makeini.py
create mode 100644 Data_3.0/factor-update_methods/m2-s/master_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m2-s/para_master_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m2-s/untitled22.py
create mode 100644 Data_3.0/factor-update_methods/m3-p/1.0_geometry.xml
create mode 100644 Data_3.0/factor-update_methods/m3-p/fmaster_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-update_methods/m3-p/makeini.py
create mode 100644 Data_3.0/factor-update_methods/m3-p/master_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m3-p/untitled22.py
create mode 100644 Data_3.0/factor-update_methods/m3-s/1.0_geometry.xml
create mode 100644 Data_3.0/factor-update_methods/m3-s/fmaster_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-update_methods/m3-s/makeini.py
create mode 100644 Data_3.0/factor-update_methods/m3-s/master_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m3-s/para_master_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m3-s/untitled22.py
create mode 100644 Data_3.0/factor-update_methods/m4-p/1.0_geometry.xml
create mode 100644 Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-update_methods/m4-p/makeini.py
create mode 100644 Data_3.0/factor-update_methods/m4-p/master_ini.xml
create mode 100644 Data_3.0/factor-update_methods/m4-s/1.0_geometry.xml
create mode 100644 Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_1.0.xml
create mode 100644 Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_10000.0.xml
create mode 100644 Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_3334.0.xml
create mode 100644 Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_6667.0.xml
create mode 100644 Data_3.0/factor-update_methods/m4-s/makeini.py
create mode 100644 Data_3.0/factor-update_methods/m4-s/master_ini.xml
create mode 100644 Data_3.0/factor-update_methods/simulation-plotting-update.py
create mode 100644 Data_3.0/factor-width/m0/geometries/0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/geometries/1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/geometries/1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/geometries/1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/geometries/2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/geometries/2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m0/makeini.py
create mode 100644 Data_3.0/factor-width/m0/master_ini.xml
create mode 100644 Data_3.0/factor-width/m1/fmaster_ini.xml
create mode 100644 Data_3.0/factor-width/m1/geometries/0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/geometries/1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/geometries/1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/geometries/1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/geometries/2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/geometries/2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m1/makeini.py
create mode 100644 Data_3.0/factor-width/m1/master_ini.xml
create mode 100644 Data_3.0/factor-width/m2/fmaster_ini.xml
create mode 100644 Data_3.0/factor-width/m2/geometries/0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/geometries/1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/geometries/1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/geometries/1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/geometries/2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/geometries/2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m2/makeini.py
create mode 100644 Data_3.0/factor-width/m2/master_ini.xml
create mode 100644 Data_3.0/factor-width/m3/fmaster_ini.xml
create mode 100644 Data_3.0/factor-width/m3/geometries/0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/geometries/1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/geometries/1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/geometries/1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/geometries/2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/geometries/2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m3/makeini.py
create mode 100644 Data_3.0/factor-width/m3/master_ini.xml
create mode 100644 Data_3.0/factor-width/m4/fmaster_ini.xml
create mode 100644 Data_3.0/factor-width/m4/geometries/0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/geometries/1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/geometries/1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/geometries/1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/geometries/2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/geometries/2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
create mode 100644 Data_3.0/factor-width/m4/makeini.py
create mode 100644 Data_3.0/factor-width/m4/master_ini.xml
create mode 100644 Data_3.0/factor-width/simulation-plotting-width.py
diff --git a/Data_3.0/factor-inflowrate/figure/multiM-inflowrate-n.png b/Data_3.0/factor-inflowrate/figure/multiM-inflowrate-n.png
new file mode 100644
index 0000000000000000000000000000000000000000..dedd1461eb3f6a3e97a7c5802040146adc5e3aa3
GIT binary patch
literal 75717
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ξ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
Cnt#jy
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-inflowrate/figure/multiM-inflowrate-nt.png b/Data_3.0/factor-inflowrate/figure/multiM-inflowrate-nt.png
new file mode 100644
index 0000000000000000000000000000000000000000..18e866a16eda81ec39e1f9bb5213085506818717
GIT binary patch
literal 84097
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%0A5_0K=szqs`E
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
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate-n.png b/Data_3.0/factor-inflowrate/m0/inflowrate-n.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbc37b8f20f3f2961b8e75ebee2a46dd5abe5ee1
GIT binary patch
literal 5985
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
R)eH;_44$rjF6*2UngBDf`Pu*g
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate-nt.png b/Data_3.0/factor-inflowrate/m0/inflowrate-nt.png
new file mode 100644
index 0000000000000000000000000000000000000000..43fb3009aa2d30bd30376948164719f030b61f23
GIT binary patch
literal 6166
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∾^d(S^N{{QoQz0&pAtyxn&Jv|M#-z}S6
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
IbxsLQ0ExdX9RL6T
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=10/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=10/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=10/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=10/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=10/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=10/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..702d98c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..21a6ab2
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..cdbb7eb
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..315aa46
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=10/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=10/makeini.py b/Data_3.0/factor-inflowrate/m0/inflowrate=10/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=10/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=10/master_ini.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=10/master_ini.xml
new file mode 100644
index 0000000..70ddb6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=10/master_ini.xml
@@ -0,0 +1,124 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="40" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="40" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="40" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="40" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="40" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="40" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="40" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="40" group_id="3" caption="source 8" greedy="false" />
+ <source id="9" frequency="1" agents_max="40" group_id="2" caption="source 7" greedy="false" />
+ <source id="10" frequency="1" agents_max="40" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=10/untitled21.py b/Data_3.0/factor-inflowrate/m0/inflowrate=10/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=10/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=10/untitled22.py b/Data_3.0/factor-inflowrate/m0/inflowrate=10/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=10/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=16/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=16/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=16/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=16/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=16/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=16/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..09d894b
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..7e3df03
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..0388798
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..1404812
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=16/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=16/makeini.py b/Data_3.0/factor-inflowrate/m0/inflowrate=16/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=16/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=16/master_ini.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=16/master_ini.xml
new file mode 100644
index 0000000..d8eaf43
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=16/master_ini.xml
@@ -0,0 +1,130 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="25" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="25" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="25" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="25" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="25" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="25" group_id="3" caption="source 8" greedy="false" />
+ <source id="9" frequency="1" agents_max="25" group_id="0" caption="source 9" greedy="false" />
+ <source id="10" frequency="1" agents_max="25" group_id="1" caption="source 10" greedy="false" />
+ <source id="11" frequency="1" agents_max="25" group_id="2" caption="source 11" greedy="false" />
+ <source id="12" frequency="1" agents_max="25" group_id="3" caption="source 12" greedy="false" />
+ <source id="13" frequency="1" agents_max="25" group_id="0" caption="source 13" greedy="false" />
+ <source id="14" frequency="1" agents_max="25" group_id="1" caption="source 14" greedy="false" />
+ <source id="15" frequency="1" agents_max="25" group_id="2" caption="source 15" greedy="false" />
+ <source id="16" frequency="1" agents_max="25" group_id="3" caption="source 16" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=16/untitled21.py b/Data_3.0/factor-inflowrate/m0/inflowrate=16/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=16/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=16/untitled22.py b/Data_3.0/factor-inflowrate/m0/inflowrate=16/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=16/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=2/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=2/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=2/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=2/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=2/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=2/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..e3afc19
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..fcf391e
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..8f5cf28
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..3f8d91c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=2/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=2/makeini.py b/Data_3.0/factor-inflowrate/m0/inflowrate=2/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=2/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=2/master_ini.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=2/master_ini.xml
new file mode 100644
index 0000000..ff9f0e3
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=2/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="200" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="200" group_id="1" caption="source 2" greedy="false" />
+ <!--
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ -->
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=2/untitled21.py b/Data_3.0/factor-inflowrate/m0/inflowrate=2/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=2/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=2/untitled22.py b/Data_3.0/factor-inflowrate/m0/inflowrate=2/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=2/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=4/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=4/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=4/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=4/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=4/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=4/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..3e0ac22
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..cd5335f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..67d4d41
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..9a5f95f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=4/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=4/makeini.py b/Data_3.0/factor-inflowrate/m0/inflowrate=4/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=4/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=4/master_ini.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=4/master_ini.xml
new file mode 100644
index 0000000..0ec1044
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=4/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="100" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="100" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="100" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="100" group_id="3" caption="source 4" greedy="false" />
+ <!--
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ -->
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=4/untitled21.py b/Data_3.0/factor-inflowrate/m0/inflowrate=4/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=4/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=4/untitled22.py b/Data_3.0/factor-inflowrate/m0/inflowrate=4/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=4/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=8/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=8/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=8/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=8/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=8/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=8/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..7fdbff3
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..fcf0c5e
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..a1e0143
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..692f0dc
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=8/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=8/makeini.py b/Data_3.0/factor-inflowrate/m0/inflowrate=8/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=8/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=8/master_ini.xml b/Data_3.0/factor-inflowrate/m0/inflowrate=8/master_ini.xml
new file mode 100644
index 0000000..cdb3d3d
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=8/master_ini.xml
@@ -0,0 +1,122 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=8/untitled21.py b/Data_3.0/factor-inflowrate/m0/inflowrate=8/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=8/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m0/inflowrate=8/untitled22.py b/Data_3.0/factor-inflowrate/m0/inflowrate=8/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m0/inflowrate=8/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate-n.png b/Data_3.0/factor-inflowrate/m1/inflowrate-n.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbc37b8f20f3f2961b8e75ebee2a46dd5abe5ee1
GIT binary patch
literal 5985
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
R)eH;_44$rjF6*2UngBDf`Pu*g
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate-nt.png b/Data_3.0/factor-inflowrate/m1/inflowrate-nt.png
new file mode 100644
index 0000000000000000000000000000000000000000..43fb3009aa2d30bd30376948164719f030b61f23
GIT binary patch
literal 6166
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∾^d(S^N{{QoQz0&pAtyxn&Jv|M#-z}S6
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
IbxsLQ0ExdX9RL6T
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=10/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=10/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=10/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=10/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=10/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=10/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..489f552
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..8522280
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..9c5a442
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..7d5a0d9
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=10/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=10/makeini.py b/Data_3.0/factor-inflowrate/m1/inflowrate=10/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=10/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=10/master_ini.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=10/master_ini.xml
new file mode 100644
index 0000000..77420e4
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=10/master_ini.xml
@@ -0,0 +1,124 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="40" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="40" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="40" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="40" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="40" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="40" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="40" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="40" group_id="3" caption="source 8" greedy="false" />
+ <source id="9" frequency="1" agents_max="40" group_id="2" caption="source 7" greedy="false" />
+ <source id="10" frequency="1" agents_max="40" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=10/untitled21.py b/Data_3.0/factor-inflowrate/m1/inflowrate=10/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=10/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=10/untitled22.py b/Data_3.0/factor-inflowrate/m1/inflowrate=10/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=10/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=16/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=16/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=16/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=16/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=16/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=16/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..85329de
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..4a80cea
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..817d60e
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..c7d3e6f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=16/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=16/makeini.py b/Data_3.0/factor-inflowrate/m1/inflowrate=16/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=16/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=16/master_ini.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=16/master_ini.xml
new file mode 100644
index 0000000..fd713cb
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=16/master_ini.xml
@@ -0,0 +1,130 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="25" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="25" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="25" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="25" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="25" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="25" group_id="3" caption="source 8" greedy="false" />
+ <source id="9" frequency="1" agents_max="25" group_id="0" caption="source 9" greedy="false" />
+ <source id="10" frequency="1" agents_max="25" group_id="1" caption="source 10" greedy="false" />
+ <source id="11" frequency="1" agents_max="25" group_id="2" caption="source 11" greedy="false" />
+ <source id="12" frequency="1" agents_max="25" group_id="3" caption="source 12" greedy="false" />
+ <source id="13" frequency="1" agents_max="25" group_id="0" caption="source 13" greedy="false" />
+ <source id="14" frequency="1" agents_max="25" group_id="1" caption="source 14" greedy="false" />
+ <source id="15" frequency="1" agents_max="25" group_id="2" caption="source 15" greedy="false" />
+ <source id="16" frequency="1" agents_max="25" group_id="3" caption="source 16" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=16/untitled21.py b/Data_3.0/factor-inflowrate/m1/inflowrate=16/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=16/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=16/untitled22.py b/Data_3.0/factor-inflowrate/m1/inflowrate=16/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=16/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=2/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=2/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=2/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=2/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=2/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=2/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..e48b0e7
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..a8abc98
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..78eb1f0
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..e6b760c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=2/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=2/makeini.py b/Data_3.0/factor-inflowrate/m1/inflowrate=2/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=2/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=2/master_ini.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=2/master_ini.xml
new file mode 100644
index 0000000..4e21dac
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=2/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="200" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="200" group_id="1" caption="source 2" greedy="false" />
+ <!--
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ -->
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=2/untitled21.py b/Data_3.0/factor-inflowrate/m1/inflowrate=2/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=2/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=2/untitled22.py b/Data_3.0/factor-inflowrate/m1/inflowrate=2/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=2/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=4/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=4/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=4/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=4/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=4/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=4/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..1a74726
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..26850c3
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..95fe3b7
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..16577ab
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=4/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=4/makeini.py b/Data_3.0/factor-inflowrate/m1/inflowrate=4/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=4/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=4/master_ini.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=4/master_ini.xml
new file mode 100644
index 0000000..6125b70
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=4/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="100" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="100" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="100" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="100" group_id="3" caption="source 4" greedy="false" />
+ <!--
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ -->
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=4/untitled21.py b/Data_3.0/factor-inflowrate/m1/inflowrate=4/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=4/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=4/untitled22.py b/Data_3.0/factor-inflowrate/m1/inflowrate=4/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=4/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=8/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=8/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=8/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=8/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=8/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=8/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..335eaf7
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..5bbc391
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..824bd28
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..5f6e05b
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=8/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=8/makeini.py b/Data_3.0/factor-inflowrate/m1/inflowrate=8/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=8/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=8/master_ini.xml b/Data_3.0/factor-inflowrate/m1/inflowrate=8/master_ini.xml
new file mode 100644
index 0000000..7120e36
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=8/master_ini.xml
@@ -0,0 +1,122 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=8/untitled21.py b/Data_3.0/factor-inflowrate/m1/inflowrate=8/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=8/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m1/inflowrate=8/untitled22.py b/Data_3.0/factor-inflowrate/m1/inflowrate=8/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m1/inflowrate=8/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/W-N.png b/Data_3.0/factor-inflowrate/m2/W-N.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbc37b8f20f3f2961b8e75ebee2a46dd5abe5ee1
GIT binary patch
literal 5985
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
R)eH;_44$rjF6*2UngBDf`Pu*g
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate-n.png b/Data_3.0/factor-inflowrate/m2/inflowrate-n.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbc37b8f20f3f2961b8e75ebee2a46dd5abe5ee1
GIT binary patch
literal 5985
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
R)eH;_44$rjF6*2UngBDf`Pu*g
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate-nt.png b/Data_3.0/factor-inflowrate/m2/inflowrate-nt.png
new file mode 100644
index 0000000000000000000000000000000000000000..43fb3009aa2d30bd30376948164719f030b61f23
GIT binary patch
literal 6166
zcmeAS@N?(olHy`uVBq!ia0y~yVBEmKz^K5%#=yXERYNV4fq{Xg*vT`5gM)*kh9jke
zfq{Xuz$3Dlfq`2Hgc&d0t^32kz+hS88c`CQpH@<ySd_|;n^;nilV6gPnWRvbT2!2w
zpQm7~XP{@KqmWTjQedU8k5HhOUzDzI(O|unfkC|3)5S5QV$Rz;)g_m|{yqLNe9NNc
zMaQHB{R~@!gu6wuxH%t~ZFAzid(3Z!HBX6*j&xMtrnhS*bEa?BII+~)Xxrn5Kipeo
zH#IN5oEKy}`BKr!!<`8-yFC)8treB(p0e!<cR<eHKmQ)gm>(ORvtY^JDbF9v^r`$*
zx$l2(`IDJyhJ49Af(#7Pb}n0Q&cJYBsX_t+gSManL&H=K35Ek+EIbSes!VJQ8-y5{
z86r9x7#Y^M9AIDwQyMU3N56h$TQ_B)bGw$M<<9ln85zP>u3dX|W$^M}RnoRb3Cz>x
z%vlqlapn4L28PuYd++VL=hXjENQu5)Ick!Snwsk6>pS)K+pxsM#O0@>qoYmB-^J{_
zo98>vCUWc6t+IOdWp8G%@yo3#eSPg{#&L#*e_Cmb+4=d`A06%9TKl^!G&D5x^|iID
zR;_xqA?@-qUoQ`j3l|r=Pn|!1{ZjAgWjk!_?c?wNIA)%-HI>1^UTkxNtVMxC-u7rs
zO-(72j0x{{K9`$1ZCY7Ga8%T)J9lC{FTJ_Bd29A{J;`Jh&)eH_gT1`EE?v3=*WG$J
zQB_sd)o*u<UhCn9dDo8|J(_u9f?`%q&J}n0+9mP-K25KBv+;P+)>sAydvWpA%(cH}
zUrD!=>62Sq`DWwsDf8#AKiJG3|3$*p)m2MNYm$noiAl_{JVu7Uv1gc`740nf^W)=*
zm%DaZ^-35nI&G>q-8(loH!Cx9;^miD{{8(O8Wgn1U9Qq)x&QoYrq^Q@OXuxywEy#v
z-#W%#U*Es7vT~Bj`s>wC--|FTIDbSZ!EV0))vH%mtz3Cgcl(`1j~*rc{r7$U`weOW
z92yclug+P&5ApQuT;@Mtul?}Cz182{uG#$i@mR{HqF{LiBf~m9L+*%}m^o%SHx|s9
zBeQk;_Sfw8KN>Gxy0oR{XHn(eI94V`-IyH#pP!$fe*5jT%P&I;3k%n5V`tdVbGYQ|
zvC9k(zE+8Hwf?G-W=Ig7Eoc2xjc-t9m#)kMr%s)kGHaIB_S<U@9XjMUefzd;S?})b
zEZTi{mQCfRtn6%6Pf=0PSr&zhj`hp0?-W+g`u^_j#ye&V3*@^Z58S$aduzqVq}==a
zVnahiZ|y2wy=v7et2H;bWKI?m5-R!fBJk<+=h-hWEuFMvp>zAIrPJds?f>^xpS9WX
z?0kFsu-j}5UxE#}Z!|KqKPlTib<(6oj?HW@=T*N8%*@PeH(k1P>8Z14r>dNtXB)k{
z?Cm5&x0y3%N*N}#sA%fy`aVB5H#j>xd(AdJh8OKgVjBu9)+|}F<V5E5(@P61?!29~
zV}}K=q>)Q+Z?EjNKOg(+L(<Zgt=s?am-hZl28aEk;;We@lda}HFR)k?Rs7<DqHgT2
zkf%?d#>y>TvBJaE)pgR6wzjs@H}x16%<sOLpP)D0`*^>6|D1KJS9kBxxp8&Ywryrx
zw`@7_vc&D${o3z$f8Bjww>&z3@7B}FPo6&26yeeo;d=ROcK$x6?<@=#<WUmj&(F_8
zV`A1gC|pSNRS*a;keH$}b;^{CUteApS;$z`{@RjuZqCZB+1Fp4j{jG*W*ZN~i{nXR
z8+Pol$i1<_(bCd#*WYiqP1DcGEM2-Z^XI3hRUeOvt9o*a>xCpIFTRtv{o49?`JXHP
zw(&}XBEa_J5#duOP6W8QwfW7nkzBo&nc<gW`^#6o%NY;6{;DOy_4TV6!vQTb+p<r-
zG7N*PVAov6sI9FXoRziePTqDdZf@(?d$(?_+FAVk)Z4P`Pft#+TD!J4W?R|YsGWE7
zmM&YCb-Yj3@Qx|N0(;WZ=Bia%qT=GOFD!J{($>E0%x}Bo+qZA`?myXl-s|MaOQzRj
ze!Sm&{@Xu8Hlb&tvS74#b#9uPTU_;9Q{&`gJttn8W?!3OntiP#!Z`UD&*xj&>m`$W
ze*Spef7aLhZi?N{CzJiM?RT%U7FPG`$!m_@CLt`J-}B{v{iDbFbNbKC2rmJnFIAao
zf%awJ7Vd~>HIm`e*3{H2y7jau^Z&oUch_}xcVC{M=zQhIjTHqJYczwGmF&o~ka>5P
z_unJ&OEZmS&s!I}MePWvdN%W(?KOuFzg`DrXCMDOBm6tW=v}jK>enfroqgTBde@;O
zF@t2E<)3Bv-21P6d9rI#NJz+%MT?X?gPfh6OQdbe*1Z1w|2sRAc!|0Av#X{M55G&h
zd^h<vgTUs7oiTc{_H{NzyVkAqQ+DflQPg|-X;5_Z?5L=yCnZ+ZC9$5TPM;2ri<_r%
z^7U7@?FT0+FD<|KvgY54z@XIBlI^9Y9)4+Y7Zc(xCdOTSotLKUeym1&qtIsl!XGtu
zq2b}Hmo0O9etv#<Vc|xmMu&FOMhAz32?3Krf`S&kyuAGM!vYNfjukt0M66xAcGb$2
zfu*He)qH1N*)1KjH>#`ueMMZ&pVrS8B|mrZfziFI7MmmXJ^c3E{{PJi8@b7oCMAWf
zjY{n?T()4rfhp6bNhSAKR)1SF)3$os∾^d(S^N{{QoQz0&pAtyxn&Jv|M#-z}S6
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
IbxsLQ0ExdX9RL6T
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=10/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=10/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=10/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=10/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=10/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=10/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..298f8e0
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..0c48338
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..0b476f6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..32cbe0f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=10/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=10/makeini.py b/Data_3.0/factor-inflowrate/m2/inflowrate=10/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=10/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=10/master_ini.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=10/master_ini.xml
new file mode 100644
index 0000000..92d33dd
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=10/master_ini.xml
@@ -0,0 +1,124 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="40" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="40" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="40" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="40" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="40" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="40" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="40" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="40" group_id="3" caption="source 8" greedy="false" />
+ <source id="9" frequency="1" agents_max="40" group_id="2" caption="source 7" greedy="false" />
+ <source id="10" frequency="1" agents_max="40" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=10/untitled21.py b/Data_3.0/factor-inflowrate/m2/inflowrate=10/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=10/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=10/untitled22.py b/Data_3.0/factor-inflowrate/m2/inflowrate=10/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=10/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=16/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=16/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=16/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=16/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=16/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=16/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..f1ad29c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..0bc2a70
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..88ec926
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..15bac21
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=16/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=16/makeini.py b/Data_3.0/factor-inflowrate/m2/inflowrate=16/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=16/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=16/master_ini.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=16/master_ini.xml
new file mode 100644
index 0000000..23f62b0
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=16/master_ini.xml
@@ -0,0 +1,130 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="25" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="25" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="25" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="25" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="25" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="25" group_id="3" caption="source 8" greedy="false" />
+ <source id="9" frequency="1" agents_max="25" group_id="0" caption="source 9" greedy="false" />
+ <source id="10" frequency="1" agents_max="25" group_id="1" caption="source 10" greedy="false" />
+ <source id="11" frequency="1" agents_max="25" group_id="2" caption="source 11" greedy="false" />
+ <source id="12" frequency="1" agents_max="25" group_id="3" caption="source 12" greedy="false" />
+ <source id="13" frequency="1" agents_max="25" group_id="0" caption="source 13" greedy="false" />
+ <source id="14" frequency="1" agents_max="25" group_id="1" caption="source 14" greedy="false" />
+ <source id="15" frequency="1" agents_max="25" group_id="2" caption="source 15" greedy="false" />
+ <source id="16" frequency="1" agents_max="25" group_id="3" caption="source 16" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=16/untitled21.py b/Data_3.0/factor-inflowrate/m2/inflowrate=16/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=16/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=16/untitled22.py b/Data_3.0/factor-inflowrate/m2/inflowrate=16/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=16/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=2/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=2/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=2/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=2/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=2/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=2/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..5437c10
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..16fe9e6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..2da519c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..9799de5
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=2/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=2/makeini.py b/Data_3.0/factor-inflowrate/m2/inflowrate=2/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=2/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=2/master_ini.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=2/master_ini.xml
new file mode 100644
index 0000000..2f81ef2
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=2/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="200" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="200" group_id="1" caption="source 2" greedy="false" />
+ <!--
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ -->
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=2/untitled21.py b/Data_3.0/factor-inflowrate/m2/inflowrate=2/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=2/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=2/untitled22.py b/Data_3.0/factor-inflowrate/m2/inflowrate=2/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=2/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=4/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=4/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=4/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=4/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=4/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=4/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..4a67a25
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..e107843
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..dd958f7
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..b1b92d4
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=4/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=4/makeini.py b/Data_3.0/factor-inflowrate/m2/inflowrate=4/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=4/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=4/master_ini.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=4/master_ini.xml
new file mode 100644
index 0000000..69a88c0
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=4/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="100" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="100" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="100" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="100" group_id="3" caption="source 4" greedy="false" />
+ <!--
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ -->
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=4/untitled21.py b/Data_3.0/factor-inflowrate/m2/inflowrate=4/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=4/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=4/untitled22.py b/Data_3.0/factor-inflowrate/m2/inflowrate=4/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=4/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=8/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=8/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=8/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=8/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=8/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=8/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..0a5eb26
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..bedd707
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..59743fc
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..d63fb6c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=8/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=8/makeini.py b/Data_3.0/factor-inflowrate/m2/inflowrate=8/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=8/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=8/master_ini.xml b/Data_3.0/factor-inflowrate/m2/inflowrate=8/master_ini.xml
new file mode 100644
index 0000000..cee381c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=8/master_ini.xml
@@ -0,0 +1,122 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=8/untitled21.py b/Data_3.0/factor-inflowrate/m2/inflowrate=8/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=8/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m2/inflowrate=8/untitled22.py b/Data_3.0/factor-inflowrate/m2/inflowrate=8/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m2/inflowrate=8/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/W-N.png b/Data_3.0/factor-inflowrate/m3/W-N.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbc37b8f20f3f2961b8e75ebee2a46dd5abe5ee1
GIT binary patch
literal 5985
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
R)eH;_44$rjF6*2UngBDf`Pu*g
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate-n.png b/Data_3.0/factor-inflowrate/m3/inflowrate-n.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbc37b8f20f3f2961b8e75ebee2a46dd5abe5ee1
GIT binary patch
literal 5985
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
R)eH;_44$rjF6*2UngBDf`Pu*g
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate-nt.png b/Data_3.0/factor-inflowrate/m3/inflowrate-nt.png
new file mode 100644
index 0000000000000000000000000000000000000000..43fb3009aa2d30bd30376948164719f030b61f23
GIT binary patch
literal 6166
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∾^d(S^N{{QoQz0&pAtyxn&Jv|M#-z}S6
z`Sa;?`|lCczqmb_rhBYMDz)cu;lurV5^D<2Xj_3%)m{VR*>*=B8Z7HJpTWkk{`zWI
z1LMY*8z;>R83w#jgr&h2<im9B$`zIU_x1aaEAPL*{@Jr<de>Q-9V>0*DsALgn;ktb
z%`{FoDSqbDD{1VOnVA{2Ehkb3R31G~654R+kW*@U`s!V~qHf;2simXyX3MgbD?PQt
z)?E1a_jl=o1B`1UHYy42QuUtp;>1K{tBMZ`{{6bXKkN6mw;OMOs*i5Z176<VQ)kcC
z_B?g=?A2|#x2@LR+?d?{r*8iozvV(gLQlT`4h;)i_Txu|?`$*QNhTQ=6ntkGIF^={
z!VS1r{oYnpP0eePkg#y+rza=<vJXAnFlo{xrRA}D(+@o?Xg3A57QFTME_w6jjrQ(D
z28aFP*Q3o#uE&<YJklvV_gwtms?z>-`8_X7<{f_6@n`SawZ7l)Rj;r6^H^S6Rdwm<
z+ZtM0L4ko2RaP!sxX}GLE5nVI*O|5zKR=hJFKt(|<JIfeQ)kRr@#|L=ue8~k%Tm)%
zFFkeY6u1$SnwskB_x$P8laD{XP`Cf-x&8P_q+C(2&cJZ3<D_>-ql3bym4^}xRzz-2
zD~*~wdGg{<pNdS)%~$W-8Ts_-(^Dr;PE@h|^<r^WX6D8Gy3eyCa>N-D8fUQN+}xD9
zYQ>5P#~%l}y1G7D{9$2$$M^g7`&CZ9ELpW+frH(Af4lkqr>E;rzx*;JHg;~<`na{L
zR%w9(P*PIz){eqtoo&1fFOJJBTWvmn2qf60Gg#KFT<KZ2KVGiiy>5T}*|TS3*KxBo
zf2y$gRAIx#);w2_pM^=vJnzobdwL89m<%~15)&70+Ppb5Hg@fsH#wqWVr5a6uUuIo
zsvVZ`|KDG$f(H#@Ya%Wxmel{cJl~|^!vk2zuGz9BWarMEla}1M6O(&;+uF;sWUb3i
zy#IdsWr>!eqGR3u_|(+YNlW<c{{+0gzW(~+emkk|w@eH=0+So|e!o}k<>NC&MO97h
z)svHx=U!_;ZZju(201!5%GLcyJbL{2@ub}h4BSV)UgN!6dOg;v@R7^%&*AIi?k;{U
z4QZBq`M&>utb4!Q)%Ep%v#(ye7Wc)htE(#{Bt*qCD<k8@#X?4gvR7Lh-rm`{`S$5H
ze))C3epRWesjb?#FYa&~@9Qnco))d#w8;ouOh-mW-rAl&|6a{!UsZMW)oa)Ks{79i
z2@4Br-#Q<uu#Wpy%f#>{-msF>P=Le5E>wbt%{2Sk8o%tKqN0$vxOLB-rGb*>o;@*^
zmX=i?4zhoJxBLC7ZQH`u@B6hXZ};16dXHHdcI-N$l5l#OZm_FstBqX0mX_9*oSR0T
zK^h{L{(ir&?^$FuS4%@<!ujWu&p*HX>FMdGC05BBZ5bL`2U}8nVsLE6zI#We8kD>U
zP*qotzf>wMB~|kItoiqMZEObMT2c0y=-$&aBXe`t`pvbvdfIxI5nIjyz4q&`Lp4NR
zz0Qqju5@h&qxV@eCG{1VptZoRZy%4#*Y8<xeo@|cj>X3H+Y?0L#;s0F+rtj(O@ozR
z$!GqyRKNCR@%1-%cZX+YW}Z56;=;qj?WTEmc1XN=(`1@`?aQgRYvT9EB_Hn#t*Y9!
zY4hf<=d9nyTzVU$`}r5Bk0Zl(T($nvtE`#VHzpr9$-QNgnwF+zYa6S-|4&i>`s%G`
zUg+2V>{j!cv0%pzi>Xtll<d%v;5qg9<B7)~H6(cAzLd?l-a3D~q;cAdZ@2TW-`JQO
z8XbLG`}mt_8*eOf?LL!V|2sOl$I#T&R83cR?e)CfYuCPAH2r?X<KDeRbMEdgpWScw
z>x4w|nalq6xzEnbysW+b_S8lL{p6m?|9`)qy|Oa+?30s|&r0X-xtP8E_kOlRd*mt}
zFn<1W*<U)j$Fk(b1WD7Zko9-oEoVE_la-Zq#{S<&e&hOoHJ|@{KJR`mKPSgzv3tK+
zZ*T9il`Bv7$l2a9F*S|7wvp}Ao*u(z+3~+;Y3l2nACvfekX_zI?)JJVb-$%=JUG~_
z>N$1l)KjNUfx5h=X=fzP&NlZyCXst*N8owe?{mV|#jLFS{H%1xyPd_)zx;h)AOHAx
ze|TEjvTtv0DtrEVX1;%A{lCxiCoMU1#%FEJ&Y(#l0RanorOj7u+7xtoneXNA`@Y-u
z%G<|H`tmlvK3Z7aFC;2zR##V-is$KRx|eTmPM<n)qM+rsX}ZxSnU_>jQ&KW6E^^Jv
z&wqdM?;Nw-S&tq+R`m>C<`WnjEBpDE3@a;Z)su<tC5L&<V=k>(x2)1qhHvlxf4?U!
znKn(VSHiGK@^Al>Cn-ypFMmBN+saPn-HnaTb^GJ}mIrfka(?>#S4&$vIqvS6)vH!{
z<>uyo`u%reWzDY}Wk+K!+QhZ_&)0o(bMx_<hurZ7$NS~Y-@bjDc4~@d+WUKZk4YpK
z6&EX?XR!O7lXiDkY1+Xi)?*UMeDZcVlO|0%b8~b0*;`w)&$jVO`*?eIf2`V@cC1J8
zm_+iXO`Fb4RCYfz&$im9re@F2_x1m!Z@MQZFE%_j!#Mrij4fMCieFt>$@km%*o;-H
zv_7xRuRT4-zW$y>@|k9SyNsrT3k;9Vuq=Ky!}{Hh#h2&%>;GSKv|D_(`n-y!%Gi{+
z`ro(jpDEw>SvL7hYkKwcU(z?O8m%wCUwger+Wg#|qSLz1y5s*W;%s#~vto9A^ZdQ~
z$0R;Kne1Qo<NJ=Hr(PhY(fYh+Uk`EX&zNbPK5O^;eYaCmQf8=nPpf&C-#T6U-Kl3A
z%Y9~<c<N2}o-}3R#D%wRMb$plj(=J9clG*xtK|Q_aG$iqF!@-<l@)<izu#^*EqxVY
z`}In&lx-Eb<JQ&1HP^D(ZR^&pUcSDewY7WId}l4WxY*r2@Ab;%^Dc4g?@{oys{6BJ
z)#}xymwnAkE$*$0-Tmd+?EF*DKYLC(H_vu;;^8*WN&h~y+kbgsmv?iM>%st!^?N>f
z@h`u$x6x|7zuixlpFe-z+EZEl#d&8(qm{lVsN*fB6S1IOzAobTx3`!7{QUg&T6BJC
z)wdec^DC^Eb@OLf%k;^`e$Sc{9vwaV+q=7~o7wrZo}8FC%es7>S^m8>t=!^qm)?GD
z5oO%{@7HVP`u*Q-f$E&Hi(g~^KJc7${&}#5NRXFT*Ppumesissrq8QfcKE-3;p1L&
zw|{Ywkt^p~muKDISKHO!A08Gq?c7}J>rX!x6&G(Udwa`o`q{bG;s5`A-)}wl|K<7r
zLcZTEpRbbn{M_8Ay;WP|DxXf}`~EeE_e$m2S*G6kd%sTGv}u!yr@G&q00n^y-TM19
z)?cr__`AZ8xik)>(=7LvNafAf=d9mf*;)L&<kgjxCz?b3d7ns@9!FGodY?9buUvPn
z5>(Wws=8ikoo*Cg|F@J$Z0-8GudA!R-Ap&F{Z+E}@3-4lWp8E#1qYjETu@L|Reibh
z`Mh99$3`hBsVyldg>)k~EjfKVGcz;L$*Jkl<Hw~>P6+P(_v`h<)9ZG>v#R~`@%XNH
zyIxP3J9lm5<}^)v`}o6cyurc2lkI*yVD6PNeN{aFtc*=XK)0A~P-JA}6@IO~N0(LB
ze)D$QylK;xyt}(jcU@n)Au~?dz3<Ap*xg$a4l>Ew)kHi$H@Eww_~Tn9i{CwY^5n&H
z`~N#<&7Q652^yWSd+@!j(LjIx`Q^`^Jv$-J`TpMC-(CN2zu7MTXon2H?UxC+Zr?Vo
z`}5<(`i=ALlxJC$t^&0TKuzemR-vV(rL(L`v!-wV{B?bOY;JC@m%o3wqhsSTpP52C
zb@cW9U%q@f%RGPHu|C<=p{v6(kM&4;`TI}5|3197wzmJ<ug&xS`pDP)Sh(-^-S=9`
z%Fc}r4?eLAsLp<NRsM#_`uM-E!mFOmOfNYuTmIr+_4}*O&d#p>V|3%`hD^8oJs;a*
z^rp|N|5vFSwZ$VdGjo#4^2;lmnwWmp*!`@r(~aL3<G1{?k^1GWjRxzp*Y6E`eQj-U
zS=qK@{qp+BJ#rNf8c)wTbMzy4go5|P{R0dP%<{AxZvJJjx$=T|i}w*X1_lNOPgg&e
IbxsLQ0ExdX9RL6T
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=10/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=10/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=10/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=10/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=10/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=10/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..4775226
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..ccd39ce
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..9e3b3f5
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..f84d535
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=10/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=10/makeini.py b/Data_3.0/factor-inflowrate/m3/inflowrate=10/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=10/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=10/master_ini.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=10/master_ini.xml
new file mode 100644
index 0000000..b0b3f9c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=10/master_ini.xml
@@ -0,0 +1,124 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="40" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="40" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="40" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="40" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="40" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="40" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="40" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="40" group_id="3" caption="source 8" greedy="false" />
+ <source id="9" frequency="1" agents_max="40" group_id="2" caption="source 7" greedy="false" />
+ <source id="10" frequency="1" agents_max="40" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=10/untitled21.py b/Data_3.0/factor-inflowrate/m3/inflowrate=10/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=10/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=10/untitled22.py b/Data_3.0/factor-inflowrate/m3/inflowrate=10/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=10/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=16/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=16/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=16/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=16/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=16/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=16/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..726a57b
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..38f3666
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..7bc79f4
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..a5269c9
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=16/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=16/makeini.py b/Data_3.0/factor-inflowrate/m3/inflowrate=16/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=16/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=16/master_ini.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=16/master_ini.xml
new file mode 100644
index 0000000..a9a1924
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=16/master_ini.xml
@@ -0,0 +1,130 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="25" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="25" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="25" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="25" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="25" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="25" group_id="3" caption="source 8" greedy="false" />
+ <source id="9" frequency="1" agents_max="25" group_id="0" caption="source 9" greedy="false" />
+ <source id="10" frequency="1" agents_max="25" group_id="1" caption="source 10" greedy="false" />
+ <source id="11" frequency="1" agents_max="25" group_id="2" caption="source 11" greedy="false" />
+ <source id="12" frequency="1" agents_max="25" group_id="3" caption="source 12" greedy="false" />
+ <source id="13" frequency="1" agents_max="25" group_id="0" caption="source 13" greedy="false" />
+ <source id="14" frequency="1" agents_max="25" group_id="1" caption="source 14" greedy="false" />
+ <source id="15" frequency="1" agents_max="25" group_id="2" caption="source 15" greedy="false" />
+ <source id="16" frequency="1" agents_max="25" group_id="3" caption="source 16" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=16/untitled21.py b/Data_3.0/factor-inflowrate/m3/inflowrate=16/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=16/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=16/untitled22.py b/Data_3.0/factor-inflowrate/m3/inflowrate=16/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=16/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=2/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=2/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=2/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=2/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=2/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=2/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..9189aef
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..cb08b32
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..c789374
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..535ddd5
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=2/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=2/makeini.py b/Data_3.0/factor-inflowrate/m3/inflowrate=2/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=2/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=2/master_ini.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=2/master_ini.xml
new file mode 100644
index 0000000..5f898aa
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=2/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="200" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="200" group_id="1" caption="source 2" greedy="false" />
+ <!--
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ -->
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=2/untitled21.py b/Data_3.0/factor-inflowrate/m3/inflowrate=2/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=2/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=2/untitled22.py b/Data_3.0/factor-inflowrate/m3/inflowrate=2/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=2/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=4/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=4/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=4/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=4/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=4/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=4/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..a086b98
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..4b88015
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..7c334cb
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..322d365
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=4/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=4/makeini.py b/Data_3.0/factor-inflowrate/m3/inflowrate=4/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=4/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=4/master_ini.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=4/master_ini.xml
new file mode 100644
index 0000000..e6efe5f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=4/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="100" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="100" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="100" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="100" group_id="3" caption="source 4" greedy="false" />
+ <!--
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ -->
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=4/untitled21.py b/Data_3.0/factor-inflowrate/m3/inflowrate=4/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=4/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=4/untitled22.py b/Data_3.0/factor-inflowrate/m3/inflowrate=4/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=4/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=8/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=8/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=8/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=8/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=8/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=8/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..e1152da
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..a5c5e08
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..505867e
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..18e5066
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=8/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=8/makeini.py b/Data_3.0/factor-inflowrate/m3/inflowrate=8/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=8/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=8/master_ini.xml b/Data_3.0/factor-inflowrate/m3/inflowrate=8/master_ini.xml
new file mode 100644
index 0000000..4751aff
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=8/master_ini.xml
@@ -0,0 +1,122 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=8/untitled21.py b/Data_3.0/factor-inflowrate/m3/inflowrate=8/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=8/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m3/inflowrate=8/untitled22.py b/Data_3.0/factor-inflowrate/m3/inflowrate=8/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m3/inflowrate=8/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate-n.png b/Data_3.0/factor-inflowrate/m4/inflowrate-n.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbc37b8f20f3f2961b8e75ebee2a46dd5abe5ee1
GIT binary patch
literal 5985
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
R)eH;_44$rjF6*2UngBDf`Pu*g
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate-nt.png b/Data_3.0/factor-inflowrate/m4/inflowrate-nt.png
new file mode 100644
index 0000000000000000000000000000000000000000..43fb3009aa2d30bd30376948164719f030b61f23
GIT binary patch
literal 6166
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∾^d(S^N{{QoQz0&pAtyxn&Jv|M#-z}S6
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
IbxsLQ0ExdX9RL6T
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=10/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=10/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=10/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=10/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=10/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=10/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..b5b8daf
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..e299a93
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..1934436
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..5a63d8e
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=10/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,73 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="40" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="40" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="40" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="40" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="40" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="40" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="40" caption="source 7" frequency="1" greedy="false" group_id="2" id="9" />
+ <source agents_max="40" caption="source 8" frequency="1" greedy="false" group_id="3" id="10" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=10/makeini.py b/Data_3.0/factor-inflowrate/m4/inflowrate=10/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=10/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=10/master_ini.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=10/master_ini.xml
new file mode 100644
index 0000000..a1ed541
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=10/master_ini.xml
@@ -0,0 +1,124 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="40" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="40" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="40" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="40" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="40" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="40" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="40" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="40" group_id="3" caption="source 8" greedy="false" />
+ <source id="9" frequency="1" agents_max="40" group_id="2" caption="source 7" greedy="false" />
+ <source id="10" frequency="1" agents_max="40" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="1"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=10/untitled21.py b/Data_3.0/factor-inflowrate/m4/inflowrate=10/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=10/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=10/untitled22.py b/Data_3.0/factor-inflowrate/m4/inflowrate=10/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=10/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=16/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=16/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=16/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=16/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=16/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=16/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..d6a6d1c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..b8476ab
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..87e49d1
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..5114218
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=16/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,79 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="25" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="25" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="25" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="25" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ <source agents_max="25" caption="source 9" frequency="1" greedy="false" group_id="0" id="9" />
+ <source agents_max="25" caption="source 10" frequency="1" greedy="false" group_id="1" id="10" />
+ <source agents_max="25" caption="source 11" frequency="1" greedy="false" group_id="2" id="11" />
+ <source agents_max="25" caption="source 12" frequency="1" greedy="false" group_id="3" id="12" />
+ <source agents_max="25" caption="source 13" frequency="1" greedy="false" group_id="0" id="13" />
+ <source agents_max="25" caption="source 14" frequency="1" greedy="false" group_id="1" id="14" />
+ <source agents_max="25" caption="source 15" frequency="1" greedy="false" group_id="2" id="15" />
+ <source agents_max="25" caption="source 16" frequency="1" greedy="false" group_id="3" id="16" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=16/makeini.py b/Data_3.0/factor-inflowrate/m4/inflowrate=16/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=16/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=16/master_ini.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=16/master_ini.xml
new file mode 100644
index 0000000..1d18381
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=16/master_ini.xml
@@ -0,0 +1,130 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="25" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="25" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="25" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="25" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="25" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="25" group_id="3" caption="source 8" greedy="false" />
+ <source id="9" frequency="1" agents_max="25" group_id="0" caption="source 9" greedy="false" />
+ <source id="10" frequency="1" agents_max="25" group_id="1" caption="source 10" greedy="false" />
+ <source id="11" frequency="1" agents_max="25" group_id="2" caption="source 11" greedy="false" />
+ <source id="12" frequency="1" agents_max="25" group_id="3" caption="source 12" greedy="false" />
+ <source id="13" frequency="1" agents_max="25" group_id="0" caption="source 13" greedy="false" />
+ <source id="14" frequency="1" agents_max="25" group_id="1" caption="source 14" greedy="false" />
+ <source id="15" frequency="1" agents_max="25" group_id="2" caption="source 15" greedy="false" />
+ <source id="16" frequency="1" agents_max="25" group_id="3" caption="source 16" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="1"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=16/untitled21.py b/Data_3.0/factor-inflowrate/m4/inflowrate=16/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=16/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=16/untitled22.py b/Data_3.0/factor-inflowrate/m4/inflowrate=16/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=16/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=2/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=2/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=2/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=2/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=2/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=2/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..4c9513f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..8ed11bf
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..92d94a2
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..83531ca
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=2/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,65 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="200" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="200" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=2/makeini.py b/Data_3.0/factor-inflowrate/m4/inflowrate=2/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=2/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=2/master_ini.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=2/master_ini.xml
new file mode 100644
index 0000000..7a35dd1
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=2/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="200" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="200" group_id="1" caption="source 2" greedy="false" />
+ <!--
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ -->
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="1"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=2/untitled21.py b/Data_3.0/factor-inflowrate/m4/inflowrate=2/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=2/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=2/untitled22.py b/Data_3.0/factor-inflowrate/m4/inflowrate=2/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=2/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=4/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=4/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=4/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=4/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=4/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=4/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..2a10bca
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..7bf8309
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..c0730fd
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..eafa47a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=4/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,67 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="100" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="100" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="100" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="100" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=4/makeini.py b/Data_3.0/factor-inflowrate/m4/inflowrate=4/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=4/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=4/master_ini.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=4/master_ini.xml
new file mode 100644
index 0000000..2473f66
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=4/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="100" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="100" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="100" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="100" group_id="3" caption="source 4" greedy="false" />
+ <!--
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ -->
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="1"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=4/untitled21.py b/Data_3.0/factor-inflowrate/m4/inflowrate=4/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=4/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=4/untitled22.py b/Data_3.0/factor-inflowrate/m4/inflowrate=4/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=4/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=8/1.0_geometry.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=8/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=8/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=8/fmaster_ini.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=8/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=8/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..e6ed0f4
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..b58bbd2
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..d6a48a0
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..8e9803b
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=8/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=8/makeini.py b/Data_3.0/factor-inflowrate/m4/inflowrate=8/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=8/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=8/master_ini.xml b/Data_3.0/factor-inflowrate/m4/inflowrate=8/master_ini.xml
new file mode 100644
index 0000000..7fab112
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=8/master_ini.xml
@@ -0,0 +1,122 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="1"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=8/untitled21.py b/Data_3.0/factor-inflowrate/m4/inflowrate=8/untitled21.py
new file mode 100644
index 0000000..71a050f
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=8/untitled21.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+#working directory
+print(os.getcwd())
+#switch to upper directory
+os.chdir('..')
+
+print(os.getcwd())
+
+#width here represents only a list ,its not a directory here
+width = glob.glob("m*")
+
+for folder in width:
+ print(folder)
+ os.chdir(folder)
+ print(os.getcwd())
+
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+
+ os.chdir('..')
+
+ print(os.getcwd())
+
+print("inifiles are finished")
+
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+width = glob.glob("m*")
+print(width)
+
+
+for folder in width:
+ os.chdir(folder)
+ print(os.getcwd())
+
+ inifiles = glob.glob("inifiles/*.xml")
+ print(inifiles)
+ for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
+
+ # move clogginglog.txt from folder inifiles to folder clogginglog and rename it by adding width ahead
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.')[0]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/m4/inflowrate=8/untitled22.py b/Data_3.0/factor-inflowrate/m4/inflowrate=8/untitled22.py
new file mode 100644
index 0000000..afd6760
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/m4/inflowrate=8/untitled22.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+
+
+inifiles = glob.glob("inifiles/*.xml")
+
+for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-inflowrate/simulation-plotting.py b/Data_3.0/factor-inflowrate/simulation-plotting.py
new file mode 100644
index 0000000..856f0b9
--- /dev/null
+++ b/Data_3.0/factor-inflowrate/simulation-plotting.py
@@ -0,0 +1,236 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Tue Apr 9 12:29:26 2019
+
+@author: administer
+"""
+
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:36:43 2019
+
+@author: administer
+"""
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+#path to jpscore
+executable = "/home/ias7137/Liu/jpscore/bin/jpscore"
+
+#width here represents only a list ,its not a directory here
+Model = glob.glob("m*")
+
+for model in Model:
+ os.chdir(model)
+
+ Inflowrates=glob.glob('inflowrate=*')
+
+ for inflowrate in Inflowrates:
+ os.chdir(inflowrate)
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+ os.chdir('..')
+ os.chdir('..')
+
+print("inifiles are finished")
+
+print('from here begins the simulation ')
+
+Model = glob.glob("m*")
+
+for model in Model:
+ os.chdir(model)
+ Inflowrates=glob.glob('inflowrate=*')
+ for inflowrate in Inflowrates:
+ os.chdir(inflowrate)
+ inifiles = glob.glob("inifiles/*.xml")
+ for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
+ for filename in os.listdir(os.path.abspath("inifiles")):
+ if filename.endswith('.txt'):
+ shutil.move(os.path.abspath("inifiles")+"/"+filename,os.path.abspath("clogginglog")+'/')
+ os.path.abspath("clogginglog")
+ os.chdir("clogginglog")
+ print(os.getcwd())
+ os.rename(filename,inflowrate.split('=')[1]+filename)
+ os.chdir("..")
+
+ os.chdir("..")
+ os.chdir('..')
+os.chdir('..')
+
+import matplotlib.pyplot as plt
+
+import os
+import glob
+
+import numpy as np
+
+
+
+j=0
+Model = glob.glob("m*")
+
+BIG_meanNmax=[[],[],[],[],[]]
+BIG_meanTimespan=[[],[],[],[],[]]
+BIG_C=[[],[],[],[],[]]
+W=['inflowrate=2','inflowrate=4','inflowrate=8','inflowrate=10','inflowrate=16']
+
+Nmax_w1=[]
+Nmax_w2=[]
+Nmax_w3=[]
+Nmax_w4=[]
+Nmax_w5=[]
+
+Timespan_w1=[]
+Timespan_w2=[]
+Timespan_w3=[]
+Timespan_w4=[]
+Timespan_w5=[]
+
+for model in Model:
+
+ MeanNmax=[0,0,0,0,0]
+ meanTimespan=[0,0,0,0,0]
+
+ os.chdir(model)
+ Inflowrates=glob.glob('=*')
+ for inflowrate in Inflowrates:
+ os.chdir(inflowrate+'/clogginglog/')
+ Logs=glob.glob('*.txt')
+ for log in Logs:
+ if log.split('Clo')[0] == '2':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w1.append(np.loadtxt(log)[-1])
+ MeanNmax[0]=sum(Nmax_w1)/len(Nmax_w1)
+ Timespan_w1.append(np.loadtxt(log)[1])
+ meanTimespan[0]=sum(Timespan_w1)/len(Timespan_w1)
+ else :
+
+ Nmax_w1.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[0]=sum(Nmax_w1)/len(Nmax_w1)
+ Timespan_w1.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[0]=sum(Timespan_w1)/len(Timespan_w1)
+
+
+ if log.split('Clo')[0] == '4':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w2.append(np.loadtxt(log)[-1])
+ MeanNmax[1]=sum(Nmax_w2)/len(Nmax_w2)
+ Timespan_w2.append(np.loadtxt(log)[1])
+ meanTimespan[1]=sum(Timespan_w2)/len(Timespan_w2)
+
+ else :
+ Nmax_w2.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[1]=sum(Nmax_w2)/len(Nmax_w2)
+ Timespan_w2.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[1]=sum(Timespan_w2)/len(Timespan_w2)
+
+ if log.split('Clo')[0] == '8':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w3.append(np.loadtxt(log)[-1])
+ MeanNmax[2]=sum(Nmax_w3)/len(Nmax_w3)
+ Timespan_w3.append(np.loadtxt(log)[1])
+ meanTimespan[2]=sum(Timespan_w3)/len(Timespan_w3)
+
+ else :
+ Nmax_w3.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[2]=sum(Nmax_w3)/len(Nmax_w3)
+ Timespan_w3.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[2]=sum(Timespan_w3)/len(Timespan_w3)
+
+ if log.split('Clo')[0] == '10':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w4.append(np.loadtxt(log)[-1])
+ MeanNmax[3]=sum(Nmax_w4)/len(Nmax_w4)
+ Timespan_w4.append(np.loadtxt(log)[1])
+ meanTimespan[3]=sum(Timespan_w4)/len(Timespan_w4)
+
+ else :
+ Nmax_w4.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[3]=sum(Nmax_w4)/len(Nmax_w4)
+ Timespan_w4.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[3]=sum(Timespan_w4)/len(Timespan_w4)
+
+ if log.split('Clo')[0] == '16':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w5.append(np.loadtxt(log)[-1])
+ MeanNmax[4]=sum(Nmax_w5)/len(Nmax_w5)
+ Timespan_w5.append(np.loadtxt(log)[1])
+ meanTimespan[4]=sum(Timespan_w5)/len(Timespan_w5)
+
+ else:
+ Nmax_w5.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[4]=sum(Nmax_w5)/len(Nmax_w5)
+ Timespan_w5.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[4]=sum(Timespan_w5)/len(Timespan_w5)
+ os.chdir('../..')
+ print(MeanNmax)
+ print(meanTimespan)
+ BIG_meanNmax[j]= MeanNmax
+ BIG_meanTimespan[j]=meanTimespan
+
+ C=[0,0,0,0,0]
+
+ for i in range(len(MeanNmax)):
+ if meanTimespan[i]==0:
+ pass
+
+ else:
+ C[i]=MeanNmax[i]/meanTimespan[i]
+ print(C)
+ BIG_C[j]=C
+ j=j+1
+
+
+ plt.figure()
+ plt.plot(W,MeanNmax)
+ plt.savefig('inflowrate-n')
+
+
+ plt.figure()
+ plt.plot(W,C,'-or')
+ plt.savefig('inflowrate-nt')
+
+ print('now leave'+model)
+
+ os.chdir('..')
+
+std1=np.std(BIG_meanNmax)
+plt.figure()
+plt.grid()
+plt.title('standard deviation is %s'%std1)
+plt.plot(W,BIG_meanNmax[0],label='M1')
+plt.plot(W,BIG_meanNmax[1],label='M0')
+plt.plot(W,BIG_meanNmax[2],label='M2')
+plt.plot(W,BIG_meanNmax[3],label='M3')
+plt.plot(W,BIG_meanNmax[4],label='M4')
+plt.xlabel('inflowrate in (m)')
+plt.ylabel('mean clogging times')
+plt.legend()
+plt.savefig('figure/multiM-inflowrate-n',dpi=300)
+
+
+std2=np.std(BIG_C)
+plt.figure()
+plt.grid()
+plt.title('standard deviation is %s'%std2)
+plt.plot(W,BIG_C[0],label='M1')
+plt.plot(W,BIG_C[1],label='M0')
+plt.plot(W,BIG_C[2],label='M2')
+plt.plot(W,BIG_C[3],label='M3')
+plt.plot(W,BIG_C[4],label='M4')
+plt.xlabel('inflowrate in (m)')
+plt.ylabel('mean clogging times per seconds')
+plt.legend()
+plt.savefig('figure/multiM-inflowrate-nt',dpi=300)
+
+plt.xlabel('inflowrate in (m)')
+plt.ylabel('mean clogging times per seconds')
+plt.legend()
+plt.savefig('figure/multiM-inflowrate-nt',dpi=300)
diff --git a/Data_3.0/factor-stepsize/figure/multiM-stepsize-n.png b/Data_3.0/factor-stepsize/figure/multiM-stepsize-n.png
new file mode 100644
index 0000000000000000000000000000000000000000..ec64b9462814991ea18adb43162ee7b2d900ff03
GIT binary patch
literal 74564
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
L^>bP0l+XkKiBpA$
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-stepsize/figure/multiM-stepsize-nt.png b/Data_3.0/factor-stepsize/figure/multiM-stepsize-nt.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff1ca0f20583398ca381b0ba993611b5c53d8cf1
GIT binary patch
literal 82799
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
literal 0
HcmV?d00001
diff --git a/Data_3.0/factor-stepsize/m0/1.0_geometry.xml b/Data_3.0/factor-stepsize/m0/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-stepsize/m0/fmaster_ini.xml b/Data_3.0/factor-stepsize/m0/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.01.xml
new file mode 100644
index 0000000..69156ae
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.02.xml
new file mode 100644
index 0000000..0a870ba
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.05.xml
new file mode 100644
index 0000000..47065f4
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.1.xml
new file mode 100644
index 0000000..ba2ac5f
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.2.xml
new file mode 100644
index 0000000..647706b
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_1.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.01.xml
new file mode 100644
index 0000000..adde304
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.02.xml
new file mode 100644
index 0000000..5996e8f
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.05.xml
new file mode 100644
index 0000000..2d840bc
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.1.xml
new file mode 100644
index 0000000..27c7afa
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.2.xml
new file mode 100644
index 0000000..3ec79e1
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_10000.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.01.xml
new file mode 100644
index 0000000..7c0e544
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.02.xml
new file mode 100644
index 0000000..6dc883f
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.05.xml
new file mode 100644
index 0000000..4f9de7b
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.1.xml
new file mode 100644
index 0000000..9b5831b
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.2.xml
new file mode 100644
index 0000000..f19188f
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_3334.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.01.xml
new file mode 100644
index 0000000..6e88b54
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.02.xml
new file mode 100644
index 0000000..3a03c5e
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.05.xml
new file mode 100644
index 0000000..7b55878
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.1.xml
new file mode 100644
index 0000000..90243da
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.2.xml
new file mode 100644
index 0000000..bad79a1
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/inifiles/ini_seed_6667.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m0/makeini.py b/Data_3.0/factor-stepsize/m0/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-stepsize/m0/master_ini.xml b/Data_3.0/factor-stepsize/m0/master_ini.xml
new file mode 100644
index 0000000..2ab58f0
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m0/master_ini.xml
@@ -0,0 +1,122 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>[0.01,0.02,0.05,0.1,0.2]</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-stepsize/m1/1.0_geometry.xml b/Data_3.0/factor-stepsize/m1/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-stepsize/m1/fmaster_ini.xml b/Data_3.0/factor-stepsize/m1/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.01.xml
new file mode 100644
index 0000000..d9a5efc
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.02.xml
new file mode 100644
index 0000000..522798d
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.05.xml
new file mode 100644
index 0000000..cfb8ac7
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.1.xml
new file mode 100644
index 0000000..bb186da
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.2.xml
new file mode 100644
index 0000000..0452752
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_1.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.01.xml
new file mode 100644
index 0000000..d114c1d
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.02.xml
new file mode 100644
index 0000000..8adc042
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.05.xml
new file mode 100644
index 0000000..f02df82
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.1.xml
new file mode 100644
index 0000000..96b6c2b
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.2.xml
new file mode 100644
index 0000000..eaade54
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_10000.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.01.xml
new file mode 100644
index 0000000..0d89de5
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.02.xml
new file mode 100644
index 0000000..423248a
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.05.xml
new file mode 100644
index 0000000..a5800b6
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.1.xml
new file mode 100644
index 0000000..61cc347
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.2.xml
new file mode 100644
index 0000000..b7c9fb7
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_3334.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.01.xml
new file mode 100644
index 0000000..9e9ac11
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.02.xml
new file mode 100644
index 0000000..5b91c07
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.05.xml
new file mode 100644
index 0000000..a11e4d0
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.1.xml
new file mode 100644
index 0000000..c20e904
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.2.xml
new file mode 100644
index 0000000..ed3b6b9
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/inifiles/ini_seed_6667.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m1/makeini.py b/Data_3.0/factor-stepsize/m1/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-stepsize/m1/master_ini.xml b/Data_3.0/factor-stepsize/m1/master_ini.xml
new file mode 100644
index 0000000..f426699
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m1/master_ini.xml
@@ -0,0 +1,122 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>[0.01,0.02,0.05,0.1,0.2]</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-stepsize/m2/1.0_geometry.xml b/Data_3.0/factor-stepsize/m2/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-stepsize/m2/fmaster_ini.xml b/Data_3.0/factor-stepsize/m2/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.01.xml
new file mode 100644
index 0000000..eec356f
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.02.xml
new file mode 100644
index 0000000..d9715d4
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.05.xml
new file mode 100644
index 0000000..fcbcf20
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.1.xml
new file mode 100644
index 0000000..121f3eb
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.2.xml
new file mode 100644
index 0000000..c987b52
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_1.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.01.xml
new file mode 100644
index 0000000..c936240
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.02.xml
new file mode 100644
index 0000000..3601f84
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.05.xml
new file mode 100644
index 0000000..bf889fb
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.1.xml
new file mode 100644
index 0000000..387ac11
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.2.xml
new file mode 100644
index 0000000..6deb172
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_10000.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.01.xml
new file mode 100644
index 0000000..063413d
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.02.xml
new file mode 100644
index 0000000..507aabc
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.05.xml
new file mode 100644
index 0000000..da52449
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.1.xml
new file mode 100644
index 0000000..963b6c0
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.2.xml
new file mode 100644
index 0000000..f35978f
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_3334.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.01.xml
new file mode 100644
index 0000000..2446cc8
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.02.xml
new file mode 100644
index 0000000..b2353b8
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.05.xml
new file mode 100644
index 0000000..dc448b3
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.1.xml
new file mode 100644
index 0000000..c8597ea
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.2.xml
new file mode 100644
index 0000000..48ead5a
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/inifiles/ini_seed_6667.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m2/makeini.py b/Data_3.0/factor-stepsize/m2/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-stepsize/m2/master_ini.xml b/Data_3.0/factor-stepsize/m2/master_ini.xml
new file mode 100644
index 0000000..3ff3eeb
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/master_ini.xml
@@ -0,0 +1,122 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>[0.01,0.02,0.05,0.1,0.2]</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-stepsize/m2/untitled22.py b/Data_3.0/factor-stepsize/m2/untitled22.py
new file mode 100644
index 0000000..f413972
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m2/untitled22.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+import os
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+inifiles = glob.glob("inifiles/*.xml")
+print(inifiles)
+
+for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/1.0_geometry.xml b/Data_3.0/factor-stepsize/m3/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-stepsize/m3/fmaster_ini.xml b/Data_3.0/factor-stepsize/m3/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.01.xml
new file mode 100644
index 0000000..000afb3
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.02.xml
new file mode 100644
index 0000000..946518e
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.05.xml
new file mode 100644
index 0000000..5b84cf7
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.1.xml
new file mode 100644
index 0000000..ffe9ea1
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.2.xml
new file mode 100644
index 0000000..aa339d2
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_1.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.01.xml
new file mode 100644
index 0000000..1894916
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.02.xml
new file mode 100644
index 0000000..9fc86da
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.05.xml
new file mode 100644
index 0000000..177abb3
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.1.xml
new file mode 100644
index 0000000..3e18cca
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.2.xml
new file mode 100644
index 0000000..a7df13c
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_10000.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.01.xml
new file mode 100644
index 0000000..b12a8dd
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.02.xml
new file mode 100644
index 0000000..27dea6f
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.05.xml
new file mode 100644
index 0000000..1ebd04a
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.1.xml
new file mode 100644
index 0000000..a147b77
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.2.xml
new file mode 100644
index 0000000..e259e9b
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_3334.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.01.xml
new file mode 100644
index 0000000..ae88295
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.02.xml
new file mode 100644
index 0000000..7a8762d
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.05.xml
new file mode 100644
index 0000000..5bdf654
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.1.xml
new file mode 100644
index 0000000..75f3c7f
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.2.xml
new file mode 100644
index 0000000..9bf7520
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/inifiles/ini_seed_6667.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m3/makeini.py b/Data_3.0/factor-stepsize/m3/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-stepsize/m3/master_ini.xml b/Data_3.0/factor-stepsize/m3/master_ini.xml
new file mode 100644
index 0000000..32c66fe
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/master_ini.xml
@@ -0,0 +1,122 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>[0.01,0.02,0.05,0.1,0.2]</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-stepsize/m3/untitled22.py b/Data_3.0/factor-stepsize/m3/untitled22.py
new file mode 100644
index 0000000..f413972
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m3/untitled22.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+import os
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+inifiles = glob.glob("inifiles/*.xml")
+print(inifiles)
+
+for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/1.0_geometry.xml b/Data_3.0/factor-stepsize/m4/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-stepsize/m4/fmaster_ini.xml b/Data_3.0/factor-stepsize/m4/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.01.xml
new file mode 100644
index 0000000..50496e0
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.02.xml
new file mode 100644
index 0000000..632510b
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.05.xml
new file mode 100644
index 0000000..50f0abc
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.1.xml
new file mode 100644
index 0000000..96a7d3f
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.2.xml
new file mode 100644
index 0000000..9ae177b
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_1.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.01.xml
new file mode 100644
index 0000000..7554758
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.02.xml
new file mode 100644
index 0000000..c94c695
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.05.xml
new file mode 100644
index 0000000..5f813b5
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.1.xml
new file mode 100644
index 0000000..4bbedcf
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.2.xml
new file mode 100644
index 0000000..29055c1
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_10000.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.01.xml
new file mode 100644
index 0000000..cffc98d
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.02.xml
new file mode 100644
index 0000000..7d1f637
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.05.xml
new file mode 100644
index 0000000..7c87afd
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.1.xml
new file mode 100644
index 0000000..5ad310b
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.2.xml
new file mode 100644
index 0000000..3c04071
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_3334.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.01.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.01.xml
new file mode 100644
index 0000000..4194fd7
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.01.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.01.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.02.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.02.xml
new file mode 100644
index 0000000..0065dd3
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.02.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.02.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.02</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.05.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.05.xml
new file mode 100644
index 0000000..5db094b
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.05.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.05.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.1.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.1.xml
new file mode 100644
index 0000000..96eb974
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.1.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.1.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.1</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.2.xml b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.2.xml
new file mode 100644
index 0000000..5fbf08f
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/inifiles/ini_seed_6667.0_stepsize_0.2.xml
@@ -0,0 +1,71 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_stepsize_0.2.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.2</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-stepsize/m4/makeini.py b/Data_3.0/factor-stepsize/m4/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-stepsize/m4/master_ini.xml b/Data_3.0/factor-stepsize/m4/master_ini.xml
new file mode 100644
index 0000000..54c81f1
--- /dev/null
+++ b/Data_3.0/factor-stepsize/m4/master_ini.xml
@@ -0,0 +1,122 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>[0.01,0.02,0.05,0.1,0.2]</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="1"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-stepsize/simulation-plotting-stepsize.py b/Data_3.0/factor-stepsize/simulation-plotting-stepsize.py
new file mode 100644
index 0000000..f1685ee
--- /dev/null
+++ b/Data_3.0/factor-stepsize/simulation-plotting-stepsize.py
@@ -0,0 +1,206 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Tue Apr 9 23:41:08 2019
+
+@author: administer
+"""
+import matplotlib.pyplot as plt
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+executable = "/home/ias7137/Liu/jpscore/bin/jpscore"
+#/Users/administer/Workspace/jpscore/bin/jpscore"
+
+Model = glob.glob("m*")
+for model in Model:
+ os.chdir(model)
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+ os.chdir('..')
+print("inifiles are finished")
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+Model = glob.glob("m*")
+
+for model in Model:
+ os.chdir(model+'/inifiles')
+ inifiles = glob.glob("*.xml")
+ for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
+ inifiles=glob.glob('*')
+ for filename in inifiles:
+ if filename.endswith('.txt'):
+ shutil.move(filename,'../clogginglog/')
+ os.chdir("../clogginglog")
+ os.rename(filename,inifile.split('size_')[1].split('.xm')[0]+'Clo'+inifile.split('d_')[1].split('_st')[0]+filename)
+ os.chdir("../inifiles")
+
+ os.chdir("../..")
+
+j=0
+Model = glob.glob('m*')
+
+BIG_meanNmax=[[],[],[],[],[]]
+BIG_meanTimespan=[[],[],[],[],[]]
+BIG_C=[[],[],[],[],[]]
+
+for model in Model:
+
+ Nmax_w1=[]
+ Nmax_w2=[]
+ Nmax_w3=[]
+ Nmax_w4=[]
+ Nmax_w5=[]
+
+
+ Timespan_w1=[]
+ Timespan_w2=[]
+ Timespan_w3=[]
+ Timespan_w4=[]
+ Timespan_w5=[]
+
+
+ W=[0.01,0.02,0.05,0.1,0.2]
+ MeanNmax=[0,0,0,0,0,]
+ meanTimespan=[0,0,0,0,0,]
+
+ print(model)
+ os.chdir(model+'/clogginglog')
+ Logs=glob.glob('*')
+ for log in Logs:
+
+
+ if log.split('Clo')[0] == '0.01':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w1.append(np.loadtxt(log)[-1])
+ MeanNmax[0]=sum(Nmax_w1)/len(Nmax_w1)
+ Timespan_w1.append(np.loadtxt(log)[1])
+ meanTimespan[0]=sum(Timespan_w1)/len(Timespan_w1)
+ else :
+ Nmax_w1.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[0]=sum(Nmax_w1)/len(Nmax_w1)
+ Timespan_w1.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[0]=sum(Timespan_w1)/len(Timespan_w1)
+
+
+ if log.split('Clo')[0] == '0.02':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w2.append(np.loadtxt(log)[-1])
+ MeanNmax[1]=sum(Nmax_w2)/len(Nmax_w2)
+ Timespan_w2.append(np.loadtxt(log)[1])
+ meanTimespan[1]=sum(Timespan_w2)/len(Timespan_w2)
+
+ else :
+ Nmax_w2.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[1]=sum(Nmax_w2)/len(Nmax_w2)
+ Timespan_w2.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[1]=sum(Timespan_w2)/len(Timespan_w2)
+
+ if log.split('Clo')[0] == '0.05':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w3.append(np.loadtxt(log)[-1])
+ MeanNmax[2]=sum(Nmax_w3)/len(Nmax_w3)
+ Timespan_w3.append(np.loadtxt(log)[1])
+ meanTimespan[2]=sum(Timespan_w3)/len(Timespan_w3)
+
+ else :
+ Nmax_w3.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[2]=sum(Nmax_w3)/len(Nmax_w3)
+ Timespan_w3.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[2]=sum(Timespan_w3)/len(Timespan_w3)
+
+ if log.split('Clo')[0] == '0.1':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w4.append(np.loadtxt(log)[-1])
+ MeanNmax[3]=sum(Nmax_w4)/len(Nmax_w4)
+ Timespan_w4.append(np.loadtxt(log)[1])
+ meanTimespan[3]=sum(Timespan_w4)/len(Timespan_w4)
+
+ else :
+ Nmax_w4.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[3]=sum(Nmax_w4)/len(Nmax_w4)
+ Timespan_w4.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[3]=sum(Timespan_w4)/len(Timespan_w4)
+
+ if log.split('Clo')[0] == '0.2':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w5.append(np.loadtxt(log)[-1])
+ MeanNmax[4]=sum(Nmax_w5)/len(Nmax_w5)
+ Timespan_w5.append(np.loadtxt(log)[1])
+ meanTimespan[4]=sum(Timespan_w5)/len(Timespan_w5)
+
+ else:
+ Nmax_w5.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[4]=sum(Nmax_w5)/len(Nmax_w5)
+ Timespan_w5.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[4]=sum(Timespan_w5)/len(Timespan_w5)
+
+
+ print(MeanNmax)
+ print(meanTimespan)
+ BIG_meanNmax[j]=MeanNmax
+ BIG_meanTimespan[j]=meanTimespan
+
+ C=[0,0,0,0,0]
+ for i in range(len(MeanNmax)):
+ if meanTimespan[i]==0:
+ pass
+
+ else:
+ C[i]=MeanNmax[i]/meanTimespan[i]
+ print(C)
+ BIG_C[j]=C
+ j=j+1
+
+ plt.figure()
+ plt.plot(W,MeanNmax)
+ plt.savefig('W-N',dpi=300)
+
+ plt.figure()
+ plt.grid()
+ plt.plot(W,C)
+ plt.savefig('W-Nt',dpi=300)
+
+
+ #plt.savefig('W-N/T')
+
+ print('now leave'+model)
+
+
+ os.chdir('../..')
+
+std1=np.std(BIG_meanNmax)
+plt.figure()
+plt.grid()
+plt.title('standard deviation is %s'%std1)
+plt.plot(W,BIG_meanNmax[0],label='M1')
+plt.plot(W,BIG_meanNmax[1],label='M0')
+plt.plot(W,BIG_meanNmax[2],label='M2')
+plt.plot(W,BIG_meanNmax[3],label='M3')
+plt.plot(W,BIG_meanNmax[4],label='M4')
+plt.xlabel('inflowrate in (m)')
+plt.ylabel('mean clogging times')
+plt.legend()
+plt.savefig('figure/multiM-stepsize-n',dpi=300)
+
+
+std2=np.std(BIG_C)
+plt.figure()
+plt.grid()
+plt.title('standard deviation is %s'%std2)
+plt.plot(W,BIG_C[0],label='M1')
+plt.plot(W,BIG_C[1],label='M0')
+plt.plot(W,BIG_C[2],label='M2')
+plt.plot(W,BIG_C[3],label='M3')
+plt.plot(W,BIG_C[4],label='M4')
+plt.xlabel('inflowrate in (m)')
+plt.ylabel('mean clogging times per seconds')
+plt.legend()
+plt.savefig('figure/multiM-stepsize-nt',dpi=300)
diff --git a/Data_3.0/factor-update_methods/m0-p/1.0_geometry.xml b/Data_3.0/factor-update_methods/m0-p/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-p/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-update_methods/m0-p/fmaster_ini.xml b/Data_3.0/factor-update_methods/m0-p/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-p/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..4690f4d
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..4016d8a
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..9658257
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..dd1bffb
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-p/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m0-p/makeini.py b/Data_3.0/factor-update_methods/m0-p/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-p/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-update_methods/m0-p/master_ini.xml b/Data_3.0/factor-update_methods/m0-p/master_ini.xml
new file mode 100644
index 0000000..74db90e
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-p/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m0-s/1.0_geometry.xml b/Data_3.0/factor-update_methods/m0-s/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-s/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-update_methods/m0-s/fmaster_ini.xml b/Data_3.0/factor-update_methods/m0-s/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-s/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..6c54ebc
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..b1f58a6
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..d717722
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..2a299fc
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-s/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m0-s/makeini.py b/Data_3.0/factor-update_methods/m0-s/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-s/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-update_methods/m0-s/master_ini.xml b/Data_3.0/factor-update_methods/m0-s/master_ini.xml
new file mode 100644
index 0000000..34b47d7
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-s/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m0-s/para_master_ini.xml b/Data_3.0/factor-update_methods/m0-s/para_master_ini.xml
new file mode 100644
index 0000000..e319dd1
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m0-s/para_master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,2)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">200</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="25" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="25" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <!--
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ -->
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m1-p/1.0_geometry.xml b/Data_3.0/factor-update_methods/m1-p/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-p/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-update_methods/m1-p/fmaster_ini.xml b/Data_3.0/factor-update_methods/m1-p/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-p/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..fa297b0
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..2e36072
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..5ff0832
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..5e34a07
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-p/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m1-p/makeini.py b/Data_3.0/factor-update_methods/m1-p/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-p/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-update_methods/m1-p/master_ini.xml b/Data_3.0/factor-update_methods/m1-p/master_ini.xml
new file mode 100644
index 0000000..b0737d9
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-p/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m1-s/1.0_geometry.xml b/Data_3.0/factor-update_methods/m1-s/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-s/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-update_methods/m1-s/fmaster_ini.xml b/Data_3.0/factor-update_methods/m1-s/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-s/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..99ce936
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..ed18d23
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..e13fe03
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..8abd9c2
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-s/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m1-s/makeini.py b/Data_3.0/factor-update_methods/m1-s/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-s/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-update_methods/m1-s/master_ini.xml b/Data_3.0/factor-update_methods/m1-s/master_ini.xml
new file mode 100644
index 0000000..122ffb2
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-s/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m1-s/para_master_ini.xml b/Data_3.0/factor-update_methods/m1-s/para_master_ini.xml
new file mode 100644
index 0000000..a12bd67
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m1-s/para_master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,2)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">200</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="25" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="25" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <!--
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ -->
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m2-p/1.0_geometry.xml b/Data_3.0/factor-update_methods/m2-p/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-p/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-update_methods/m2-p/fmaster_ini.xml b/Data_3.0/factor-update_methods/m2-p/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-p/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..2d35362
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..1371b55
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..d8e2aed
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..45642c3
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-p/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m2-p/makeini.py b/Data_3.0/factor-update_methods/m2-p/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-p/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-update_methods/m2-p/master_ini.xml b/Data_3.0/factor-update_methods/m2-p/master_ini.xml
new file mode 100644
index 0000000..d4bebc0
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-p/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m2-p/untitled22.py b/Data_3.0/factor-update_methods/m2-p/untitled22.py
new file mode 100644
index 0000000..f413972
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-p/untitled22.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+import os
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+inifiles = glob.glob("inifiles/*.xml")
+print(inifiles)
+
+for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m2-s/1.0_geometry.xml b/Data_3.0/factor-update_methods/m2-s/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-s/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-update_methods/m2-s/fmaster_ini.xml b/Data_3.0/factor-update_methods/m2-s/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-s/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..2d35362
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..1371b55
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..d8e2aed
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..45642c3
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-s/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m2-s/makeini.py b/Data_3.0/factor-update_methods/m2-s/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-s/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-update_methods/m2-s/master_ini.xml b/Data_3.0/factor-update_methods/m2-s/master_ini.xml
new file mode 100644
index 0000000..d4bebc0
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-s/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m2-s/para_master_ini.xml b/Data_3.0/factor-update_methods/m2-s/para_master_ini.xml
new file mode 100644
index 0000000..50f5d40
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-s/para_master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,2)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">200</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="25" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="25" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <!--
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ -->
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m2-s/untitled22.py b/Data_3.0/factor-update_methods/m2-s/untitled22.py
new file mode 100644
index 0000000..f413972
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m2-s/untitled22.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+import os
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+inifiles = glob.glob("inifiles/*.xml")
+print(inifiles)
+
+for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m3-p/1.0_geometry.xml b/Data_3.0/factor-update_methods/m3-p/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-p/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-update_methods/m3-p/fmaster_ini.xml b/Data_3.0/factor-update_methods/m3-p/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-p/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..c036b88
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..aab1c98
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..74a529d
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..27b7b41
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-p/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m3-p/makeini.py b/Data_3.0/factor-update_methods/m3-p/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-p/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-update_methods/m3-p/master_ini.xml b/Data_3.0/factor-update_methods/m3-p/master_ini.xml
new file mode 100644
index 0000000..94d1fad
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-p/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m3-p/untitled22.py b/Data_3.0/factor-update_methods/m3-p/untitled22.py
new file mode 100644
index 0000000..f413972
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-p/untitled22.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+import os
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+inifiles = glob.glob("inifiles/*.xml")
+print(inifiles)
+
+for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m3-s/1.0_geometry.xml b/Data_3.0/factor-update_methods/m3-s/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-s/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-update_methods/m3-s/fmaster_ini.xml b/Data_3.0/factor-update_methods/m3-s/fmaster_ini.xml
new file mode 100644
index 0000000..ba95bd6
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-s/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..8e1f711
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..b357369
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..8b6ba0b
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..a95cb69
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-s/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m3-s/makeini.py b/Data_3.0/factor-update_methods/m3-s/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-s/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-update_methods/m3-s/master_ini.xml b/Data_3.0/factor-update_methods/m3-s/master_ini.xml
new file mode 100644
index 0000000..7575b63
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-s/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m3-s/para_master_ini.xml b/Data_3.0/factor-update_methods/m3-s/para_master_ini.xml
new file mode 100644
index 0000000..f038806
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-s/para_master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,2)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">200</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="25" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="25" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <!--
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ -->
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m3-s/untitled22.py b/Data_3.0/factor-update_methods/m3-s/untitled22.py
new file mode 100644
index 0000000..f413972
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m3-s/untitled22.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Apr 8 20:52:12 2019
+
+@author: administer
+"""
+import subprocess
+import glob
+import os
+
+
+executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+inifiles = glob.glob("inifiles/*.xml")
+print(inifiles)
+
+for inifile in inifiles:
+ print(inifile)
+
+ subprocess.call([executable, "--inifile=%s"%inifile])
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m4-p/1.0_geometry.xml b/Data_3.0/factor-update_methods/m4-p/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m4-p/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..6486729
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..ecdc06a
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..c5a33b7
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..ff98d99
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m4-p/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m4-p/makeini.py b/Data_3.0/factor-update_methods/m4-p/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m4-p/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-update_methods/m4-p/master_ini.xml b/Data_3.0/factor-update_methods/m4-p/master_ini.xml
new file mode 100644
index 0000000..d750f5d
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m4-p/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="1"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/m4-s/1.0_geometry.xml b/Data_3.0/factor-update_methods/m4-s/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m4-s/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_1.0.xml b/Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_1.0.xml
new file mode 100644
index 0000000..ccf95f0
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_1.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_10000.0.xml b/Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_10000.0.xml
new file mode 100644
index 0000000..b71221a
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_10000.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_3334.0.xml b/Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_3334.0.xml
new file mode 100644
index 0000000..65d266f
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_3334.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_6667.0.xml b/Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_6667.0.xml
new file mode 100644
index 0000000..0143fd1
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m4-s/inifiles/ini_seed_6667.0.xml
@@ -0,0 +1,72 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="50" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="50" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="50" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="50" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-update_methods/m4-s/makeini.py b/Data_3.0/factor-update_methods/m4-s/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m4-s/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-update_methods/m4-s/master_ini.xml b/Data_3.0/factor-update_methods/m4-s/master_ini.xml
new file mode 100644
index 0000000..2b15cc6
--- /dev/null
+++ b/Data_3.0/factor-update_methods/m4-s/master_ini.xml
@@ -0,0 +1,123 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>../1.0_geometry.xml</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="0"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="1"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-update_methods/simulation-plotting-update.py b/Data_3.0/factor-update_methods/simulation-plotting-update.py
new file mode 100644
index 0000000..dbc779c
--- /dev/null
+++ b/Data_3.0/factor-update_methods/simulation-plotting-update.py
@@ -0,0 +1,321 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Wed Apr 10 01:56:17 2019
+
+@author: administer
+"""
+
+import matplotlib.pyplot as plt
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+executable = "/home/ias7137/Liu/jpscore/bin/jpscore"
+# executable = "/Users/administer/Workspace/jpscore/bin/jpscore"
+
+Model = glob.glob("m?-*")
+for model in Model:
+ os.chdir(model)
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+ os.chdir('..')
+print("inifiles are finished")
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+Model = glob.glob("m*")
+
+for model in Model:
+ os.chdir(model+'/inifiles')
+ inifiles = glob.glob("*.xml")
+ for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
+ inifiles=glob.glob('*')
+ for filename in inifiles:
+ if filename.endswith('.txt'):
+ shutil.move(filename,'../clogginglog/')
+ os.chdir("../clogginglog")
+ os.rename(filename,inifile.split('d_')[1].split('.x')[0]+filename)
+ os.chdir("../inifiles")
+
+ os.chdir("../..")
+
+#PLOTTING BEGINGS #
+
+Model = glob.glob('m*')
+Nmax_p_m0=[]
+Nmax_s_m0=[]
+Nmax_p_m1=[]
+Nmax_s_m1=[]
+Nmax_p_m2=[]
+Nmax_s_m2=[]
+Nmax_p_m3=[]
+Nmax_s_m3=[]
+Nmax_p_m4=[]
+Nmax_s_m4=[]
+
+Timespan_p_m0=[]
+Timespan_s_m0=[]
+Timespan_p_m1=[]
+Timespan_s_m1=[]
+Timespan_p_m2=[]
+Timespan_s_m2=[]
+Timespan_p_m3=[]
+Timespan_s_m3=[]
+Timespan_p_m4=[]
+Timespan_s_m4=[]
+
+meanNmax_m0=[0,0]
+meanNmax_m1=[0,0]
+meanNmax_m2=[0,0]
+meanNmax_m3=[0,0]
+meanNmax_m4=[0,0]
+
+meanTimespan_m0=[0,0]
+meanTimespan_m1=[0,0]
+meanTimespan_m2=[0,0]
+meanTimespan_m3=[0,0]
+meanTimespan_m4=[0,0]
+
+c_m0=[0,0]
+c_m1=[0,0]
+c_m2=[0,0]
+c_m3=[0,0]
+c_m4=[0,0]
+
+meanNmax_m0=[0,0]
+meanNmax_m1=[0,0]
+meanNmax_m2=[0,0]
+meanNmax_m3=[0,0]
+meanNmax_m4=[0,0]
+
+for model in Model:
+
+ if model.split('-')[0]== 'm0':
+ os.chdir(model+'/clogginglog')
+ Logs=glob.glob('*')
+ for log in Logs:
+ if model.split('-')[1]== 'p':
+ if np.loadtxt(log).shape==(3,):
+ Nmax_p_m0.append(np.loadtxt(log)[-1])
+ meanNmax_m0[0]=sum(Nmax_p_m0)/len(Nmax_p_m0)
+ Timespan_p_m0.append(np.loadtxt(log)[1])
+ meanTimespan_m0[0]=sum(Timespan_p_m0)/len(Timespan_p_m0)
+ c_m0[0]=(meanNmax_m0[0]/meanTimespan_m0[0])
+
+ else:
+ Nmax_p_m0.append(np.loadtxt(log)[-1][-1])
+ meanNmax_m0[0]=sum(Nmax_p_m0)/len(Nmax_p_m0)
+ Timespan_p_m0.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[1][1])
+ meanTimespan_m0[0]=sum(Timespan_p_m0)/len(Timespan_p_m0)
+ c_m0[0]=(meanNmax_m0[0]/meanTimespan_m0[0])
+
+ #below is Sequential
+ else:
+ if np.loadtxt(log).shape==(3,):
+ Nmax_s_m0.append(np.loadtxt(log)[-1])
+ meanNmax_m0[1]=sum(Nmax_s_m0)/len(Nmax_s_m0)
+ Timespan_s_m0.append(np.loadtxt(log)[1])
+ meanTimespan_m0[1]=sum(Timespan_s_m0)/len(Timespan_s_m0)
+ c_m0[1]=(meanNmax_m0[1]/meanTimespan_m0[1])
+ else:
+ Nmax_s_m0.append(np.loadtxt(log)[-1][-1])
+ meanNmax_m0[1]=sum(Nmax_s_m0)/len(Nmax_s_m0)
+ Timespan_s_m0.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[1][1])
+ meanTimespan_m0[1]=sum(Timespan_s_m0)/len(Timespan_s_m0)
+ c_m0[1]=(meanNmax_m0[1]/meanTimespan_m0[1])
+ os.chdir('../..')
+
+
+ if model.split('-')[0]== 'm1':
+ os.chdir(model+'/clogginglog')
+ Logs=glob.glob('*')
+ for log in Logs:
+ if model.split('-')[1]== 'p':
+ if np.loadtxt(log).shape==(3,):
+ Nmax_p_m1.append(np.loadtxt(log)[-1])
+ meanNmax_m1[0]=sum(Nmax_p_m1)/len(Nmax_p_m1)
+ Timespan_p_m1.append(np.loadtxt(log)[1])
+ meanTimespan_m1[0]=sum(Timespan_p_m1)/len(Timespan_p_m1)
+ c_m1[0]=(meanNmax_m1[0]/meanTimespan_m1[0])
+
+ else:
+ Nmax_p_m1.append(np.loadtxt(log)[-1][-1])
+ meanNmax_m1[0]=sum(Nmax_p_m1)/len(Nmax_p_m1)
+ Timespan_p_m1.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[1][1])
+ meanTimespan_m1[0]=sum(Timespan_p_m1)/len(Timespan_p_m1)
+ c_m1[0]=(meanNmax_m1[0]/meanTimespan_m1[0])
+
+ #below is Sequential
+ else:
+ if np.loadtxt(log).shape==(3,):
+ Nmax_s_m1.append(np.loadtxt(log)[-1])
+ meanNmax_m1[1]=sum(Nmax_s_m1)/len(Nmax_s_m1)
+ Timespan_s_m1.append(np.loadtxt(log)[1])
+ meanTimespan_m1[1]=sum(Timespan_s_m1)/len(Timespan_s_m1)
+ c_m1[1]=(meanNmax_m1[1]/meanTimespan_m1[1])
+ else:
+ Nmax_s_m1.append(np.loadtxt(log)[-1][-1])
+ meanNmax_m1[1]=sum(Nmax_s_m1)/len(Nmax_s_m1)
+ Timespan_s_m1.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[1][1])
+ meanTimespan_m1[1]=sum(Timespan_s_m1)/len(Timespan_s_m1)
+ c_m1[1]=(meanNmax_m1[1]/meanTimespan_m1[1])
+ os.chdir('../..')
+
+ if model.split('-')[0]== 'm2':
+ os.chdir(model+'/clogginglog')
+ Logs=glob.glob('*')
+ for log in Logs:
+ if model.split('-')[1]== 'p':
+ if np.loadtxt(log).shape==(3,):
+ Nmax_p_m2.append(np.loadtxt(log)[-1])
+ meanNmax_m2[0]=sum(Nmax_p_m2)/len(Nmax_p_m2)
+ Timespan_p_m2.append(np.loadtxt(log)[1])
+ meanTimespan_m2[0]=sum(Timespan_p_m2)/len(Timespan_p_m2)
+ c_m2[0]=(meanNmax_m2[0]/meanTimespan_m2[0])
+
+ else:
+ Nmax_p_m2.append(np.loadtxt(log)[-1][-1])
+ meanNmax_m2[0]=sum(Nmax_p_m2)/len(Nmax_p_m2)
+ Timespan_p_m2.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[1][1])
+ meanTimespan_m2[0]=sum(Timespan_p_m2)/len(Timespan_p_m2)
+ c_m2[0]=(meanNmax_m2[0]/meanTimespan_m2[0])
+
+ #below is Sequential
+ else:
+ if np.loadtxt(log).shape==(3,):
+ Nmax_s_m2.append(np.loadtxt(log)[-1])
+ meanNmax_m2[1]=sum(Nmax_s_m2)/len(Nmax_s_m2)
+ Timespan_s_m2.append(np.loadtxt(log)[1])
+ meanTimespan_m2[1]=sum(Timespan_s_m2)/len(Timespan_s_m2)
+ c_m2[1]=(meanNmax_m2[1]/meanTimespan_m2[1])
+ else:
+ Nmax_s_m2.append(np.loadtxt(log)[-1][-1])
+ meanNmax_m2[1]=sum(Nmax_s_m2)/len(Nmax_s_m2)
+ Timespan_s_m2.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[1][1])
+ meanTimespan_m2[1]=sum(Timespan_s_m2)/len(Timespan_s_m2)
+ c_m2[1]=(meanNmax_m2[1]/meanTimespan_m2[1])
+ os.chdir('../..')
+
+
+ if model.split('-')[0]== 'm3':
+ os.chdir(model+'/clogginglog')
+ Logs=glob.glob('*')
+ for log in Logs:
+ if model.split('-')[1]== 'p':
+ if np.loadtxt(log).shape==(3,):
+ Nmax_p_m3.append(np.loadtxt(log)[-1])
+ meanNmax_m3[0]=sum(Nmax_p_m3)/len(Nmax_p_m3)
+ Timespan_p_m3.append(np.loadtxt(log)[1])
+ meanTimespan_m3[0]=sum(Timespan_p_m3)/len(Timespan_p_m3)
+ c_m3[0]=(meanNmax_m3[0]/meanTimespan_m3[0])
+
+ else:
+ Nmax_p_m3.append(np.loadtxt(log)[-1][-1])
+ meanNmax_m3[0]=sum(Nmax_p_m3)/len(Nmax_p_m3)
+ Timespan_p_m3.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[1][1])
+ meanTimespan_m3[0]=sum(Timespan_p_m3)/len(Timespan_p_m3)
+ c_m3[0]=(meanNmax_m3[0]/meanTimespan_m3[0])
+
+ #below is Sequential
+ else:
+ if np.loadtxt(log).shape==(3,):
+ Nmax_s_m3.append(np.loadtxt(log)[-1])
+ meanNmax_m3[1]=sum(Nmax_s_m3)/len(Nmax_s_m3)
+ Timespan_s_m3.append(np.loadtxt(log)[1])
+ meanTimespan_m3[1]=sum(Timespan_s_m3)/len(Timespan_s_m3)
+ c_m3[1]=(meanNmax_m3[1]/meanTimespan_m3[1])
+ else:
+ Nmax_s_m3.append(np.loadtxt(log)[-1][-1])
+ meanNmax_m3[1]=sum(Nmax_s_m3)/len(Nmax_s_m3)
+ Timespan_s_m3.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[1][1])
+ meanTimespan_m3[1]=sum(Timespan_s_m3)/len(Timespan_s_m3)
+ c_m3[1]=(meanNmax_m3[1]/meanTimespan_m3[1])
+ os.chdir('../..')
+
+ if model.split('-')[0]== 'm4':
+ os.chdir(model+'/clogginglog')
+ Logs=glob.glob('*')
+ for log in Logs:
+ if model.split('-')[1]== 'p':
+ if np.loadtxt(log).shape==(3,):
+ Nmax_p_m4.append(np.loadtxt(log)[-1])
+ meanNmax_m4[0]=sum(Nmax_p_m4)/len(Nmax_p_m4)
+ Timespan_p_m4.append(np.loadtxt(log)[1])
+ meanTimespan_m4[0]=sum(Timespan_p_m4)/len(Timespan_p_m4)
+ c_m4[0]=(meanNmax_m4[0]/meanTimespan_m4[0])
+
+ else:
+ Nmax_p_m4.append(np.loadtxt(log)[-1][-1])
+ meanNmax_m4[0]=sum(Nmax_p_m4)/len(Nmax_p_m4)
+ Timespan_p_m4.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[1][1])
+ meanTimespan_m4[0]=sum(Timespan_p_m4)/len(Timespan_p_m4)
+ c_m4[0]=(meanNmax_m4[0]/meanTimespan_m4[0])
+
+ #below is Sequential
+ else:
+ if np.loadtxt(log).shape==(3,):
+ Nmax_s_m4.append(np.loadtxt(log)[-1])
+ meanNmax_m4[1]=sum(Nmax_s_m4)/len(Nmax_s_m4)
+ Timespan_s_m0.append(np.loadtxt(log)[1])
+ meanTimespan_m4[1]=sum(Timespan_s_m4)/len(Timespan_s_m4)
+ c_m4[1]=(meanNmax_m4[1]/meanTimespan_m4[1])
+ else:
+ Nmax_s_m4.append(np.loadtxt(log)[-1][-1])
+ meanNmax_m4[1]=sum(Nmax_s_m4)/len(Nmax_s_m4)
+ Timespan_s_m4.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[1][1])
+ meanTimespan_m4[1]=sum(Timespan_s_m4)/len(Timespan_s_m4)
+ c_m4[1]=(meanNmax_m4[1]/meanTimespan_m4[1])
+ os.chdir('../..')
+
+
+U=['parallel','sequential']
+ARRAY1=[]
+ARRAY1.append(meanNmax_m0)
+ARRAY1.append(meanNmax_m1)
+ARRAY1.append(meanNmax_m2)
+ARRAY1.append(meanNmax_m3)
+ARRAY1.append(meanNmax_m4)
+
+std1=np.std(ARRAY1)
+plt.figure()
+plt.grid()
+plt.title('standard deviation is %s'%std1)
+plt.plot(U,meanNmax_m0,'-or',label='M0')
+plt.plot(U,meanNmax_m1,'-or',label='M1')
+plt.plot(U,meanNmax_m2,'-or',label='M2')
+plt.plot(U,meanNmax_m3,'-or',label='M3')
+plt.plot(U,meanNmax_m4,'-or',label='M4')
+plt.legend()
+plt.xlabel('update methods')
+plt.ylabel('Clogging_Times N')
+plt.savefig('figure/multiM-u-n',dpi=300)
+
+
+ARRAY2=[]
+ARRAY2.append(c_m0)
+ARRAY2.append(c_m1)
+ARRAY2.append(c_m2)
+ARRAY2.append(c_m3)
+ARRAY2.append(c_m4)
+std2=np.std(ARRAY2)
+plt.figure()
+plt.title('standard deviation is %s'%std2)
+plt.plot(U,c_m0,'-or',label='M0')
+plt.plot(U,c_m0,'-or',label='M1')
+plt.plot(U,c_m0,'-or',label='M2')
+plt.plot(U,c_m0,'-or',label='M3')
+plt.plot(U,c_m0,'-or',label='M4')
+plt.legend()
+plt.xlabel('update methods')
+plt.ylabel('average Clogging times per second')
+print('N/t-W')
+plt.savefig('figure/multiM-u-nt',dpi=300)
+
+
+
diff --git a/Data_3.0/factor-width/m0/geometries/0.8_geometry.xml b/Data_3.0/factor-width/m0/geometries/0.8_geometry.xml
new file mode 100644
index 0000000..5b6c1c1
--- /dev/null
+++ b/Data_3.0/factor-width/m0/geometries/0.8_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.4"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.6"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.6"/>
+ <vertex px="12.0" py="3.6"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.4"/>
+ <vertex px="12.0" py="4.4"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.6"/>
+ <vertex px="10" py="4.4"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.6"/>
+ <vertex px="12" py="4.4"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m0/geometries/1.0_geometry.xml b/Data_3.0/factor-width/m0/geometries/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-width/m0/geometries/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m0/geometries/1.2_geometry.xml b/Data_3.0/factor-width/m0/geometries/1.2_geometry.xml
new file mode 100644
index 0000000..2fd2180
--- /dev/null
+++ b/Data_3.0/factor-width/m0/geometries/1.2_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.6"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.4"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.4"/>
+ <vertex px="12.0" py="3.4"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.6"/>
+ <vertex px="12.0" py="4.6"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.4"/>
+ <vertex px="10" py="4.6"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.4"/>
+ <vertex px="12" py="4.6"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m0/geometries/1.6_geometry.xml b/Data_3.0/factor-width/m0/geometries/1.6_geometry.xml
new file mode 100644
index 0000000..9c3f95f
--- /dev/null
+++ b/Data_3.0/factor-width/m0/geometries/1.6_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.8"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.2"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.2"/>
+ <vertex px="12.0" py="3.2"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.8"/>
+ <vertex px="12.0" py="4.8"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.2"/>
+ <vertex px="10" py="4.8"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.2"/>
+ <vertex px="12" py="4.8"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m0/geometries/2.0_geometry.xml b/Data_3.0/factor-width/m0/geometries/2.0_geometry.xml
new file mode 100644
index 0000000..bebd94d
--- /dev/null
+++ b/Data_3.0/factor-width/m0/geometries/2.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="5.0"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.0"/>
+ <vertex px="12.0" py="3.0"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="5.0"/>
+ <vertex px="12.0" py="5.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.0"/>
+ <vertex px="10" py="5.0"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.0"/>
+ <vertex px="12" py="5.0"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m0/geometries/2.5_geometry.xml b/Data_3.0/factor-width/m0/geometries/2.5_geometry.xml
new file mode 100644
index 0000000..275d949
--- /dev/null
+++ b/Data_3.0/factor-width/m0/geometries/2.5_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="5.25"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="2.75"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="2.75"/>
+ <vertex px="12.0" py="2.75"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="5.25"/>
+ <vertex px="12.0" py="5.25"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="2.75"/>
+ <vertex px="10" py="5.25"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="2.75"/>
+ <vertex px="12" py="5.25"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..ed85bc6
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..9b0b878
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..fe53f93
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..034758b
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..2c1e58c
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..21385ec
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..ee505ac
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..4eb7542
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..6dc9af4
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..e021645
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..9e4c1f3
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..e1183b0
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..f465026
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..9fc387b
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..1529ec7
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..5fde484
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..22ee87a
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..e103fd0
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..23ce735
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..6f6af2c
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..e9651e8
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..3e142fc
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..676e4b4
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..c3de0aa
--- /dev/null
+++ b/Data_3.0/factor-width/m0/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m0/makeini.py b/Data_3.0/factor-width/m0/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-width/m0/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-width/m0/master_ini.xml b/Data_3.0/factor-width/m0/master_ini.xml
new file mode 100644
index 0000000..e8c2c2d
--- /dev/null
+++ b/Data_3.0/factor-width/m0/master_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="25" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="25" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-width/m1/fmaster_ini.xml b/Data_3.0/factor-width/m1/fmaster_ini.xml
new file mode 100644
index 0000000..698c765
--- /dev/null
+++ b/Data_3.0/factor-width/m1/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-width/m1/geometries/0.8_geometry.xml b/Data_3.0/factor-width/m1/geometries/0.8_geometry.xml
new file mode 100644
index 0000000..5b6c1c1
--- /dev/null
+++ b/Data_3.0/factor-width/m1/geometries/0.8_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.4"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.6"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.6"/>
+ <vertex px="12.0" py="3.6"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.4"/>
+ <vertex px="12.0" py="4.4"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.6"/>
+ <vertex px="10" py="4.4"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.6"/>
+ <vertex px="12" py="4.4"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m1/geometries/1.0_geometry.xml b/Data_3.0/factor-width/m1/geometries/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-width/m1/geometries/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m1/geometries/1.2_geometry.xml b/Data_3.0/factor-width/m1/geometries/1.2_geometry.xml
new file mode 100644
index 0000000..2fd2180
--- /dev/null
+++ b/Data_3.0/factor-width/m1/geometries/1.2_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.6"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.4"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.4"/>
+ <vertex px="12.0" py="3.4"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.6"/>
+ <vertex px="12.0" py="4.6"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.4"/>
+ <vertex px="10" py="4.6"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.4"/>
+ <vertex px="12" py="4.6"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m1/geometries/1.6_geometry.xml b/Data_3.0/factor-width/m1/geometries/1.6_geometry.xml
new file mode 100644
index 0000000..9c3f95f
--- /dev/null
+++ b/Data_3.0/factor-width/m1/geometries/1.6_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.8"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.2"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.2"/>
+ <vertex px="12.0" py="3.2"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.8"/>
+ <vertex px="12.0" py="4.8"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.2"/>
+ <vertex px="10" py="4.8"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.2"/>
+ <vertex px="12" py="4.8"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m1/geometries/2.0_geometry.xml b/Data_3.0/factor-width/m1/geometries/2.0_geometry.xml
new file mode 100644
index 0000000..bebd94d
--- /dev/null
+++ b/Data_3.0/factor-width/m1/geometries/2.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="5.0"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.0"/>
+ <vertex px="12.0" py="3.0"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="5.0"/>
+ <vertex px="12.0" py="5.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.0"/>
+ <vertex px="10" py="5.0"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.0"/>
+ <vertex px="12" py="5.0"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m1/geometries/2.5_geometry.xml b/Data_3.0/factor-width/m1/geometries/2.5_geometry.xml
new file mode 100644
index 0000000..275d949
--- /dev/null
+++ b/Data_3.0/factor-width/m1/geometries/2.5_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="5.25"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="2.75"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="2.75"/>
+ <vertex px="12.0" py="2.75"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="5.25"/>
+ <vertex px="12.0" py="5.25"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="2.75"/>
+ <vertex px="10" py="5.25"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="2.75"/>
+ <vertex px="12" py="5.25"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..036b524
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..314bcda
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..eb45bee
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..7555ff2
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..1be89e9
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..c134079
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..348179c
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..bb51632
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..3b6bff8
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..ffd6add
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..a45baea
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..81cbc51
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..17b729f
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..11d6b0f
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..748f71f
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..fadee17
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..d3fbbe7
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..c970abe
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..35360a9
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..c7ef304
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..6ad1df4
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..88a82f0
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..9dd7aee
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..6efa3e9
--- /dev/null
+++ b/Data_3.0/factor-width/m1/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="0" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m1/makeini.py b/Data_3.0/factor-width/m1/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-width/m1/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-width/m1/master_ini.xml b/Data_3.0/factor-width/m1/master_ini.xml
new file mode 100644
index 0000000..709e586
--- /dev/null
+++ b/Data_3.0/factor-width/m1/master_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="25" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="25" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="0"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-width/m2/fmaster_ini.xml b/Data_3.0/factor-width/m2/fmaster_ini.xml
new file mode 100644
index 0000000..39c4857
--- /dev/null
+++ b/Data_3.0/factor-width/m2/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-width/m2/geometries/0.8_geometry.xml b/Data_3.0/factor-width/m2/geometries/0.8_geometry.xml
new file mode 100644
index 0000000..5b6c1c1
--- /dev/null
+++ b/Data_3.0/factor-width/m2/geometries/0.8_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.4"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.6"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.6"/>
+ <vertex px="12.0" py="3.6"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.4"/>
+ <vertex px="12.0" py="4.4"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.6"/>
+ <vertex px="10" py="4.4"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.6"/>
+ <vertex px="12" py="4.4"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m2/geometries/1.0_geometry.xml b/Data_3.0/factor-width/m2/geometries/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-width/m2/geometries/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m2/geometries/1.2_geometry.xml b/Data_3.0/factor-width/m2/geometries/1.2_geometry.xml
new file mode 100644
index 0000000..2fd2180
--- /dev/null
+++ b/Data_3.0/factor-width/m2/geometries/1.2_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.6"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.4"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.4"/>
+ <vertex px="12.0" py="3.4"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.6"/>
+ <vertex px="12.0" py="4.6"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.4"/>
+ <vertex px="10" py="4.6"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.4"/>
+ <vertex px="12" py="4.6"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m2/geometries/1.6_geometry.xml b/Data_3.0/factor-width/m2/geometries/1.6_geometry.xml
new file mode 100644
index 0000000..9c3f95f
--- /dev/null
+++ b/Data_3.0/factor-width/m2/geometries/1.6_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.8"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.2"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.2"/>
+ <vertex px="12.0" py="3.2"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.8"/>
+ <vertex px="12.0" py="4.8"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.2"/>
+ <vertex px="10" py="4.8"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.2"/>
+ <vertex px="12" py="4.8"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m2/geometries/2.0_geometry.xml b/Data_3.0/factor-width/m2/geometries/2.0_geometry.xml
new file mode 100644
index 0000000..bebd94d
--- /dev/null
+++ b/Data_3.0/factor-width/m2/geometries/2.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="5.0"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.0"/>
+ <vertex px="12.0" py="3.0"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="5.0"/>
+ <vertex px="12.0" py="5.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.0"/>
+ <vertex px="10" py="5.0"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.0"/>
+ <vertex px="12" py="5.0"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m2/geometries/2.5_geometry.xml b/Data_3.0/factor-width/m2/geometries/2.5_geometry.xml
new file mode 100644
index 0000000..275d949
--- /dev/null
+++ b/Data_3.0/factor-width/m2/geometries/2.5_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="5.25"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="2.75"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="2.75"/>
+ <vertex px="12.0" py="2.75"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="5.25"/>
+ <vertex px="12.0" py="5.25"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="2.75"/>
+ <vertex px="10" py="5.25"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="2.75"/>
+ <vertex px="12" py="5.25"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..7259feb
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..e3e36f4
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..fcd3bc0
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..480ba22
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..0b0d82c
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..f6abc76
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..341bc15
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..275ec4e
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..91a4380
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..6941a13
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..c26f242
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..f60a12c
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..109c626
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..b0c2c31
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..af39758
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..91c9302
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..5fb9917
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..0be4951
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..04c3b15
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..fa7eb6c
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..a66d66c
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..371bbe6
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..5575158
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..8dc7182
--- /dev/null
+++ b/Data_3.0/factor-width/m2/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="0" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m2/makeini.py b/Data_3.0/factor-width/m2/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-width/m2/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-width/m2/master_ini.xml b/Data_3.0/factor-width/m2/master_ini.xml
new file mode 100644
index 0000000..0567e56
--- /dev/null
+++ b/Data_3.0/factor-width/m2/master_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="25" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="25" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="0" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-width/m3/fmaster_ini.xml b/Data_3.0/factor-width/m3/fmaster_ini.xml
new file mode 100644
index 0000000..4128b4a
--- /dev/null
+++ b/Data_3.0/factor-width/m3/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-width/m3/geometries/0.8_geometry.xml b/Data_3.0/factor-width/m3/geometries/0.8_geometry.xml
new file mode 100644
index 0000000..5b6c1c1
--- /dev/null
+++ b/Data_3.0/factor-width/m3/geometries/0.8_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.4"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.6"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.6"/>
+ <vertex px="12.0" py="3.6"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.4"/>
+ <vertex px="12.0" py="4.4"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.6"/>
+ <vertex px="10" py="4.4"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.6"/>
+ <vertex px="12" py="4.4"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m3/geometries/1.0_geometry.xml b/Data_3.0/factor-width/m3/geometries/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-width/m3/geometries/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m3/geometries/1.2_geometry.xml b/Data_3.0/factor-width/m3/geometries/1.2_geometry.xml
new file mode 100644
index 0000000..2fd2180
--- /dev/null
+++ b/Data_3.0/factor-width/m3/geometries/1.2_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.6"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.4"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.4"/>
+ <vertex px="12.0" py="3.4"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.6"/>
+ <vertex px="12.0" py="4.6"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.4"/>
+ <vertex px="10" py="4.6"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.4"/>
+ <vertex px="12" py="4.6"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m3/geometries/1.6_geometry.xml b/Data_3.0/factor-width/m3/geometries/1.6_geometry.xml
new file mode 100644
index 0000000..9c3f95f
--- /dev/null
+++ b/Data_3.0/factor-width/m3/geometries/1.6_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.8"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.2"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.2"/>
+ <vertex px="12.0" py="3.2"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.8"/>
+ <vertex px="12.0" py="4.8"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.2"/>
+ <vertex px="10" py="4.8"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.2"/>
+ <vertex px="12" py="4.8"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m3/geometries/2.0_geometry.xml b/Data_3.0/factor-width/m3/geometries/2.0_geometry.xml
new file mode 100644
index 0000000..bebd94d
--- /dev/null
+++ b/Data_3.0/factor-width/m3/geometries/2.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="5.0"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.0"/>
+ <vertex px="12.0" py="3.0"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="5.0"/>
+ <vertex px="12.0" py="5.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.0"/>
+ <vertex px="10" py="5.0"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.0"/>
+ <vertex px="12" py="5.0"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m3/geometries/2.5_geometry.xml b/Data_3.0/factor-width/m3/geometries/2.5_geometry.xml
new file mode 100644
index 0000000..275d949
--- /dev/null
+++ b/Data_3.0/factor-width/m3/geometries/2.5_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="5.25"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="2.75"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="2.75"/>
+ <vertex px="12.0" py="2.75"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="5.25"/>
+ <vertex px="12.0" py="5.25"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="2.75"/>
+ <vertex px="10" py="5.25"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="2.75"/>
+ <vertex px="12" py="5.25"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..2cea07e
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..532f533
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..b9ec9ee
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..2b850c8
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..a0d61d8
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..ad7c888
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..d81f5a8
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..260c7e1
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..69b63d2
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..de9c494
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..6d10f8d
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..29fd567
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..d612c9f
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..5890fce
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..bb1b9ab
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..9534f81
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..6b7316a
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..6534cf4
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..5bb9f55
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..cba3a91
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..91cd92f
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..6996f33
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..7a1d42c
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..b14606d
--- /dev/null
+++ b/Data_3.0/factor-width/m3/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="0" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m3/makeini.py b/Data_3.0/factor-width/m3/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-width/m3/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-width/m3/master_ini.xml b/Data_3.0/factor-width/m3/master_ini.xml
new file mode 100644
index 0000000..1a63c58
--- /dev/null
+++ b/Data_3.0/factor-width/m3/master_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="25" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="25" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="0"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-width/m4/fmaster_ini.xml b/Data_3.0/factor-width/m4/fmaster_ini.xml
new file mode 100644
index 0000000..dc438d7
--- /dev/null
+++ b/Data_3.0/factor-width/m4/fmaster_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="50" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="50" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="50" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="50" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="1"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-width/m4/geometries/0.8_geometry.xml b/Data_3.0/factor-width/m4/geometries/0.8_geometry.xml
new file mode 100644
index 0000000..5b6c1c1
--- /dev/null
+++ b/Data_3.0/factor-width/m4/geometries/0.8_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.4"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.6"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.6"/>
+ <vertex px="12.0" py="3.6"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.4"/>
+ <vertex px="12.0" py="4.4"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.6"/>
+ <vertex px="10" py="4.4"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.6"/>
+ <vertex px="12" py="4.4"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m4/geometries/1.0_geometry.xml b/Data_3.0/factor-width/m4/geometries/1.0_geometry.xml
new file mode 100644
index 0000000..d78ad4c
--- /dev/null
+++ b/Data_3.0/factor-width/m4/geometries/1.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.5"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.5"/>
+ <vertex px="12.0" py="3.5"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.5"/>
+ <vertex px="12.0" py="4.5"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.5"/>
+ <vertex px="10" py="4.5"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.5"/>
+ <vertex px="12" py="4.5"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m4/geometries/1.2_geometry.xml b/Data_3.0/factor-width/m4/geometries/1.2_geometry.xml
new file mode 100644
index 0000000..2fd2180
--- /dev/null
+++ b/Data_3.0/factor-width/m4/geometries/1.2_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.6"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.4"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.4"/>
+ <vertex px="12.0" py="3.4"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.6"/>
+ <vertex px="12.0" py="4.6"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.4"/>
+ <vertex px="10" py="4.6"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.4"/>
+ <vertex px="12" py="4.6"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m4/geometries/1.6_geometry.xml b/Data_3.0/factor-width/m4/geometries/1.6_geometry.xml
new file mode 100644
index 0000000..9c3f95f
--- /dev/null
+++ b/Data_3.0/factor-width/m4/geometries/1.6_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="4.8"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.2"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.2"/>
+ <vertex px="12.0" py="3.2"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="4.8"/>
+ <vertex px="12.0" py="4.8"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.2"/>
+ <vertex px="10" py="4.8"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.2"/>
+ <vertex px="12" py="4.8"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m4/geometries/2.0_geometry.xml b/Data_3.0/factor-width/m4/geometries/2.0_geometry.xml
new file mode 100644
index 0000000..bebd94d
--- /dev/null
+++ b/Data_3.0/factor-width/m4/geometries/2.0_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="5.0"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="3.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="3.0"/>
+ <vertex px="12.0" py="3.0"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="5.0"/>
+ <vertex px="12.0" py="5.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="3.0"/>
+ <vertex px="10" py="5.0"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="3.0"/>
+ <vertex px="12" py="5.0"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m4/geometries/2.5_geometry.xml b/Data_3.0/factor-width/m4/geometries/2.5_geometry.xml
new file mode 100644
index 0000000..275d949
--- /dev/null
+++ b/Data_3.0/factor-width/m4/geometries/2.5_geometry.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<geometry version="0.8" caption="Projectname" gridSizeX="20.000000"
+ gridSizeY="20.000000" unit="m"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://134.94.2.137/jps_geoemtry.xsd ">
+ <rooms>
+ <room id="0" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="Source">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="-8.0" py="8.0"/>
+ <vertex px="-8.0" py="0.0"/>
+ <vertex px="0.0" py="0.0"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="1" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="MainRoomLeftWall">
+ <vertex px="0.0" py="8.0"/>
+ <vertex px="10.0" py="8.0"/>
+ <vertex px="10.0" py="5.25"/>
+ </polygon>
+ <polygon caption="MainRoomRightWall">
+ <vertex px="0.0" py="0.0"/>
+ <vertex px="10.0" py="0.0"/>
+ <vertex px="10.0" py="2.75"/>
+ </polygon>
+ </subroom>
+ </room>
+ <room id="2" closed="0" zpos="0.0">
+ <subroom id="0" closed="0" class="subroom">
+ <polygon caption="CorridorLeftWall">
+ <vertex px="10.0" py="2.75"/>
+ <vertex px="12.0" py="2.75"/>
+ </polygon>
+ <polygon capton="CorridorRightWall">
+ <vertex px="10.0" py="5.25"/>
+ <vertex px="12.0" py="5.25"/>
+ </polygon>
+ </subroom>
+ </room>
+ </rooms>
+ <transitions>
+ <transition id="0" type="emergency"
+ room1_id="0" subroom1_id="0" room2_id="1"
+ subroom2_id="0">
+ <vertex px="0" py="0"/>
+ <vertex px="0" py="8"/>
+ </transition>
+ <transition id="1" type="emergency"
+ room1_id="1" subroom1_id="0" room2_id="2"
+ subroom2_id="0">
+ <vertex px="10" py="2.75"/>
+ <vertex px="10" py="5.25"/>
+ </transition>
+ <transition id="2" type="emergency"
+ room1_id="2" subroom1_id="0" room2_id="-1"
+ subroom2_id="-1">
+ <vertex px="12" py="2.75"/>
+ <vertex px="12" py="5.25"/>
+ </transition>
+
+ </transitions>
+</geometry>
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..a67f2ad
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..8447e40
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..c6629a2
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..d4ba302
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..d191c82
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..de863a0
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_1.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>1.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_1.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..0584c29
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..7a797e6
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..239553a
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..61de1fc
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..11cd24a
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..6aa65dc
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_10000.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>10000.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_10000.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..9851c47
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..1cd9dd7
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..8188d30
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..5e10988
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..7d0ae4d
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..38e3fdf
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_3334.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>3334.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_3334.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
new file mode 100644
index 0000000..ef3a7a2
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_0.8_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/0.8_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_0.8_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
new file mode 100644
index 0000000..07d3906
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_1.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
new file mode 100644
index 0000000..9da9251
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_1.2_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.2_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.2_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
new file mode 100644
index 0000000..6079ff2
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_1.6_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/1.6_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_1.6_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
new file mode 100644
index 0000000..2a06895
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_2.0_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.0_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_2.0_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml b/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
new file mode 100644
index 0000000..6353279
--- /dev/null
+++ b/Data_3.0/factor-width/m4/inifiles/ini_seed_6667.0_geometry_2.5_geometry.xml
@@ -0,0 +1,70 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>6667.0</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+
+ <geometry>../geometries/2.5_geometry.xml</geometry>
+
+ <trajectories embed_mesh="false" format="xml-plain" fps="8">
+ <file location="../trajectories/traj_seed_6667.0_geometry_2.5_geometry.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources>
+ <source agents_max="25" caption="source 1" frequency="1" greedy="false" group_id="0" id="1" />
+ <source agents_max="25" caption="source 2" frequency="1" greedy="false" group_id="1" id="2" />
+ <source agents_max="25" caption="source 3" frequency="1" greedy="false" group_id="2" id="3" />
+ <source agents_max="25" caption="source 4" frequency="1" greedy="false" group_id="3" id="4" />
+ <source agents_max="50" caption="source 5" frequency="1" greedy="false" group_id="0" id="5" />
+ <source agents_max="50" caption="source 6" frequency="1" greedy="false" group_id="1" id="6" />
+ <source agents_max="50" caption="source 7" frequency="1" greedy="false" group_id="2" id="7" />
+ <source agents_max="50" caption="source 8" frequency="1" greedy="false" group_id="3" id="8" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1" />
+ <waiting_time Tw="2" />
+ <model_submodel direction="1" speed="1" />
+ <GCVM using="1" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
\ No newline at end of file
diff --git a/Data_3.0/factor-width/m4/makeini.py b/Data_3.0/factor-width/m4/makeini.py
new file mode 100644
index 0000000..c295b6a
--- /dev/null
+++ b/Data_3.0/factor-width/m4/makeini.py
@@ -0,0 +1,267 @@
+# help: python3 makeini.py -h
+import argparse
+import errno
+import glob
+import logging
+import os
+import sys
+import time
+import itertools
+from numpy import *
+from shutil import copy2, rmtree, move
+
+try:
+ import xml.etree.cElementTree as ET
+except ImportError:
+ import xml.etree.ElementTree as ET
+
+SUCCESS = 0
+FAILURE = 1
+
+ego = os.path.basename(sys.argv[0]).split(".")[0] + ".txt"
+print("ego: ", ego)
+logfile = "log_%s"%ego
+logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
+# ============= some directories =============
+#HOME = os.path.expanduser("~")
+#TRUNK = HOME + "/Workspace/ped|ynamics/JuPedSim/jpscore/"
+#JPSCORE = TRUNK + "bin/jpscore"
+#CURDIR = os.getcwd()
+# ============= some default dictionaries =============
+default_value = {'tmax':1000, 'seed':1111, 'geometry':'', 'number':1, 'num_threads':1,
+ 'file':'', 'model_id':1, 'exit_crossing_strategy':3, 'cell_size':2.2,
+ 'operational_model_id':1}
+
+# only these tags can be multiplied
+tags = ['tmax',
+ 'seed',
+ 'geometry',
+ 'exit_crossing_strategy',
+ 'num_threads',
+ 'stepsize']
+
+# format tag-attribute
+attributes_tags = ['group-pre_movement_mean',
+ 'group-number',
+ 'group-router_id',
+ 'group-agent_parameter_id',
+ 'group-premovement_sigma',
+ 'agents-operational_model_id',
+ 'linkedcells-cell_size',
+ 'v0-mu', 'v0-sigma',
+ 'v0_upstairs-mu', 'v0_upstairs-sigma',
+ 'v0_downstairs-mu', 'v0_downstairs-sigma',
+ 'bmax-mu', 'bmin-mu',
+ 'amin-mu', 'tau-mu',
+ 'atau-mu',
+ 'force_ped-dist_max',
+ 'force_ped-disteff_max',
+ 'force_ped-interpolation_width',
+ 'force_ped-nu',
+ 'force_ped-b',
+ 'force_ped-c',
+ 'force_wall-dist_max',
+ 'force_wall-disteff_max',
+ 'force_wall-interpolation_width',
+ 'force_wall-nu',
+ 'force_wall-b',
+ 'force_wall-c',
+ 'source-frequency',
+ 'source-agents_max',
+ ]
+
+import numpy as np
+# cor_tags = np.unique([att.split("_")[0] for att in attributes_tags]).astype(str)a
+cor_tags = [att.split("-")[0] for att in attributes_tags]
+attributes = [att.split(tag+"-")[1] for (att, tag) in zip(attributes_tags, cor_tags)]
+cor_tags = np.unique(cor_tags)
+attributes = np.unique(attributes)
+input_tags = {}
+# =======================================================
+def getParserArgs():
+ parser = argparse.ArgumentParser(description='Generate inifiles for jpscore simulations. ')
+ parser.add_argument("-f", "--file", metavar='in-file', required=True, help='Master inifile')
+ args = parser.parse_args()
+ return args
+
+# =======================================================
+def make_dir(path):
+ if os.path.exists(path):
+ rmtree(path)
+ try:
+ os.makedirs(path)
+ except OSError as exception:
+ if exception.errno != errno.EEXIST:
+ raise
+# =======================================================
+def get_tag(node):
+ # geometry
+ if node.tag == "geometry":
+ geometries = []
+ geom = glob.glob("%s/*.xml"%node.text)
+ for g in geom:
+ geometries.append('../geometries' + g.split(".xml")[0].split("geometries")[1] + ".xml")
+ # the geometries are relative to the inifiles directory
+ #print geometries
+ return geometries
+ else:
+ text = node.text
+
+ if text:
+ value = eval(text)
+ else:
+ value = default_value[node.tag]
+ return value
+# =======================================================
+def get_attribute(node):
+ text = ''
+ values = []
+
+ for node_attrib in list(node.attrib.keys()):
+ if node_attrib in attributes:
+ text = node.attrib[node_attrib]
+ if text:
+ value = eval(text)
+ else:
+ value = 0
+ if isinstance(value, list) or isinstance(value, ndarray):
+ if len(value) > 1:
+ values.append([value, str(node.tag)+"-"+str(node_attrib), node_attrib])
+
+ return values
+# =======================================================
+def get_product(root):
+ """
+ read values, which may be lists or arrays of len>1 and return a list of
+ dics composed of the cartesian product of these lists.
+ example:
+ we read from the file (xml --> root) the following
+ {'num_threads': [5, 1, 2], 'tmax': [1, 2]}
+ return is:
+ [
+ {'numCPU': 5, 'tmax': 1}, {'numCPU': 5, 'tmax': 2},
+ {'numCPU': 1, 'tmax': 1}, {'numCPU': 1, 'tmax': 2},
+ {'numCPU': 2, 'tmax': 1}, {'numCPU': 2, 'tmax': 2}
+ ]
+ """
+ for node in root.iter():
+ tag = node.tag
+ if tag in tags: # ignore tags that are not of interest
+ d = get_tag(node)
+ if isinstance(d, list) or isinstance(d, ndarray) or isinstance(d, range):
+ # in case some tags have multiple values
+ if tag not in input_tags and len(d) > 1:
+ # ignore lists with one element (equiv to scalars)
+ # if tag in tags:
+ input_tags[tag] = d
+ elif bool(set(node.attrib.keys()) & set(attributes)): # check our list of attributes
+ values = get_attribute(node) # d, atr_tag, attr
+ # value, atr_tag, atr
+ for value in values:
+ d = value[0]
+ atr_tag = value[1]
+ input_tags[atr_tag] = d
+ else:
+ continue
+
+ result_prod = [dict(zip(input_tags, x)) for x in itertools.product(*iter(input_tags.values()))]
+ return result_prod
+# =======================================================
+def make_filename(directory, d):
+ name = "%s/inifiles/ini"%directory
+ traj = "../trajectories/traj" #%directory
+ for key, value in d.items():
+ if key == "geometry":
+ value = os.path.basename(value)
+ # if key == "num_threads":
+ # value = "numCPU"
+ name += "_" + key + "_" + str(value)
+ traj += "_" + key + "_" + str(value)
+
+ if not name.endswith("xml"):
+ name += ".xml"
+ if not traj.endswith("xml"):
+ traj += ".xml"
+ #print "name", (name)
+ return name, traj
+# =======================================================
+def update_tag_value(root, tag, value):
+ for rank in root.iter(tag):
+ rank.text = str(value)
+# =======================================================
+def update_attrib_value(root, attr_tag, value):
+ # location
+ print ("update_attrib_value: ", attr_tag, value)
+ # raw_input()
+ if attr_tag == "location": # e.g. location
+ for r in root.iter():
+ if attr_tag in r.attrib:
+ r.attrib[attr_tag] = str(value)
+ return
+
+ attr = attr_tag.split("-")[1]
+ cor_tag = attr_tag.split("-")[0]
+
+ for r in root.iter(cor_tag):
+ if attr in r.attrib:
+ r.attrib[attr] = str(value)
+# =======================================================
+def make_file(masterfile, tree, result):
+ """
+ Given a list of dictionaries produce an xml file for each dic.
+ The file is first copied from masterfile.
+ """
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ root = tree.getroot()
+ for item in result:
+ newfile, trajfile = make_filename(directory, item)
+ copy2(masterfile, newfile)
+ #update trajectory file
+ update_attrib_value(root, "location", trajfile)
+ if not os.path.isfile(newfile):
+ logging.error("make_file: could not create file %s"%newfile)
+ sys.exit(FAILURE)
+ for tag, value in item.items():
+ # print "tag: ", tag, "value:", value
+ # raw_input()
+ if tag in attributes_tags:
+ update_attrib_value(root, tag, value)
+ else:
+ update_tag_value(root, tag, value)
+
+ logging.info('>> %s'%newfile)
+ tree.write(newfile)
+# =======================================================
+
+if __name__ == "__main__":
+ time1 = time.clock()
+ args = getParserArgs()
+
+ masterfile = args.file
+ if not os.path.isfile(masterfile):
+ logging.error("ERROR: file %s does not exist."%masterfile)
+ sys.exit(FAILURE)
+
+ directory = os.path.dirname(os.path.abspath(masterfile)) #args.directory
+ logging.info('working directory = <%s>'%directory)
+ logging.info('master inifile = <%s>'%masterfile)
+ make_dir("%s/trajectories"%directory)
+ make_dir("%s/inifiles"%directory)
+
+ tree = ET.parse(masterfile)
+ root = tree.getroot()
+ result = get_product(root)
+ make_file(masterfile, tree, result)
+
+ time2 = time.clock()
+ print(directory)
+ print("%s/%s"%(directory, logfile))
+ print(os.path.isfile("%s/%s"%(directory, logfile)))
+
+ if not os.path.isfile("%s/%s"%(directory, logfile)):
+ move(logfile, directory)
+ logging.info('time elapsed: %.2f to generate %d files'%(time2 - time1, len(result)))
+ if 0:
+ sys.exit(FAILURE)
+ else:
+ sys.exit(SUCCESS)
diff --git a/Data_3.0/factor-width/m4/master_ini.xml b/Data_3.0/factor-width/m4/master_ini.xml
new file mode 100644
index 0000000..3832e6b
--- /dev/null
+++ b/Data_3.0/factor-width/m4/master_ini.xml
@@ -0,0 +1,121 @@
+<JuPedSim xmlns:ns0="http://xsd.jupedsim.org/jps_ini_core.xsd" project="JPS-Project" version="0.8" ns0:noNamespaceSchemaLocation="ini.xsd">
+ <seed>linspace(1,10000,4)</seed>
+
+ <num_threads>8</num_threads>
+ <max_sim_time unit="sec">500</max_sim_time>
+ <!--
+ <logfile>log.txt</logfile>
+ -->
+ <geometry>geometries/</geometry>
+
+ <trajectories format="xml-plain" embed_mesh="false" fps="8">
+ <file location="Traj_test_13.xml" />
+ </trajectories>
+
+ <show_statistics>false</show_statistics>
+
+ <agents operational_model_id="7">
+ <agents_distribution>
+ <group agent_parameter_id="1" goal_id="-1" group_id="0" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="1" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="2" number="0" room_id="0" router_id="1" subroom_id="0" />
+ <group agent_parameter_id="1" goal_id="-1" group_id="3" number="0" room_id="0" router_id="1" subroom_id="0" />
+ </agents_distribution>
+ <agents_sources> <!-- Set entrance flow -->
+ <source id="1" frequency="1" agents_max="25" group_id="0" caption="source 1" greedy="false" />
+ <source id="2" frequency="1" agents_max="25" group_id="1" caption="source 2" greedy="false" />
+ <source id="3" frequency="1" agents_max="25" group_id="2" caption="source 3" greedy="false" />
+ <source id="4" frequency="1" agents_max="25" group_id="3" caption="source 4" greedy="false" />
+ <source id="5" frequency="1" agents_max="50" group_id="0" caption="source 5" greedy="false" />
+ <source id="6" frequency="1" agents_max="50" group_id="1" caption="source 6" greedy="false" />
+ <source id="7" frequency="1" agents_max="50" group_id="2" caption="source 7" greedy="false" />
+ <source id="8" frequency="1" agents_max="50" group_id="3" caption="source 8" greedy="false" />
+ </agents_sources>
+ </agents>
+
+ <operational_models>
+ <model description="simplest" operational_model_id="7">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.05</stepsize> <!-- Set time steps -->
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.3" />
+ <update_method parallel="1"/> <!-- Update method is parallel when parallel=1, while unparallel when parallel=0 -->
+ <waiting_time Tw="2"/> <!-- Deleting pedestrian Tw seconds after the clogging -->
+ <model_submodel direction="1" speed="1"/> <!-- When direction=1 means using direction part, when speed=1 means using speed part -->
+ <GCVM using="1"/> <!-- When using=1 menas we using GCVM in the simulation -->
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.20" sigma="0.00000" />
+ <bmin mu="0.20" sigma="0.00000" />
+ <amin mu="0.20" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ </model>
+ <!--
+ <model operational_model_id="3" description="Tordeux2015">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.01</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells enabled="true" cell_size="2.2" />
+ <force_ped a="8" D="0.1" />
+ <force_wall a="5" D="0.02" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.0" sigma="0.001" />
+ <bmax mu="0.15" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.15" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.001" />
+ <atau mu="0.0" sigma="0.00000" />
+ <T mu="1" sigma="0.001" />
+ </agent_parameters>
+ </model>
+ <model description="gcvm" operational_model_id="6">
+ <model_parameters>
+ <solver>euler</solver>
+ <stepsize>0.04</stepsize>
+ <exit_crossing_strategy>3</exit_crossing_strategy>
+ <linkedcells cell_size="300" enabled="true" />
+ <force_ped D="0.1" a="3" />
+ <force_wall D="0.05" a="6" />
+ <time_parameters Td="0.3" Ts="0.5" />
+ </model_parameters>
+ <agent_parameters agent_parameter_id="1">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.2" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="1" />
+ </agent_parameters>
+ <agent_parameters agent_parameter_id="2">
+ <v0 mu="1.34" sigma="0.26" />
+ <bmax mu="0.25" sigma="0.00000" />
+ <bmin mu="0.15" sigma="0.00000" />
+ <amin mu="0.18" sigma="0.00000" />
+ <atau mu="0.00" sigma="0.00000" />
+ <tau mu="0.5" sigma="0.000" />
+ <shape circle="0" />
+ </agent_parameters>
+ </model>
+ -->
+ </operational_models>
+
+ <route_choice_models>
+ <router description="local_shortest" router_id="1">
+ <parameters>
+
+ </parameters>
+ </router>
+ </route_choice_models>
+
+</JuPedSim>
diff --git a/Data_3.0/factor-width/simulation-plotting-width.py b/Data_3.0/factor-width/simulation-plotting-width.py
new file mode 100644
index 0000000..254b2ec
--- /dev/null
+++ b/Data_3.0/factor-width/simulation-plotting-width.py
@@ -0,0 +1,226 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Sun Apr 7 22:03:23 2019
+
+@author: administer
+"""
+import matplotlib.pyplot as plt
+import subprocess
+import os
+import glob
+import shutil
+import numpy as np
+import sys
+
+
+executable = "/home/ias7137/Liu/jpscore/bin/jpscore"
+
+Model = glob.glob("m*")
+for model in Model:
+ os.chdir(model)
+ subprocess.call(["python", "makeini.py", "-f", "master_ini.xml"])
+ os.chdir('..')
+print("inifiles are finished")
+
+# from here begins the simulation
+
+print('from here begins the simulation ')
+#verify width list
+#Model = glob.glob("m*")
+
+for model in Model:
+ os.chdir(model+'/inifiles')
+ inifiles = glob.glob("*.xml")
+ for inifile in inifiles:
+ subprocess.call([executable, "--inifile=%s"%inifile])
+ inifiles=glob.glob('*')
+ for filename in inifiles:
+ if filename.endswith('.txt'):
+ shutil.move(filename,'../clogginglog/')
+ os.chdir("../clogginglog")
+ os.rename(filename,inifile.split('try_')[1].split('_g')[0]+filename)
+ os.chdir("../inifiles")
+
+ os.chdir("../..")
+
+# simulation is finished,and plotting is beginning
+
+#Model = glob.glob('m*')
+
+
+j=0
+BIG_meanNmax=[[],[],[],[],[]]
+BIG_meanTimespan=[[],[],[],[],[]]
+BIG_C=[[],[],[],[],[]]
+
+for model in Model:
+ Nmax_w1=[]
+ Nmax_w2=[]
+ Nmax_w3=[]
+ Nmax_w4=[]
+ Nmax_w5=[]
+ Nmax_w6=[]
+
+ Timespan_w1=[]
+ Timespan_w2=[]
+ Timespan_w3=[]
+ Timespan_w4=[]
+ Timespan_w5=[]
+ Timespan_w6=[]
+
+ W=[0.8,1.0,1.2,1.6,2.0,2.5]
+ MeanNmax=[0,0,0,0,0,0]
+ meanTimespan=[0,0,0,0,0,0]
+
+ print(model)
+ os.chdir(model+'/clogginglog')
+ Logs=glob.glob('*')
+ for log in Logs:
+
+
+ if log.split('Clo')[0] == '0.8':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w1.append(np.loadtxt(log)[-1])
+ MeanNmax[0]=sum(Nmax_w1)/len(Nmax_w1)
+ Timespan_w1.append(np.loadtxt(log)[1])
+ meanTimespan[0]=sum(Timespan_w1)/len(Timespan_w1)
+ else :
+ Nmax_w1.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[0]=sum(Nmax_w1)/len(Nmax_w1)
+ Timespan_w1.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[0]=sum(Timespan_w1)/len(Timespan_w1)
+
+
+ if log.split('Clo')[0] == '1.0':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w2.append(np.loadtxt(log)[-1])
+ MeanNmax[1]=sum(Nmax_w2)/len(Nmax_w2)
+ Timespan_w2.append(np.loadtxt(log)[1])
+ meanTimespan[1]=sum(Timespan_w2)/len(Timespan_w2)
+
+ else :
+ Nmax_w2.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[1]=sum(Nmax_w2)/len(Nmax_w2)
+ Timespan_w2.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[1]=sum(Timespan_w2)/len(Timespan_w2)
+
+ if log.split('Clo')[0] == '1.2':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w3.append(np.loadtxt(log)[-1])
+ MeanNmax[2]=sum(Nmax_w3)/len(Nmax_w3)
+ Timespan_w3.append(np.loadtxt(log)[1])
+ meanTimespan[2]=sum(Timespan_w3)/len(Timespan_w3)
+
+ else :
+ Nmax_w3.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[2]=sum(Nmax_w3)/len(Nmax_w3)
+ Timespan_w3.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[2]=sum(Timespan_w3)/len(Timespan_w3)
+
+ if log.split('Clo')[0] == '1.6':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w4.append(np.loadtxt(log)[-1])
+ MeanNmax[3]=sum(Nmax_w4)/len(Nmax_w4)
+ Timespan_w4.append(np.loadtxt(log)[1])
+ meanTimespan[3]=sum(Timespan_w4)/len(Timespan_w4)
+
+ else :
+ Nmax_w4.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[3]=sum(Nmax_w4)/len(Nmax_w4)
+ Timespan_w4.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[3]=sum(Timespan_w4)/len(Timespan_w4)
+
+ if log.split('Clo')[0] == '2.0':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w5.append(np.loadtxt(log)[-1])
+ MeanNmax[4]=sum(Nmax_w5)/len(Nmax_w5)
+ Timespan_w5.append(np.loadtxt(log)[1])
+ meanTimespan[4]=sum(Timespan_w5)/len(Timespan_w5)
+
+ else:
+ Nmax_w5.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[4]=sum(Nmax_w5)/len(Nmax_w5)
+ Timespan_w5.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[4]=sum(Timespan_w5)/len(Timespan_w5)
+
+ if log.split('Clo')[0] == '2.5':
+ if np.loadtxt(log).shape ==(3,):
+ Nmax_w6.append(np.loadtxt(log)[-1])
+ MeanNmax[5]=sum(Nmax_w6)/len(Nmax_w6)
+ Timespan_w6.append(np.loadtxt(log)[1])
+ meanTimespan[5]=sum(Timespan_w6)/len(Timespan_w6)
+
+ else:
+ Nmax_w6.append(np.loadtxt(log)[:,2][-1])
+ MeanNmax[5]=sum(Nmax_w6)/len(Nmax_w6)
+ Timespan_w6.append(np.loadtxt(log)[-1][1]-np.loadtxt(log)[0][1])
+ meanTimespan[5]=sum(Timespan_w6)/len(Timespan_w6)
+
+ print(MeanNmax)
+ print(meanTimespan)
+
+ BIG_meanNmax[j]= MeanNmax
+ BIG_meanTimespan[j]=meanTimespan
+
+ C=[0,0,0,0,0,0]
+ for i in range(len(MeanNmax)):
+ if meanTimespan[i]==0:
+ pass
+
+ else:
+ C[i]=meanTimespan[i]/MeanNmax[i]
+ BIG_C[j]=C
+ print(C)
+ j=j+1
+
+ plt.figure()
+ plt.plot(W,MeanNmax)
+ plt.savefig('W-N')
+
+ plt.figure()
+ plt.plot(W,C)
+ plt.savefig('W-NT')
+
+ print('now leave'+model)
+
+
+ os.chdir('../..')
+
+
+
+std1=np.std(BIG_meanNmax)
+plt.figure()
+plt.grid()
+plt.title('standard deviation is %s'%std1)
+plt.plot(W,BIG_meanNmax[0],label='M1')
+plt.plot(W,BIG_meanNmax[1],label='M0')
+plt.plot(W,BIG_meanNmax[2],label='M2')
+plt.plot(W,BIG_meanNmax[3],label='M3')
+plt.plot(W,BIG_meanNmax[4],label='M4')
+plt.xlabel('Width in (m)')
+plt.ylabel('mean clogging times')
+plt.legend(loc='upper right')
+plt.savefig('figure/multiM-w-n',dpi=300)
+
+
+
+std2=np.std(BIG_C)
+plt.figure()
+plt.grid()
+plt.title('standard deviation is %s'%std2)
+plt.plot(W,BIG_C[0],label='M1')
+plt.plot(W,BIG_C[1],label='M0')
+plt.plot(W,BIG_C[2],label='M2')
+plt.plot(W,BIG_C[3],label='M3')
+plt.plot(W,BIG_C[4],label='M4')
+plt.xlabel('Width in (m)')
+plt.ylabel('mean clogging times per second')
+plt.legend(loc='upper right')
+plt.savefig('figure/multiM-w-nt',dpi=300)
+
+
+
+
--
GitLab