Skip to content
Snippets Groups Projects
Commit 8438793e authored by Ian Bell's avatar Ian Bell
Browse files

Add max_rhoN for PC-SAFT

parent 0db819a9
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id:f406bbb5 tags: %% Cell type:markdown id:f406bbb5 tags:
# PC-SAFT # PC-SAFT
The PC-SAFT implementation in teqp is based on the implementation of Gross and Sadowski (https://doi.org/10.1021/ie0003887), with the typo from their paper fixed. It does NOT include the association contribution, only the dispersive contributions. The PC-SAFT implementation in teqp is based on the implementation of Gross and Sadowski (https://doi.org/10.1021/ie0003887), with the typo from their paper fixed. It does NOT include the association contribution, only the dispersive contributions.
The model in teqp requires the user to specify the values of ``sigma``, ``epsilon/kB``, and ``m`` for each substance. A very few substances are hardcoded in teqp, for testing purposes. The model in teqp requires the user to specify the values of ``sigma``, ``epsilon/kB``, and ``m`` for each substance. A very few substances are hardcoded in teqp, for testing purposes.
%% Cell type:raw id:d9efd027 tags: %% Cell type:raw id:d9efd027 tags:
The Python class is here: :py:class:`PCSAFTEOS <teqp.teqp.PCSAFTEOS>` The Python class is here: :py:class:`PCSAFTEOS <teqp.teqp.PCSAFTEOS>`
%% Cell type:code id:7bbd7129 tags: %% Cell type:code id:984925ce tags:
``` python ``` python
import teqp import teqp
import numpy as np
teqp.__version__
```
%% Cell type:code id:7bbd7129 tags:
``` python
TeXkey = 'Gross-IECR-2001' TeXkey = 'Gross-IECR-2001'
ms = [1.0, 1.6069, 2.0020] ms = [1.0, 1.6069, 2.0020]
eoverk = [150.03, 191.42, 208.11] eoverk = [150.03, 191.42, 208.11]
sigmas = [3.7039, 3.5206, 3.6184] sigmas = [3.7039, 3.5206, 3.6184]
coeffs = [] coeffs = []
for i in range(len(ms)): for i in range(len(ms)):
c = teqp.SAFTCoeffs() c = teqp.SAFTCoeffs()
c.m = ms[i] c.m = ms[i]
c.epsilon_over_k = eoverk[i] c.epsilon_over_k = eoverk[i]
c.sigma_Angstrom = sigmas[i] c.sigma_Angstrom = sigmas[i]
coeffs.append(c) coeffs.append(c)
model = teqp.PCSAFTEOS(coeffs) model = teqp.PCSAFTEOS(coeffs)
``` ```
%% Cell type:markdown id:578630c8 tags: %% Cell type:markdown id:578630c8 tags:
The model parameters can be queried: The model parameters can be queried:
%% Cell type:code id:d4e47e54 tags: %% Cell type:code id:d4e47e54 tags:
``` python ``` python
model.get_m(), model.get_epsilon_over_k_K(), model.get_sigma_Angstrom() model.get_m(), model.get_epsilon_over_k_K(), model.get_sigma_Angstrom()
``` ```
%% Output
(array([1. , 1.6069, 2.002 ]),
array([150.03, 191.42, 208.11]),
array([3.7039, 3.5206, 3.6184]))
%% Cell type:markdown id:5cbb382d tags: %% Cell type:markdown id:5cbb382d tags:
## Adjusting k_ij ## Adjusting k_ij
Fine-tuned values of $k_{ij}$ can be provided when instantiating the model. A complete matrix of all the $k_{ij}$ values must be provided. This allows for asymmetric mixing models in which $k_{ij}\neq k_{ji}$. Fine-tuned values of $k_{ij}$ can be provided when instantiating the model. A complete matrix of all the $k_{ij}$ values must be provided. This allows for asymmetric mixing models in which $k_{ij}\neq k_{ji}$.
%% Cell type:code id:a32c41b5 tags: %% Cell type:code id:a32c41b5 tags:
``` python ``` python
k_01 = 0.01; k_10 = k_01 k_01 = 0.01; k_10 = k_01
kmat = [[0,k_01,0],[k_10,0,0],[0,0,0]] kmat = [[0,k_01,0],[k_10,0,0],[0,0,0]]
teqp.PCSAFTEOS(coeffs, kmat) teqp.PCSAFTEOS(coeffs, kmat)
``` ```
%% Output
<teqp.teqp.PCSAFTEOS at 0x26ec5dde870>
%% Cell type:markdown id:ca52e844 tags: %% Cell type:markdown id:ca52e844 tags:
## Superancillary ## Superancillary
The superancillary equation for PC-SAFT has been developed, and is much more involved than that of the cubic EOS. As a consequence, the superancillary equation has been provided as a separate package rather than integrating it into to teqp to minimize the computational overhead. It can be installed from PYPI with: ``pip install PCSAFTsuperanc`` The superancillary equation for PC-SAFT has been developed, and is much more involved than that of the cubic EOS. As a consequence, the superancillary equation has been provided as a separate package rather than integrating it into to teqp to minimize the binary size of teqp. It can be installed from PYPI with: ``pip install PCSAFTsuperanc``
%% Cell type:markdown id:0bdf568f tags:
## Maximum density
The maximum number density allowed by the EOS is defined based on the packing fraction. To get a molar density, divide by Avogadro's number. The function is conveniently exposed in Python:
%% Cell type:code id:3c8491a9 tags:
``` python
max_rhoN = teqp.PCSAFTEOS(coeffs).max_rhoN(130.0, np.array([0.3, 0.3, 0.4]))
display(max_rhoN)
max_rhoN/6.022e23 # the maximum molar density in mol/m^3
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment