Пакет FeOs
обеспечивает реализации ржавчины различного уравнения функциональных моделей State и Helmholtz и соответствующих привязки Python.
Из FeoS.EOS Import AvationOfState, StateFrom FEOS.PCSAFT Импорт PCSAFTPARAMETERS, PCSAFTRECORD# PC-SAFT Параметры для метанола (Gross and Sadowski 2002). nb = 1)# Создайте уравнение StateParameters = pcsaftParameters.from_model_records ([record]) eos = efacefstate.pcsaft (параметры)# Определить термодинамические условия. .temperatureprint (f'critical Point для метанола: t = {t}, p = {p}. ')
Critical point for methanol: T=531.5 K, p=10.7 MPa.
Следующие модели в настоящее время опубликованы в рамках рамки FeOs
имя | описание | EOS | дф |
---|---|---|---|
pcsaft | Обозначенная цепь (полярная) статистическая ассоциация теории жидкости | ✓ | ✓ |
epcsaft | Электролитный ПК-прибор | ✓ | |
gc-pcsaft | (гетеросегментированный) Групповой вклад ПК-of-saft | ✓ | ✓ |
pets | Объединенные усеченные и смещенные смеси Леннарда-Джонса | ✓ | ✓ |
uvtheory | Уравнение состояния для жидкостей и смесей MIE | ✓ | |
saftvrqmie | уравнение состояния для квантовых жидкостей и смесей | ✓ | ✓ |
saftvrmie | Статистическая ассоциация теории жидкости для взаимодействия с переменным диапазоном формы MIE | ✓ |
Список непрерывно расширяется. В настоящее время находятся в разработке реализации энергетических функционалов Helmholtz для теории ультрафиолета и для SAFT-VR Mie.
Другие общественные репозитории, которые внедряют модели в рамках FeOs
, но в настоящее время не являются частью пакета feos
Python, находятся
имя | описание | EOS | дф |
---|---|---|---|
feos-fused-chains | Гетеросегментированная цепочка с пласной сферой | ✓ |
В дополнение к исходному коду для пакетов Rust и Python, этот репозиторий содержит файлы JSON с ранее опубликованными параметрами для различных моделей, включая методы вклада группы. Файлы параметров могут быть прочитаны непосредственно из Rust или Python.
Ящик использует обобщенные (гипер) двойные числа для общего расчета точных частичных производных из энергетических уравнений Гельмгольца. Деривативы используются для расчета
равновесие свойства (давление, теплоемкость, летучие средства и многое другое),
Транспортные свойства (вязкость, теплопроводность, коэффициенты диффузии) с использованием подхода к масштабированию энтропии
Критические точки и фазовые равновесия для чистых компонентов и смесей.
В дополнение к этому, коммунальные предприятия предоставляются для оказания помощи в обработке параметров как для молекулярных уравнений состояния, так и методов вклада (гомосегментированных) и для генерации фазовых диаграмм для чистых компонентов и бинарных смесей.
FeOs
использует эффективные численные методы для расчета профилей плотности в неоднородных системах. Основные моменты включают:
Быстрый расчет интегралов свертки в картезианских (1D, 2D и 3D), полярных, цилиндрических и сферических координатных системах с использованием FFT и связанных с ними алгоритмов.
Автоматический расчет частичных производных плотностей энергии Гельмгольца (включая производные температуры) с использованием автоматической дифференциации с обобщенными (гипер) двойными числами.
Моделирование гетеросегментированных молекул, включая разветвленные молекулы.
Функциональные возможности для расчета поверхностной напряженности, изотерм адсорбции, парных корреляционных функций и свободных энергий сольватации.
Без активированных дополнительных функций команда
cargo test --release
Будет только построить и проверять основные функции ящика. Чтобы запустить модульные и интеграционные тесты для конкретных моделей, запустите
cargo test --release --features pcsaft
Чтобы проверить, например, реализация ПК-off или
cargo test --release --features all_models
запускать тесты на всех реализованных моделях.
FeOs
использует структуру PyO3
для обеспечения привязки Python. Пакет Python может быть установлен через pip
и работает на Windows, Linux и MacOS:
pip install feos
Если для вашей системы нет скомпилированного пакета для вашей системы, и у вас установлен компилятор ржавчины, вы можете вместо этого построить пакет Python из источника, используя
pip install git+https://github.com/feos-org/feos
Эта команда создает пакет без оптимизации времени ссылки (LTO), которую можно использовать для дальнейшего повышения производительности. См . Здание из раздела Source для получения информации о строительстве колеса, включая LTO.
Чтобы скомпилировать код, вам нужен компилятор ржавчины и maturin
(> = 0,13, <0,14). Чтобы установить пакет непосредственно в активную среду (VirtualEnv или Conda), используйте
maturin develop --release
который использует функцию python
и all_models
, как указано в файле pyproject.toml
.
В качестве альтернативы, вы можете указать модели или функции, которые вы хотите включить в пакет Python явно, например, EG
maturin develop --release --features "python pcsaft dft"
Для уравнения PC-Saft of State и Helmholtz Energy функционально.
Для создания колес, включая оптимизацию времени ссылки (LTO), использование
maturin build --profile="release-lto"
который будет использовать функции python
и all_models
указанные в файле pyproject.toml
. Используйте следующую команду, чтобы построить колесо с конкретными функциями:
maturin build --profile="release-lto" --features "python ..."
LTO увеличивает время компиляции, но полученное колесо является более эффективным и имеет меньший размер. Для разработки, однако, мы рекомендуем использовать флаг --release
.
Для документации Python API, примеров Python и руководства по базовой структуре ржавчины, ознакомьтесь с документацией.
Проверьте каталог скамейков для получения информации о предоставленных тестах ржавчины и о том, как их запустить.
Это программное обеспечение в настоящее время поддерживается членами групп
Профессор Йоахим Гросс, Институт термодинамики и инженерии тепловых процессов (ITT), Университет Штутгарта
Профессор Андре Бардоу, Системная инженерия энергетики и процессов (EPSE), Eth Zurich
FeOs
выросла из -за необходимости поддерживать общую кодовую базу, используемую в научной работе, выполненной в наших группах. Мы публично делимся кодом как платформу для публикации наших собственных исследований, но также призываем других исследователей и разработчиков вносить свои собственные модели или реализации существующих уравнений государства.
Если вы хотите внести свой вклад в FeOs
, есть несколько способов: улучшение документации и помощь в сфере языков, тестирование кода в ваших системах для поиска ошибок, добавления новых моделей или алгоритмов или предоставления запросов функций. Не стесняйтесь сообщать нам, если у вас есть вопросы или открывайте проблему для обсуждения улучшений.
Если вы считаете FeOs
полезным для ваших собственных научных исследований, рассмотрите возможность ссылки на нашу публикацию, сопровождающую эту библиотеку.
@article{rehner2023feos, author = {Rehner, Philipp and Bauer, Gernot and Gross, Joachim}, title = {FeOs: An Open-Source Framework for Equations of State and Classical Density Functional Theory}, journal = {Industrial & Engineering Chemistry Research}, volume = {62}, number = {12}, pages = {5347-5357}, year = {2023}, }