PC-SAFT Implementation (Gross & Sadowski, 2001) Approach: Hard Chain + Dispersion (Placeholder)
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=pr), | private, | dimension(0:2, 0:6) | :: | A_COEFFS | = | reshape([0.9105631445, -0.3084016918, -0.0906148351, 0.6361281449, 0.1860531159, 0.4527842806, 2.6861347891, -2.5030047259, 0.5962700728, -26.547362491, 21.419793629, -1.7241829131, 97.759208784, -65.255885330, -4.1302112531, -159.59154087, 83.318680481, 13.776631870, 91.297774084, -33.746922930, -8.6728470368], [3, 7]) | |
| real(kind=pr), | private, | dimension(0:2, 0:6) | :: | B_COEFFS | = | reshape([0.7240946941, -0.5755498075, 0.0976883116, 2.2382791861, 0.6995095521, -0.2557574982, -4.0025849485, 3.8925673390, -9.1558561530, -21.003576815, -17.215471648, 20.642075974, 26.855641363, 192.67226447, -38.804430052, 206.55133841, -161.82646165, 93.626774077, -355.60235612, -165.20769346, -29.666905585], [3, 7]) | |
| real(kind=pr), | private, | parameter | :: | N_AVO | = | 6.02214076e23_pr | |
| real(kind=pr), | private, | parameter | :: | PI | = | 3.14159265359_pr | |
| real(kind=pr), | private, | parameter | :: | UNITS_FACTOR | = | 0.000602214086_pr |
PC-SAFT Equation of State Model
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(Substances), | public | :: | components |
Substances contained in the module |
|||
| real(kind=pr), | public, | allocatable | :: | eps_assoc(:) |
Association energy [K] |
||
| real(kind=pr), | public, | allocatable | :: | epsilon_k(:) |
Energy / k_B [K] |
||
| real(kind=pr), | public, | allocatable | :: | kap_assoc(:) |
Association volume [A^3] |
||
| real(kind=pr), | public, | allocatable | :: | kij(:,:) |
Binary interaction parameters (optional) |
||
| real(kind=pr), | public, | allocatable | :: | m(:) |
Number of segments |
||
| real(kind=pr), | public, | allocatable | :: | n_sites(:) |
Number of association sites |
||
| character(len=:), | public, | allocatable | :: | name |
Name of the model |
||
| real(kind=pr), | public, | allocatable | :: | sigma(:) |
Segment diameter [Angstrom] |
| procedure, public :: Ar => Ar_impl | |
| procedure, public :: Cp_residual_vt | |
| procedure, public :: Cv_residual_vt | |
| procedure, public :: Psat_pure | |
| procedure, public :: enthalpy_residual_vt | |
| procedure, public :: entropy_residual_vt | |
| procedure, public :: get_v0 => get_v0_impl | |
| procedure, public :: gibbs_residual_vt | |
| procedure, public :: internal_energy_residual_vt | |
| procedure, public :: lnfug_vt | |
| procedure, public :: lnphi_pt | |
| procedure, public :: lnphi_vt | |
| procedure, public :: pressure | |
| procedure, public :: residual_helmholtz | |
| procedure, public :: volume |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=pr), | intent(in) | :: | m(:) | |||
| real(kind=pr), | intent(in) | :: | sigma(:) | |||
| real(kind=pr), | intent(in) | :: | epsilon_k(:) | |||
| real(kind=pr), | intent(in), | optional | :: | kij(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(hyperdual), | intent(in) | :: | n(:) | |||
| type(hyperdual), | intent(in) | :: | V | |||
| type(hyperdual), | intent(in) | :: | T | |||
| type(hyperdual), | intent(in) | :: | zeta(0:3) | |||
| type(hyperdual), | intent(in) | :: | d(:) | |||
| real(kind=pr), | intent(in) | :: | m(:) | |||
| real(kind=pr), | intent(in) | :: | eps_assoc(:) | |||
| real(kind=pr), | intent(in) | :: | kap_assoc(:) | |||
| real(kind=pr), | intent(in) | :: | n_sites(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(hyperdual), | intent(in) | :: | n(:) | |||
| type(hyperdual), | intent(in) | :: | V | |||
| type(hyperdual), | intent(in) | :: | T | |||
| type(hyperdual), | intent(in) | :: | zeta(0:3) | |||
| real(kind=pr), | intent(in) | :: | m(:) | |||
| real(kind=pr), | intent(in) | :: | eps_k(:) | |||
| real(kind=pr), | intent(in) | :: | sig(:) | |||
| real(kind=pr), | intent(in), | optional | :: | kij(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(PcSaft), | intent(in) | :: | self | |||
| real(kind=pr), | intent(in) | :: | n(:) | |||
| real(kind=pr), | intent(in) | :: | P | |||
| real(kind=pr), | intent(in) | :: | T |