LINUX.ORG.RU

Cantera 2.4.0

 , , , ,


1

1

Группа разработчиков пакета 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.


>>> Подробности

Спасибо за хороший перевод без лишних англицизмов.

Благодаря небольшому гранту для разработчиков от NumFOCUS

...

Cantera теперь официально является частью NumFOCUS. NumFOCUS - 501(c)3 некоммерческая организация направленная на поддержку сообщества разработки открытого исходного кода для научных вычислений.

Что означает подобное членство в NumFOCUS? Обязанности, привилегии, изменения в лицензии?

Crocodoom ★★ ()

Ваш перевод на высоте! Спасибо.

Odalist ★★★★★ ()

Где скриншоты-то?

anonymous ()
Ответ на: комментарий от Crocodoom

Что означает подобное членство в NumFOCUS? Обязанности, привилегии, изменения в лицензии?

О самой организации я знаю мало.

Изменение лицензии не то чтобы требуется, но лицензия под который выпускается код проекта должна входить в список «OSI approved open source license», что в данном случае и так выполняется (BSD 3-Clause licence).

Подробнее об остальных требованиях написано ближе к концу этой страницы в разделе «What are the requirements to become a Fiscally Sponsored Project of NumFOCUS?» Сама организация спонсирует такие проекты как NumPy, Matplotlib, IPython, Julia.

grem ★★★★★ ()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от slovazap

Есть такая проблема. Насколько помню интерфейс для python доступен к установке через pip.

Есть ppa-репозиторий одного из основных разработчиков, он не включает в себя интерфейс для matlab (если им кто пользуется).

Сборка библиотек при установленных зависимостях очень простая, можно указать директорию установки.

К сожалению, с марта из-за нехватки времени на тестирование никак не могу доделать ebuild для версии 2.3.0. Сейчас нужно его немного доделываю и параллельно модифицирую его для версии 2.4.0, чтобы потом выложить. Потом попробую либо стать его ментейнеров, либо передать хотя бы в science оверлей.

Осталось в основном разобраться с заменой флагов сборки на системные; деактивировать debug флаг соответствующим образом,
как это сейчас принято (либо просто его отключить); подчистить пару флагов сомнительной нужности; забить на сборку документации из исходников и поставлять собранную, оставив сборку для live-ebuild. Так то ebuild вполне рабочий - собирает, устанавливает, удаляет, после установки линкуются библиотеки и собираются примеры.

Когда-то пакет был в fedora, но это было давно.

grem ★★★★★ ()
Ответ на: комментарий от grem

Нужно. Годно.

Спасибо. Нужное дело делаете.

anonymous ()
Ответ на: Нужно. Годно. от anonymous

Я к этому проекту, к сожалению, практически никакого отношения не имею - пару багрепортов только сделал :)

grem ★★★★★ ()

Граждане, врусская езыге не? Вроде, не Шаман проверял, а толку все одно чуть

улучшили поддерживаемость кода посредством удаления или объявления устаревшим старый, непротестированный код.

Короткий совет: лучше написать два простых предложения, чем одно с обилием оборотов.

Ну, и да, по-моему, лучше один англицизм 'коммит', чем неуклюжие конструкции вида '380 фиксаций изменений'. Количество заимствований, есичо, такое же.

AlexM ★★★★★ ()
Последнее исправление: AlexM (всего исправлений: 1)
Ответ на: комментарий от AlexM

Если уж не «коммитов», то «изменений и исправлений».

anonymous ()
Ответ на: комментарий от AlexM

Врусская езыге, конечно, не идеален, но если бы я при переводе постоянно оставлял англицизмы и дробил всё на более простые предложения, то в институте по английскому языку мне выше тройки бы никогда не поставили. А так целых четыре балла наскрёб.

Наверняка есть варианты перевода терминов и получше. Я вставил те, которые хоть как-то, на мой взгляд, передавали смысл из того, что удалось найти. Иначе можно совсем остаться без практики в переводе текстов.

grem ★★★★★ ()
Ответ на: комментарий от grem

Врусская езыге, конечно, не идеален

Он не просто «неидеален», сквозь него хрен проберешься, простите. В наше непростое время даже гугль-транслейт научился падежи согласовывать.

Впрочем, ладно, за новость спасибо. Может, и пригодится.

AlexM ★★★★★ ()
Ответ на: комментарий от slovazap

Насколько помню интерфейс для python доступен к установке через pip.

Похоже, что тут я ошибся, либо пакет уже убрали. Мне казалось, что в Mint я когда-то ставил его через pip. Предыдущие версии для pip доступна сейчас только для windows, но это отдельный репозиторий.

grem ★★★★★ ()
Ответ на: комментарий от LinuxDebian

Тут о любой новости так можно сказать - если просто проект нравится, то почему бы о нём и не написать? ;)

Сам проект достаточно старый (в 2001 была версия 1.2) и многие кто занимается задачами связанными с этой тематикой, если не пользовались, то хотя бы слышали о нём. У компании CERFACS даже своя модификация есть.

grem ★★★★★ ()
Ответ на: комментарий от grem

Имелся в виду конкретно ebuild. Ну и за новость спасибо =)

anonymous ()
Ответ на: комментарий от slovazap

Пока готовы такие ebuild'ы для Gentoo: https://github.com/band-a-prend/gentoo-overlay

Попробую протиснуть ebuild для новой версии и документации к ней в основной репозиторий через проект Gentoo Proxy Maintainers. Надеюсь, в выходные получится этим заняться.

grem ★★★★★ ()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от grem

Zlogene, ты, как участник проекта Gentoo Proxy Maintainers, можешь прикинуть, есть ли шанс добавления в основной репозиторий для пакета? Хотя у меня ещё пара вопросов будет при добавлении pull request. Сколько вопросов будет когда мне не знаю, но явно много :)

grem ★★★★★ ()
Ответ на: комментарий от grem

можно добавить, почему нет, шансы зависят не от генты, а от качества пакета в целом (можно много провозиться чтоб пакет стал приемлемого для gentoo качества), и от человека который будет его сопровождать :) (бампать, фиксить и тд)

Zlogene ()
Ответ на: комментарий от Zlogene

можно много провозиться чтоб пакет стал приемлемого для gentoo качества

сейчас всё так плохо? :(

grem ★★★★★ ()
Ответ на: комментарий от grem

без понятия, но я исхожу из наихудшего варианта, я же его не опокечивал и не собирал, ну смотрю релизы есть, scons ввиде билды, а не vasya pupkin build system как иногда бывает, уже не плохо. В общем попиши ебилд, посмотри как оно работает.

Zlogene ()
Ответ на: комментарий от Zlogene

уже написал (ссылка в этом сообщении), постараюсь в выходные закинуть pull request.

Вроде работает - собственные тесты проходит, примеры собираются и запускаются и выдают нужный результат. В основном смотрел работу пары примеров для python, так как их больше.

Сами ебилды мельком даже уже видели mgorny и monsieurp, когда я пару вопросов задавал на #gentoo-python. Надеюсь, увидят ещё раз :D

grknight парой советов очень помог.

grem ★★★★★ ()
Последнее исправление: grem (всего исправлений: 2)
Ответ на: комментарий от grem

monsieurp мягко говоря неадекват, не надо ему верить ;). Но да, в твоем ебилде есть проблемы

Zlogene ()
Ответ на: комментарий от Zlogene

Гы :) ну он намекнул на путь решения одной, но пришлось самому ковырять.

Больше всех подсказывал grknight - в коммитах я упоминал кто где помог.

А так да, я сам пару вещей не знаю пока куда ковырнуть в ебилде, вот в pr, надеюсь, подскажут.

Пока у меня есть опыт (~ с января) активного общения c leio. До сих пор удивляюсь, как он в этой горе коммитов, которые рассматривает и запихивает в дерево, умудряется вообще на что-то время выделять.

Тебя можно сразу кастануть помимо всей группы или ты занят ближайшие недели?

grem ★★★★★ ()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от grem

ну кастани, но не факт, что я отвечу, я кастаюсь на все pr автоматом (надо-бы отписаться, да мне лень)

Zlogene ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.