OpenFOAM 5.0
26 июля выпущена новая мажорная версия пакета OpenFOAM 5.0, развиваемого и поддерживаемого под эгидой некоммерческой организации The OpenFOAM Foundation. В соответствии с текущей стратегией выпуска новых версий, данный выпуск является «срезом» ветки для разработчиков OpenFOAM-dev.
Для тех, кто ещё не знаком с этим замечательным пакетом, необходимо пояснить, что речь идёт об открытой платформе для численного решения уравнений в частных производных методом конечного объёма, которая распространяется под лицензией GPLv3 и включает в себя как набор библиотек, позволяющих написать собственные программы для решения уравнений в частных производных (на языке C++), так и множество готовых решателей и утилит, предназначенных в основном для численного моделирования различных задач механики сплошных сред.
Данный выпуск содержит множество нововведений и улучшений, в частности:
- Реализован новый алгоритм трассировки лагранжевых частиц, основанный на использовании локальных барицентрических координат, что существенно улучшает точность построения траектории частицы и предотвращает возникновение ошибок, связанных с «потерей» частиц на «плохих» расчётных сетках. Стоит отметить, что данная работа была проведена благодаря добровольным пожертвованиям, собранным The OpenFOAM Foundation в 2017 году.
- Добавлена возможность генерации модельных волн на поверхности жидкости (как граничное условие на входе в расчётную область). Моделирование волн необходимо, в частности, для различных задач судостроения.
- Реализована новая технология декомпозиции для параллельных расчётов, благодаря которой данные параллельного расчёта от разных процессов пишутся в один файл. В предыдущих версиях OpenFOAM для каждого процесса с номером N создавался свой каталог с именем «processorN», куда и производилась запись от процесса N, в результате при большом числе процессов могли возникнуть проблемы записи, связанные в т.ч. со слишком большим количеством открытых файлов. Данный метод работы в параллельном режиме (называемый collated) не включён по умолчанию. Отметим, что имеется возможность работы ввода-вывода в многонитевом режиме (multithreading).
- Добавлена возможность автодополнения по TAB опций решателей и утилит.
- Сделано много других улучшений и добавлений, в частности: улучшена надёжность работы многофазных решателей в задачах с входными/выходными границами, добавлены новые модели для вязких сред, новая модель горения, улучшены сеточные генераторы snappyHexMesh и blockMesh.
>>> Подробности