FeOs
패키지는 다양한 상태 및 Helmholtz 에너지 기능 모델과 해당 파이썬 바인딩의 녹 구현을 제공합니다.
feos.eos import import equationofstate, statefrom feos.pcsaft pcsaftparameters, pcsaftrecord# pcsaft 매개 변수 (Gross and Sadowski 2002) record = pcsaftrecord (1.5255, 3.23, 188.9, kappa_ab = 0.035176, epsilon_AB = 2899. nb = 1)# stateparameters = pcsaftparameters.from_model_records ([record]) eos = equationofstate.pcsaft (매개 변수)# 정의 된 열역학적 조건 스크린 _point = state.critical_point (EOS)# compute propertiesp = critical_pointure () t = critical_point. .TemPeraturePrint (메탄올에 대한 f'critical point : t = {t}, p = {p}. ')
Critical point for methanol: T=531.5 K, p=10.7 MPa.
다음 모델은 현재 FeOs
프레임 워크의 일부로 게시됩니다.
이름 | 설명 | EOS | DFT |
---|---|---|---|
pcsaft | 교란 된 사슬 (Polar) 통계적 연관 유체 이론 | ✓ | ✓ |
epcsaft | 전해질 PC-SAFT | ✓ | |
gc-pcsaft | (이종) 그룹 기여 PC-SAFT | ✓ | ✓ |
pets | 교란 된 잘린 끊임없이 이동했습니다. Lennard-Jones 혼합물 | ✓ | ✓ |
uvtheory | MIE 유체 및 혼합물에 대한 상태 방정식 | ✓ | |
saftvrqmie | 양자 유체 및 혼합물에 대한 상태 방정식 | ✓ | ✓ |
saftvrmie | MIE 형태의 가변 범위 상호 작용에 대한 통계 연관 유체 이론 | ✓ |
목록이 지속적으로 확장되고 있습니다. 현재 UV 이론 및 SAFT-VR MIE를위한 Helmholtz 에너지 기능의 구현이 개발 중입니다.
FeOs
프레임 워크 내에서 모델을 구현하지만 현재 feos
Python 패키지의 일부가 아닌 다른 공개 리포지토리는
이름 | 설명 | EOS | DFT |
---|---|---|---|
feos-fused-chains | 이성화 된 융합-스피어 체인 기능 | ✓ |
Rust 및 Python 패키지의 소스 코드 외에도이 저장소에는 그룹 기여 방법을 포함한 다양한 모델에 대한 이전에 게시 된 매개 변수가있는 JSON 파일이 포함되어 있습니다. 매개 변수 파일은 Rust 또는 Python에서 직접 읽을 수 있습니다.
이 상자는 일반화 된 (하이퍼) 이중 수를 사용하여 Helmholtz 에너지 상태에서 정확한 부분 파생물을 일반적으로 계산합니다. 파생 상품은 계산하는 데 사용됩니다
평형 특성 (압력, 열 용량, Fugacity 등 ),
엔트로피 스케일링 접근법을 사용한 전송 특성 (점도, 열전도율, 확산 계수)
순수한 성분 및 혼합물에 대한 임계점 및 위상 평형 .
그 외에도, 유틸리티는 분자 상태 방정식 및 (동종) 그룹 기여 방법과 순수한 구성 요소 및 이진 혼합물에 대한 위상 다이어그램 생성에 대한 매개 변수 의 처리를 지원하기 위해 제공됩니다.
FeOs
효율적인 수치 방법을 사용하여 불균일 시스템에서 밀도 프로파일을 계산합니다. 하이라이트는 다음과 같습니다.
FFT 및 관련 알고리즘을 사용하여 직교 (1D, 2D 및 3D), 극, 원통형 및 구형 좌표계에서의 컨볼 루션 적분의 빠른 계산.
일반화 된 (하이퍼) 듀얼 숫자와의 자동 차별화를 사용하여 Helmholtz 에너지 밀도 (온도 미분 포함)의 부분 파생물의 자동 계산.
분지 분자를 포함한 이종 분자의 모델링.
표면 긴장을 계산하기위한 기능, 흡착 등온선, 쌍 상관 기능 및 용매가없는 에너지.
추가 기능이 활성화되지 않으면 명령이 있습니다
cargo test --release
상자의 핵심 기능 만 구축하고 테스트합니다. 특정 모델에 대한 장치 및 통합 테스트를 실행하려면
cargo test --release --features pcsaft
예를 들어, PC-SAFT 또는 구현을 테스트하기 위해
cargo test --release --features all_models
구현 된 모든 모델에서 테스트를 실행합니다.
FeOs
PyO3
프레임 워크를 사용하여 파이썬 바인딩을 제공합니다. Python 패키지는 pip
통해 설치할 수 있으며 Windows, Linux 및 MacOS에서 실행할 수 있습니다.
pip install feos
PYPI에서 사용할 수있는 시스템 용 컴파일 패키지가없고 Rust 컴파일러가 설치된 경우 소스를 사용하여 Python 패키지를 빌드 할 수 있습니다.
pip install git+https://github.com/feos-org/feos
이 명령은 성능을 높이는 데 사용할 수있는 LTO (Link-Time Optimization)없이 패키지를 빌드합니다. LTO를 포함한 휠 건물에 대한 정보는 소스 섹션의 건물을 참조하십시오.
코드를 컴파일하려면 Rust Compiler와 maturin
(> = 0.13, <0.14)이 설치되어야합니다. 패키지를 활성 환경 (VirtualEnV 또는 Conda)에 직접 설치하려면 사용하십시오.
maturin develop --release
pyproject.toml
파일에 지정된대로 python
및 all_models
기능을 사용합니다.
또는 Python 패키지에 포함하려는 모델 또는 기능을 명시 적으로 지정할 수 있습니다.
maturin develop --release --features "python pcsaft dft"
상태 및 Helmholtz Energy 기능의 PC-SAFT 방정식.
LTO (Link-Time Optimization)를 포함한 휠을 구축하려면 사용하십시오
maturin build --profile="release-lto"
pyproject.toml
파일에 지정된 python
및 all_models
기능을 사용합니다. 다음 명령을 사용하여 특정 기능이있는 휠을 작성하십시오.
maturin build --profile="release-lto" --features "python ..."
LTO는 컴파일 시간을 측정 할 수있게 증가 시키지만 결과 휠은 더 성능이 뛰어나고 크기가 작습니다. 그러나 개발을 위해서는 --release
플래그를 사용하는 것이 좋습니다.
Python API의 문서화, Python 예제 및 기본 Rust Framework에 대한 안내서는 문서를 확인하십시오.
제공된 Rust Benchmarks 및 실행 방법에 대한 정보는 벤치 디렉토리를 확인하십시오.
이 소프트웨어는 현재 그룹 구성원이 유지 관리합니다.
Joachim Gross 교수, 열역학 및 열 프로세스 엔지니어링 연구소 (ITT)
André Bardow 교수, 에너지 및 프로세스 시스템 엔지니어링 (EPSE), ETH 취리히
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}, }