O pacote FeOs
fornece implementações de ferrugem de diferentes equações de estado e modelos funcionais de energia de Helmholtz e ligações correspondentes do Python.
de feos.eos Importar equação de estados, estados de feos.pcsaft Importar PCSAftParameters, parâmetros pcSaftrecord# PC-SAFT para metanol (Gross e Sadowski 2002) registro = PCSAFTRECORD (1,5255, 3,23, 188.9, Kappa_Ab = 0.03517, nb = 1)# Construa uma equação de estados parameters = pcSaftParameters.from_model_records ([registro]) eos = equaçãofstate.pcSaft (parâmetros)# define propriedadespitiespspspspritical_point = state.critical_point (eos)# compute Propriedadesp = Critical_point.point.point.critical.critical_point)# compute .TemperaturePrint (ponto f'crítico para metanol: t = {t}, p = {p}. ')
Critical point for methanol: T=531.5 K, p=10.7 MPa.
Os modelos a seguir são publicados como parte da estrutura FeOs
nome | descrição | EOS | dft |
---|---|---|---|
pcsaft | Perturbada Chain (Polar) Associação Estatística Teoria dos Fluidos | ✓ | ✓ |
epcsaft | eletrólito PC-SAFT | ✓ | |
gc-pcsaft | Contribuição do grupo (heterossegmentada) PC-Saft | ✓ | ✓ |
pets | misturas de Lennard-Jones perturbadas e truncadas | ✓ | ✓ |
uvtheory | equação de estado para líquidos e misturas | ✓ | |
saftvrqmie | Equação de estado para fluidos quânticos e misturas | ✓ | ✓ |
saftvrmie | Teoria do fluido de associação estatística para interações variáveis de faixa de mie | ✓ |
A lista está sendo expandida continuamente. Atualmente em desenvolvimento estão as implementações dos funcionais energéticos de Helmholtz para a teoria UV e para o SAFT-VR MIE.
Outros repositórios públicos que implementam modelos na estrutura FeOs
, mas atualmente não fazem parte do pacote feos
Python, são
nome | descrição | EOS | dft |
---|---|---|---|
feos-fused-chains | Cadeia de esfera fusada heterossegada funcional | ✓ |
Além do código -fonte dos pacotes Rust e Python, esse repositório contém arquivos JSON com parâmetros publicados anteriormente para os diferentes modelos, incluindo métodos de contribuição de grupo. Os arquivos do parâmetro podem ser lidos diretamente da Rust ou Python.
A caixa faz uso de números duplos generalizados (hiper) para calcular genericamente derivados parciais exatos das equações de energia de helmholtz. Os derivados são usados para calcular
propriedades de equilíbrio (pressão, capacidade de calor, fugacidade e muito mais),
Propriedades de transporte (viscosidade, condutividade térmica, coeficientes de difusão) usando a abordagem de escala de entropia
Pontos críticos e equilíbrios de fase para componentes e misturas puras.
Além disso, são fornecidos utilidades para ajudar no manuseio de parâmetros para os métodos de contribuição do grupo de estado e (homossegamos) e para a geração de diagramas de fase para componentes puros e misturas binárias.
FeOs
usa métodos numéricos eficientes para calcular perfis de densidade em sistemas não homogêneos. Os destaques incluem:
Cálculo rápido das integrais da convolução nos sistemas de coordenadas cartesianas (1D, 2D e 3D), polar, cilíndricas e esféricas usando algoritmos de FFT e relacionados.
Cálculo automático de derivados parciais de densidades de energia de Helmholtz (incluindo derivados de temperatura) usando diferenciação automática com números duplos generalizados (hiper-).
Modelagem de moléculas heterossegadas, incluindo moléculas ramificadas.
Funcionalidades para calcular tensões de superfície, isotermas de adsorção, funções de correlação de pares e energias livres de solvatação.
Sem recursos adicionais ativados, o comando
cargo test --release
só construirá e testará as funcionalidades principais da caixa. Para executar testes de unidade e integração para modelos específicos, execute
cargo test --release --features pcsaft
Para testar, por exemplo, a implementação de PC-Saft ou
cargo test --release --features all_models
Para executar testes em todos os modelos implementados.
FeOs
usa a estrutura PyO3
para fornecer ligações em Python. O pacote Python pode ser instalado via pip
e é executado no Windows, Linux e MacOS:
pip install feos
Se não houver pacote compilado para o seu sistema disponível na Pypi e você ter um compilador de ferrugem instalado, você poderá criar o pacote Python a partir da fonte usando
pip install git+https://github.com/feos-org/feos
Este comando cria o pacote sem otimização de tempo de ligação (LTO) que pode ser usado para aumentar ainda mais o desempenho. Consulte o edifício da seção de origem para obter informações sobre a construção da roda, incluindo a LTO.
Para compilar o código, você precisa do compilador de ferrugem e maturin
(> = 0,13, <0,14) instalados. Para instalar o pacote diretamente no ambiente ativo (virtualenv ou conda), use
maturin develop --release
que usa o aparelho python
e all_models
, conforme especificado no arquivo pyproject.toml
.
Como alternativa, você pode especificar os modelos ou recursos que deseja incluir no pacote Python explicitamente, por exemplo
maturin develop --release --features "python pcsaft dft"
Para a equação de PC-Saft de estado e helmholtz energia funcional.
Para construir rodas, incluindo otimização de tempo de ligação (LTO), use
maturin build --profile="release-lto"
que usarão os recursos python
e all_models
especificados no arquivo pyproject.toml
. Use o comando a seguir para construir uma roda com recursos específicos:
maturin build --profile="release-lto" --features "python ..."
O LTO aumenta os tempos de compilação de forma mensurável, mas a roda resultante é mais executiva e tem um tamanho menor. Para o desenvolvimento, no entanto, recomendamos o uso do sinalizador --release
.
Para uma documentação da API Python, exemplos de Python e um guia para a estrutura de ferrugem subjacente, consulte a documentação.
Confira o diretório de bancos para obter informações sobre os benchmarks de ferrugem e como executá -los.
Atualmente, este software é mantido por membros dos grupos de
Joachim Gross, Instituto de Termodinâmica e Engenharia de Processos Térmicos (ITT), Universidade de Stuttgart
André Bardow, Engenharia de Sistemas de Energia e Processo (EPSE), ETH Zurique
FeOs
cresceu a partir da necessidade de manter uma base de código comum usada no trabalho científico realizado em nossos grupos. Compartilhamos o código publicamente como uma plataforma para publicar nossa própria pesquisa, mas também incentivamos outros pesquisadores e desenvolvedores a contribuir com seus próprios modelos ou implementações das equações de estado existentes.
Se você deseja contribuir com FeOs
, existem várias maneiras de percorrer: melhorar a documentação e ajudar nos problemas de idiomas, testando o código em seus sistemas para encontrar bugs, adicionar novos modelos ou algoritmos ou fornecer solicitações de recursos. Sinta -se à vontade para nos enviar uma mensagem se tiver dúvidas ou abrir um problema para discutir melhorias.
Se você achar FeOs
útil para seus próprios estudos científicos, considere citar nossa publicação que acompanha esta biblioteca.
@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}, }