Зависимости
Используемые библиотеки
| Eigen3 | required | Библиотека линейной алгебры. |
| Boost | required | Популярная библиотека для С++. |
| TBB | optional | Threading Building Blocks – библиотека для параллельного программирования от Intel. |
| MPI | optional | Message Passing Interface – классический интерфейс для параллелизации с распределенной памятью. |
| pybind11 | optional | Библиотека pybind11 позволяет связать код на python и на С++. Для визуализации в проекте используется интерпретатор python, numpy и matplotlib. |
Из обязательных зависимостей: Eigen3 и Boost.
Библиотека Eigen3 состоит только из заголовочных файлов.
Библиотека Boost состоит преимущественно из заголовочных файлов, но, к сожалению, в проекте используется модуль boost_program_options для парсинга командной строки. Поэтому полная установка Boost обязательна.
Опции CMake
Включить/выключить использование дополнительных библиотек можно с помощью опций CMake.
Следующие опции влияют на зависимости проекта:
THREADS_TYPE | STD / TBB | Использовать многопоточность из стандартной библиотеки (STD) или библиотеку TBB. Значение по умолчнию STD, что не требует подключения дополнительных библиотек. |
ZEPHYR_MPI | ON / OFF | Включить компиляцию функций для распределенных вычислений. По умолчанию выключена, при включении добавляется зависимость от библиотеки MPI. |
ZEPHYR_PYTHON | ON / OFF | Включить библиотеки python. По умолчанию опция выключена, при включении станут доступны средства визуализации. В зависимости проекта добавятся библиотеки pybind11 и библиотеки python: numpy и matplotlib. |
Следующие опции CMake контроллируют компиляцию целей:
ZEPHYR_TESTS | ON / OFF | Компиляция части тестов |
ZEPHYR_TESTS_ALL | ON / OFF | Компиляция всех тестов |
ZEPHYR_PROBLEMS | ON / OFF | Компиляция части задач |
ZEPHYR_PROBLEMS_ALL | ON / OFF | Компиляция всех задач |
Исходные файлы тестов расположены в директории zephyr-src/tests, исходные файлы задач — в директории zephyr-src/problems. При включении опции с постфиксом _ALL будут скомпилированы все тесты, которые располагаются в соответствующих директориях. При влючении опций ZEPHYR_TESTS или ZEPHYR_PROBLEMS_ALL будут собраны только те тесты и задачи, которые раскомментированны в соответствующих CMakeLists.txt.
Дополнительные опции:
ZEPHYR_DOXYGEN | ON / OFF | Создает цель docs для генерации документации. Требует установки Doxygen. |
ZEPHYR_ASSERTS | ON / OFF | Добавляет дополнительные проверки в коде для отладки, к примеру, проверку границ массивов. По умолчанию выключена для большей производительности. |
ZEPHYR_EIGEN | ON / OFF | Позволяет использовать тип Vector3d, который реализован в проекте, вместо типа Vector3d из библиотеки Eigen3. При этом библиотека Eigen3 всё ещё обязательна, поскольку используется и в других частях проекта. |