Группа разработчиков пакета Cantera рада представить выпуск версии 2.4.0.
Cantera - набор инструментов и библиотек с открытым исходным кодом для решения задач химической кинетики, термодинамики и процессов переноса. Может использоваться в программах написанных на Python и Matlab, а так же при написании приложений на языках C++ и Fortran.
Выпуск, включает в себя более чем 380 фиксаций изменений с момента выхода версии 2.3.0, более чем 70 принятых запросов на изменение кода и почти 60 исправленных ошибок. В данном выпуске разработчики улучшили поддерживаемость кода посредством удаления или объявления устаревшим старый, непротестированный код, переноса web-сайта и Mixmaster в отдельные репозитории и автоматизации большего числа процессов сборки и тестирования. Также были добавлены новые возможности в код одномерных реакторных моделей, включая класс ionized gas transport
и классы IonFlow
и BurnerIonFlame
, обеспечивающие улучшенный доступ к функциям обратного вызова в процессе решения одномерной задачи и автоматическое обнаружение определённых общих условий отказа одномерного решателя. Данный выпуск Cantera стал возможен благодаря вкладу 14 разработчиков (профили на github): @speth, @bryanwweber, @BangShiuh, @decaluwe, @wandadars, @jsantner, @arghdos, @rwest, @g3bk47, @awehrfritz, @band-a-prend, @vdevgan, @KyleLinevitchJr, and @MarcDuQuesne.
С инструкциями по установке и сборке Cantera 2.4.0 можно ознакомиться на web-сайте Cantera. В дополнение к пакетам Conda, Windows установщикам и пакетам для Ubuntu для данного выпуска подготовлен дополнительный Matlab инструментарий для macOS, заменяющий установку посредством Homebrew как рекомендуемый способ установки Cantera для Matlab на macOS.
Благодаря небольшому гранту для разработчиков от NumFOCUS (о NumFOCUS см. ниже) @bryanwweber и @decaluwe переработали официальный сайт проекта. Сайт был перенесён в отдельный репозиторий, позволяя изменять его содержимое без внесения изменений в код проекта. Также разработчики попытались сделать для пользователей более простым и быстрым поиск информации будь то инструкции по установке и руководства для новичков или расширенные примеры и документация по API для опытных программистов использующих Cantera.
Cantera теперь официально является частью NumFOCUS. NumFOCUS - 501(c)3 некоммерческая организация направленная на поддержку сообщества разработки открытого исходного кода для научных вычислений.
Cantera 2.4.0 - последний выпуск совместимый с Python 2.7, так как его поддержка прекращается 1 января 2020 года. Следующий мажорная выпуск Cantera, вероятно, будет осуществлён очень близко к этой дате, поэтому было принято решение о прекращении поддержки Python 2.7 для версии 2.5.0 и новее.
Одним из значительных изменений в требованиях для сборки новой версии является необходимость использования SCons 3.0.0 или новее для компиляции исходного кода. Это значит, что Python 2 или 3 могут использоваться для запуска скриптов сборки SCons. В дополнение к этому, теперь есть три опции для управления сборкой интерфейса для Python, в зависимости от того, хочет ли пользователь собрать пакет для Python 2 или Python 3. Дополнительная информация об этом приведена в документации.
Полный список изменений приведён на странице проекта на github.
Основные изменения:
- Исправлены несоответствия и ошибки в некоторых наследуемых от
ThermoPhase
классах, включаяPDSS_IdealGas
,IonsFromNeutralVPSSTP
,PDSS_IonsFromNeutral
,PDSS_HKFT
,LatticePhase
,PDSS_SSVol
,ConstDensityThermo
, иPureFluidPhase
. - Резервируется пара постоянных свойств при умножении объектов класса
Quantity
. - Исправлено использование чистых жидкостей в реакторах.
- Добавлена температурная зависимость для вращательной релаксации при расчётах процессов переноса.
- Отключена линковка к внешним библиотекам SUNDIALS при сборке инструментария для Matlab.
Изменения для ранее существовавших возможностей:
- Разрешено создание экземпляра объекта наследуемых от
ThermoPhase
классов без использования XML. - Переменная
set_equivalence_ratio
теперь может использоваться в моделях с кинетическими механизмами окисления серы. - Запрещено копирование всех объектов сложных типов (
ThermoPhase
,Kinetics
,Transport
,Reactor
,Domain1D
и др.). - Классы
FreeFlow
иAxiStagnFlow
объявлены устаревшими, с переносом соответствующих функций в классStFlow
. - Разрешён множественный вызов функции
convertMech
. - Удалено требование иметь установленные заголовочные файлы библиотеки Boost при сборке с использованием библиотек Cantera.
- Изменены опции для сборки интерфейса к Python, так как Scons 3.0 и новее может использоваться с Python 3.
- Обновлены версии подмодулей для GTest, fmtlib, SUNDIALS и Eigen.
Дополнительно:
- Добавлена
ion gas transport
модель иIonFlow
иBurnerIonFlame
классы пламён. - Добавлены C++ примеры c использованием OpenMP для реакторных моделей Non-Ideal Shock Tube, PSR/WSR и массового расхода зависящего от времени.
- Добавлен класс
AnyMap
. - Разрешены реакции отрицательных порядков.
- Добавлена транспортная модель с числом Льюиса равным единице.
- Добавлен электрон в перечень встроенных элементов.
- Добавлена функция
get_equivalence_ratio
.
>>> Подробности