EvacuationC -- программа моделирования движения людей в здании.
Резульататом работы программы является время освобождения здания (длительность эвакуации).
.
├── res -- Ресурсы. Файлы зданий
├── src -- Исходные коды программы
├── test -- Тесты
└── thirdparty -- Библиотеки, используемые в программе
├── arraylist -- Библиотека для работы с динамическим списком
├── c-logger -- Библиотека для логгирования
├── json-c -- Библиотека для работы с json-файлами
└── triangle -- Библиотека для триангуляции поверхности
- cmake >= 3.16
- gcc-10 or clang-11
Клонируйте репозиторий
git clone --recurse-submodules https://github.com/bvchirkov/EvacuationC.git
Выполните настройку окружения и сборку проекта
cd EvacuationC
cmake -S . -B build/ && cmake --build build/
Готовый к запуску файл расположен в дирректории build/
-- EvacuationC
-f
-- [required] файл пространственно-информационной модели здания, выполненный в QGIS 2.18 с использованием плагина PlanCreator-o
-- [required] файл с детализацией процесса моделирования-c
-- [optional] файл конфигурации сценария моделирования-l
-- [optional] файл конфигурации логгера-h
-- вывод справки по параметрам запуска
cd build
./EvacuationC -f ../res/two_levels.json -o ../res/two_levels.json.csv -c ../evacuationc.conf -l ../logger.conf
T 21-08-25 12:28:31.637591 28453 main.c:103: Файл описания объекта: ../res/two_levels.json
T 21-08-25 12:28:31.637710 28453 main.c:104: Файл конфигурации сценария: ../evacuationc.conf
T 21-08-25 12:28:31.637722 28453 main.c:105: Файл с детальной информацией: ../res/two_levels.json.csv
T 21-08-25 12:28:31.637731 28453 main.c:106: Название объекта: Здание номер 1
T 21-08-25 12:28:31.637739 28453 main.c:107: Площадь здания: 403.63 m^2
T 21-08-25 12:28:31.637763 28453 main.c:108: Количество этажей: 2
T 21-08-25 12:28:31.637790 28453 main.c:109: Количество помещений: 9
T 21-08-25 12:28:31.637811 28453 main.c:110: Количество дверей: 8
T 21-08-25 12:28:31.637832 28453 main.c:111: Количество человек в здании: 80.73 чел.
I 21-08-25 12:28:31.642914 28453 main.c:149: ---------------------------------------
I 21-08-25 12:28:31.642925 28453 main.c:150: Количество человек в здании: 0.00 чел.
I 21-08-25 12:28:31.642930 28453 main.c:151: Количество человек в безопасной зоне: 80.73 чел.
I 21-08-25 12:28:31.642936 28453 main.c:152: Длительность эвакуации: 178.80 с., 2.98 мин.
I 21-08-25 12:28:31.642942 28453 main.c:153: ---------------------------------------
- BIM -- из файла описания здания (default)
- UNIFORM -- равномерное (
distribution.density
)
distribution=UNIFORM
distribution.density=0.2 # Плотность распределения людей, чел/м^2 (max = 9)
BIM
-- из файла описания здания (default)SPECIAL
-- специальные значения (transit.doorway.in
и/илиtransit.doorway.out
)
transit=SPECIAL
transit.doorway.in=0.8 # Ширина внутренних переходов, м
transit.doorway.out=1.2 # Ширина выходов из здания, м
modeling.step=0.01 # Шаг моделирования, мин
modeling.speed.max=100 # Максимальная скорость движения людей, м/мин
modeling.density.min=0.1 # Минимальное значение плотности, которое остается в помещении, перед тем, как оно будет освобождено за один шаг, чел/м^2
modeling.density.max=5 # Максимальное значение плотности, которое может быть достигнуто в помещнии, после этого в помещение нельзя перемещать людей, чел/м^2