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.03621464431768

# 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