PC-SAFT Equations of State#

Introduction#

CoolProp (as of version 6.4) includes the PC-SAFT equation of state. The PC-SAFT equation of state was originally proposed in 2001 by Gross and Sadowski <>. In addition to the hard chain and dispersion terms, the PC-SAFT backend in CoolProp also includes terms for associating, polar, and electrolyte compounds. For the polar term the formulation given by Gross and Vrabec (2006) <> was used, and this is sometimes called PCP-SAFT. For electrolyte compounds the equations presented by Held et al. (2014) <> were used, and this version of the equation of state is sometimes called electrolyte PC-SAFT (ePC-SAFT).

Caveats#

Warning

NOT ALL PROPERTIES ARE AVAILABLE AS INPUTS/OUTPUTS

Only a limited subset of properties are available currently. You can do:

  • Flash calculations with TP, PQ, DT, QT inputs

  • Calculation of some mixture flashes

Warning

The flash algorithm for the PC-SAFT backend is not yet as robust as for other backends. For some conditions it may fail to find the correct solution.

Pure Fluids#

Usage#

Similar to other backends in CoolProp, in the high-level interface, all that you have to do to evaluate properties using the PC-SAFT equation of state is to change the backend name.

In [1]: import CoolProp.CoolProp as CP

# The multi-parameter Helmholtz backend
In [2]: CP.PropsSI("T","P",101325,"Q",0,"HEOS::Propane")
Out[2]: 231.03621464432237

# PC-SAFT
In [3]: CP.PropsSI("T","P",101325,"Q",0,"PCSAFT::PROPANE")
Out[3]: 231.013410993139

The same holds for the low-level interface:

In [4]: import CoolProp.CoolProp as CP

In [5]: AS = CP.AbstractState("PCSAFT", "PROPANE"); AS.update(CP.QT_INPUTS, 0, 300); print(AS.p())
998660.8980885717

The PC-SAFT equation of state is available for more than 100 fluids for which parameter were available in the literature.

Mixtures#

Interaction Parameters#

For mixtures, PC-SAFT generally uses a binary interaction parameter between pairs of fluids. CoolProp does have some of these parameters for the PC-SAFT EOS, and it is possible to add more yourself.

In [6]: import CoolProp.CoolProp as CP

In [7]: CAS_water = CP.get_fluid_param_string("WATER","CAS")

In [8]: CAS_aacid = "64-19-7"

In [9]: CP.set_mixture_binary_pair_pcsaft(CAS_water, CAS_aacid, "kij", -0.127)

In [10]: T = CP.PropsSI("T", "P", 72915.92217342, "Q", 0, "PCSAFT::WATER[0.2691800943]&ACETIC ACID[0.7308199057]")

In [11]: print(T)
372.7739698857082