Перейти к основному содержимому

Зависимости

Используемые библиотеки

Eigen3requiredБиблиотека линейной алгебры.
BoostrequiredПопулярная библиотека для С++.
TBBoptionalThreading Building Blocks – библиотека для параллельного программирования от Intel.
MPIoptionalMessage Passing Interface – классический интерфейс для параллелизации с распределенной памятью.
pybind11optionalБиблиотека pybind11 позволяет связать код на python и на С++. Для визуализации в проекте используется интерпретатор python, numpy и matplotlib.

Из обязательных зависимостей: Eigen3 и Boost. Библиотека Eigen3 состоит только из заголовочных файлов. Библиотека Boost состоит преимущественно из заголовочных файлов, но, к сожалению, в проекте используется модуль boost_program_options для парсинга командной строки. Поэтому полная установка Boost обязательна.

Опции CMake

Включить/выключить использование дополнительных библиотек можно с помощью опций CMake.

Следующие опции влияют на зависимости проекта:

THREADS_TYPESTD / TBBИспользовать многопоточность из стандартной библиотеки (STD) или библиотеку TBB. Значение по умолчнию STD, что не требует подключения дополнительных библиотек.
ZEPHYR_MPION / OFFВключить компиляцию функций для распределенных вычислений. По умолчанию выключена, при включении добавляется зависимость от библиотеки MPI.
ZEPHYR_PYTHONON / OFFВключить библиотеки python. По умолчанию опция выключена, при включении станут доступны средства визуализации. В зависимости проекта добавятся библиотеки pybind11 и библиотеки python: numpy и matplotlib.

Следующие опции CMake контроллируют компиляцию целей:

ZEPHYR_TESTSON / OFFКомпиляция части тестов
ZEPHYR_TESTS_ALLON / OFFКомпиляция всех тестов
ZEPHYR_PROBLEMSON / OFFКомпиляция части задач
ZEPHYR_PROBLEMS_ALLON / OFFКомпиляция всех задач

Исходные файлы тестов расположены в директории zephyr-src/tests, исходные файлы задач — в директории zephyr-src/problems. При включении опции с постфиксом _ALL будут скомпилированы все тесты, которые располагаются в соответствующих директориях. При влючении опций ZEPHYR_TESTS или ZEPHYR_PROBLEMS_ALL будут собраны только те тесты и задачи, которые раскомментированны в соответствующих CMakeLists.txt.

Дополнительные опции:

ZEPHYR_DOXYGENON / OFFСоздает цель docs для генерации документации. Требует установки Doxygen.
ZEPHYR_ASSERTSON / OFFДобавляет дополнительные проверки в коде для отладки, к примеру, проверку границ массивов. По умолчанию выключена для большей производительности.
ZEPHYR_EIGENON / OFFПозволяет использовать тип Vector3d, который реализован в проекте, вместо типа Vector3d из библиотеки Eigen3. При этом библиотека Eigen3 всё ещё обязательна, поскольку используется и в других частях проекта.