Современная гравитационная физика немыслима без использования специализированного программного обеспечения, способного решать уравнения высокой сложности, выполнять численные симуляции и обрабатывать большие объёмы экспериментальных данных. Программные пакеты позволяют моделировать динамику гравитационных систем, анализировать сигналы гравитационных волн, проводить точные вычисления метрических тензоров, а также тестировать альтернативные гравитационные теории.
Программное обеспечение условно делится на три категории:
Наиболее ресурсоемкой задачей гравитационной физики является численное интегрирование уравнений Эйнштейна для сильно искривлённого пространства-времени, в особенности вблизи компактных объектов — чёрных дыр, нейтронных звёзд, космических струн. Основу таких расчётов составляет 3+1 формализм Арнова́ и Дезера (ADM), а также формализм Баумгарте–Шапиро–Шибаты–Накамуры (BSSN), используемый для устойчивой численной эволюции метрик.
Наиболее известные программные системы:
Открытая и модульная инфраструктура на базе Cactus Framework. Поддерживает эволюцию пространства-времени, гидродинамику и электромагнетизм. Содержит следующие компоненты:
Разрабатывается SXS (Simulating eXtreme Spacetimes) Collaboration. Использует метод спектральных элементов, который обеспечивает крайне высокую точность. Основное применение — моделирование слияний чёрных дыр и генерации гравитационных волн.
Система на основе конечных разностей с возможностью использования симметрий и параллелизма. Широко применяется для моделирования бинарных систем чёрных дыр и нейтронных звёзд.
Экспериментальные установки типа LIGO, Virgo, KAGRA, а также планируемые космические обсерватории (например, LISA) генерируют массивные потоки данных, содержащие шумы, артефакты и, в редких случаях, сигналы гравитационных волн. Обработка этих данных требует специализированных алгоритмов фильтрации, байесовской статистики и распознавания сигналов.
Стандартный пакет, используемый в сотрудничестве LIGO-Virgo:
LALSuite тесно интегрирован с другими языками (Python, C++) через API, а также имеет поддержку параллельных вычислений.
Пакет на Python, предназначенный для поиска гравитационно-волновых сигналов методом совпадения с шаблонами (matched filtering). Позволяет:
Поддерживает высокопроизводительные вычисления с помощью CUDA и OpenMP.
Универсальная библиотека для байесовского вывода, используемая для оценки параметров источников гравитационных волн. Поддерживает различные методы MCMC и nested sampling (Dynesty, PyMultiNest и др.).
Теоретическая гравитация требует работы с тензорами, варьируемыми лагранжианами, уравнениями движения в различных метриках. Такие задачи не поддаются ручному вычислению, особенно в случае модифицированных гравитационных теорий (f(R), скаляр-тензорные теории и т. д.).
Набор пакетов на базе Mathematica, в том числе:
xAct активно используется для формального вывода уравнений движения и метрических решений.
Специализированная система символьных вычислений, ориентированная на теоретическую физику. В отличие от Mathematica, заточена под работу с коммутирующими/антикоммутирующими объектами, индексной нотацией и автоматическим упрощением.
Преимущества:
При создании собственных программных решений часто используются универсальные языки программирования и библиотеки численного анализа:
Для комплексной симуляции важны не только численные ядра, но и удобные интерфейсы управления вычислениями, визуализации и анализа промежуточных результатов.
Все гравитационные коды проходят обязательное тестирование:
Для тестирования и обучения доступны открытые репозитории:
Будущее программных систем в гравитационной физике связано с: