Ionic Liquids (PC-SAFT)¶
DWSIM Plus
Available with a DWSIM Plus (Patreon) subscription.
PC-SAFT for ionic liquids used as physical solvents (no chemical reaction with the solute). Each ionic liquid is a neutral ion pair with two association sites (2B). The package is the open PC-SAFT package with two embedded tables added on top of pcsaft.dat and pcsaft_ip.dat: il_pcsaft.dat (pure-component parameters of the ionic liquids, plus H2) and il_pcsaft_ip.dat (binary parameters with CO2, CH4, N2, H2, H2S and water, kij(T) = kij + kij_T (T - 298.15 K)). The ionic liquid compounds themselves are the JSON files the package ships in addcomps.
DWSIM.Extensions.PropertyPackages.IonicLiquids.IonicLiquidsPropertyPackage
Assembly DWSIM.Extensions.PropertyPackages.IonicLiquids.dll · Object ← PropertyPackage ← PCSAFT2PropertyPackage ← IonicLiquidsPropertyPackage
Name in the flowsheet Ionic Liquids (PC-SAFT) · FluentAPI PropertyPackages.Plus.IonicLiquids
Scope¶
The package describes ionic liquids used as physical solvents for CO2, H2S,
CH4, N2, H2 and water: CO2 removal from natural gas, syngas
or biogas, where the gas dissolves in the liquid without reacting and is released again by lowering the
pressure or by mild heating. It is the PC-SAFT package with two parameter tables of its
own (il_pcsaft.dat for the pure compounds, il_pcsaft_ip.dat for the pairs) and a viscosity rule for
phases that hold an ionic liquid. The equation of state, the flash and the caloric properties are those
of the PC-SAFT package.
Each ionic liquid is one neutral compound, the ion pair, with two association sites (scheme 2B). The association energy and volume are the same for all of them, εAB/k = 3134 K and κAB = 0.026; the segment number, diameter and dispersion energy were fitted to the NIST ILThermo liquid densities over temperature and pressure. The package also supplies PC-SAFT parameters for H2, which the general PC-SAFT table lacks.
Ionic liquids shipped (29, one compound file each in the addcomps folder, listed with the other
compounds):
| Family | Ionic liquids |
|---|---|
| Tetrafluoroborates | [emim], [bmim], [hmim], [omim][BF4] |
| Hexafluorophosphates | [bmim], [hmim], [omim][PF6] |
| Bis(trifluoromethylsulfonyl)imides | [emim], [bmim], [hmim], [omim], [dmim], [bmpyrr], [N4111], [P66614][Tf2N] |
| Trifluoromethanesulfonates | [emim], [bmim], [hmim][OTf] |
| Acetates | [emim], [bmim][Ac] |
| Dicyanamides, thiocyanates, tricyanomethanides | [emim] and [bmim] with [DCA], [SCN], [TCM] |
| Others | [emim][EtSO4], [bmim][MeSO4], [P66614][Cl] |
Binary parameters. kij(T) = kij + kij,T (T - 298.15 K), fitted for each ionic liquid with CO2, CH4, N2, H2, H2S and water to the ILThermo gas solubilities, Henry constants and water vapor-liquid data. A CH4, N2, H2 or H2S pair without data takes the median of the fitted pairs of the same gas; a CO2 or water pair without data has kij = 0. Water cross-associates with the ionic liquid.
Viscosity. A liquid phase that holds an ionic liquid (a shipped one, or a compound tagged
Ionic liquid) takes a logarithmic blend of the compound viscosities weighted by mass fraction, so a
few percent of dissolved gas lowers the solvent viscosity about as much as measured. Phases without an
ionic liquid use the rule of the PC-SAFT package.
Accuracy against ILThermo. Liquid density within 0.5 % on average, viscosity 4.3 % (median), heat capacity 1.1 %. CO2 solubility 9.5 % (median) on the data fitted and 16 % on the data held out; H2S and H2 within a few percent, CH4 and N2 within about 6 to 14 %. The heat of absorption of CO2 agrees with the Henry-constant data within 1 to 2 kJ/mol for most ionic liquids.
Limitations¶
- Physical absorption only: the chemical absorption of CO2 and H2S by the acetates is not represented, and their predicted solubilities of these two gases are far below the measured ones.
- Between the vapor pressure and the critical temperature of CO2, the CO2-rich phase is a dense liquid that the vapor-liquid flash reports as the vapor. Above about 190 bar the model may give a single phase.
- Liquid-liquid equilibrium of water with the hydrophobic ionic liquids is not fitted.
- Keep regeneration below about 150 °C: the long-term stability of ionic liquids lies 100 to 150 K below the decomposition onset measured by thermogravimetry.
Adding an ionic liquid¶
Copy one of the IL_*.json compound files, give it a name and a CAS number of its own (the package finds
every parameter by CAS number), keep the tag Ionic liquid, and import it into the simulation. Then enter
m, σ, ε/k and the association parameters in the package editor (the shipped values
κAB = 0.026 and εAB/k = 3134 K are a consistent choice), and
kij, kij,T for each pair. These parameters are saved with the flowsheet
(CompoundParameters and InteractionParameters below); the tables of the package are not edited.
Example¶
This code runs on every build of this site, and the output below is what it printed.
IL = "1-butyl-3-methylimidazolium bis(trifluoromethylsulfonyl)imide" # [bmim][Tf2N]
fs = (Flowsheet.Create("IonicLiquidExample")
.WithCompounds("Carbon dioxide", IL)
.WithPropertyPackage(PropertyPackages.Plus.IonicLiquids))
# 1 mol/s of CO2 over 1 mol/s of ionic liquid: more CO2 than the liquid takes up at 30 bar,
# so the flash leaves a CO2 vapor in equilibrium with the loaded solvent
loaded = (fs.AddMaterialStream("CO2 + IL")
.At(Q.Kelvin(313.15), Q.Bar(30.0))
.SetCompoundMolarFlow("Carbon dioxide", 1.0)
.SetCompoundMolarFlow(IL, 1.0))
# the solvent alone, for comparison
pure = (fs.AddMaterialStream("IL")
.At(Q.Kelvin(313.15), Q.Bar(30.0))
.SetCompoundMolarFlow(IL, 1.0))
fs.Solve()
s = loaded.Object
liquid, vapor = s.Phases[3], s.Phases[2] # liquid phase 1 holds the ionic liquid
solvent = pure.Object.Phases[3]
print(f"Vapor fraction = {vapor.Properties.molarfraction:.4f}")
print(f"CO2 in the liquid = {liquid.Compounds['Carbon dioxide'].MoleFraction:.4f} (mole fraction)")
print(f"IL in the vapor = {vapor.Compounds[IL].MoleFraction:.1e} (mole fraction)")
print(f"Liquid density = {liquid.Properties.density:.1f} kg/m3 (solvent alone {solvent.Properties.density:.1f})")
print(f"Liquid viscosity = {liquid.Properties.viscosity * 1000.0:.1f} mPa s (solvent alone {solvent.Properties.viscosity * 1000.0:.1f})")
Output
Vapor fraction = 0.0766
CO2 in the liquid = 0.4585 (mole fraction)
IL in the vapor = 1.7e-12 (mole fraction)
Liquid density = 1371.7 kg/m3 (solvent alone 1419.8)
Liquid viscosity = 16.9 mPa s (solvent alone 28.6)
DWSIM 10.2.11.0, generated 2026-10-08.
Property methods¶
How the package calculates each property, as it reports it in PropertyMethodsInfo (the property package editor shows the same list).
| Property | Method |
|---|---|
| Vapor fugacity | PC-SAFT EOS |
| Liquid fugacity | PC-SAFT EOS |
| Vapor enthalpy, entropy, Cp/Cv | PC-SAFT EOS |
| Liquid enthalpy, entropy, Cp/Cv | PC-SAFT EOS |
| Vapor density | PC-SAFT EOS |
| Liquid density | PC-SAFT EOS |
| Vapor viscosity | Experimental / Lucas / Jossi-Stiel-Thodos |
| Liquid viscosity | Experimental / mass-fraction logarithmic blend for phases with an ionic liquid |
| Vapor thermal conductivity | Experimental / Ely-Hanley |
| Liquid thermal conductivity | Experimental / Latini |
| Surface tension | Experimental / Brock-Bird |
| Solid density | Experimental Data / User-Defined |
| Solid enthalpy, entropy, Cp/Cv | Experimental Solid Cp / From Liquid Phase Enthalpy + Enthalpy of Fusion |
Default flash algorithm: Universal.
Configuration saved with the flowsheet¶
The package writes its settings to the simulation file (SaveData) and reads them back on load (LoadData). The elements below are the ones this package adds to those of every property package, as written for the example.
| Element | Content in the example | What it holds |
|---|---|---|
UseLeeKeslerEnthalpy |
true |
Lee-Kesler enthalpy and entropy when the mixture has no associating compound or polymer; ionic liquids associate, so with one in the flowsheet the PC-SAFT departure functions are used |
UseLeeKeslerCpCv |
true |
The same switch for Cp and Cv |
InteractionParameters |
1 InteractionParameter entry (Compound1, Compound2, CAS1, CAS2, Value, ValueT) |
kij (Value) and kij,T (ValueT, 1/K) of the pairs of the flowsheet compounds, from the package tables or entered in the editor |
CompoundParameters |
2 CompoundParameterSet entries (Compound, CAS_ID, MW, m, sigma, epsilon_k, assocparam, kAiBi, epsilon_AiBi, m_over_M, scheme, copolymer, coseq) |
PC-SAFT parameters of the flowsheet compounds (m, σ in Å, ε/k in K, association volume kAiBi and energy epsilon_AiBi) |
First InteractionParameter of InteractionParameters in the example
First CompoundParameterSet of CompoundParameters in the example
Settings common to every property package, as saved for the example
| Element | Value |
|---|---|
Type |
74 characters |
ComponentName |
Ionic Liquids (PC-SAFT) |
ComponentDescription |
120 characters |
Tag |
Ionic Liquids (PC-SAFT) |
UseHenryConstants |
true |
AutoEstimateMissingNRTLUNIQUACParameters |
true |
UseImmiscibleListForLiquid2InitialEstimates |
true |
SingleCompoundCheckThreshold |
0.99999 |
OverrideKvalFugCoeff |
false |
OverrideEnthalpyCalculation |
false |
OverrideEntropyCalculation |
false |
LiquidDensityCalculationMode_Subcritical |
Rackett_and_ExpData |
LiquidDensityCalculationMode_Supercritical |
Rackett_and_ExpData |
LiquidDensity_CorrectExpDataForPressure |
true |
LiquidDensity_UsePenelouxVolumeTranslation |
true |
LiquidViscosityCalculationMode_Subcritical |
ExpData |
LiquidViscosityCalculationMode_Supercritical |
Letsou_Stiel |
LiquidViscosity_CorrectExpDataForPressure |
true |
LiquidViscosity_MixingRule |
MoleAverage |
VaporPhaseFugacityCalculationMode |
Ideal |
SolidPhaseFugacityCalculationMethod |
FromLiquidFugacity |
SolidPhaseFugacity_UseIdealLiquidPhaseFugacity |
false |
SolidPhaseEnthalpy_UsesCp |
false |
EnthalpyEntropyCpCvCalculationMode |
LeeKesler |
LiquidEnthalpyEntropyCpCvCalculationMode_EOS |
EOS |
LiquidFugacity_UsePoyntingCorrectionFactor |
true |
ActivityCoefficientModels_IgnoreMissingInteractionParameters |
false |
IgnoreVaporFractionLimit |
false |
IgnoreSalinityLimit |
false |
CalculateAdditionalMaterialStreamProperties |
true |
FlashCalculationApproach |
NestedLoops |
DisplayMissingCompoundPropertiesWarning |
false |
ForcedSolids |
[] |
PropertyOverrides |
{} |
FlashSettings |
36 Setting entries |
Learn more¶
-
User guide
- PC-SAFT for Polymers
- Ionic Liquids (PC-SAFT) (PDF user guide, chapter Specialized Models / Property Packages)
-
Used with
API members¶
Public members declared by this class. Inherited members are documented on the base classes.
Constructors¶
Methods¶
AUX_LIQVISCm(double, double, int): Liquid viscosity of a phase that holds an ionic liquid: logarithmic blend weighted by mass fraction.
Liquid viscosity of a phase that holds an ionic liquid: logarithmic blend weighted by mass fraction. The base rule weights by mole fraction, which lets a few percent of dissolved gas (light, low viscosity, but a large mole fraction) cut the viscosity of the solvent far more than measured. Phases without an ionic liquid use the base rule.
| Parameter | Type | Description |
|---|---|---|
T |
Double |
|
P |
Double |
|
phaseid |
Int32 |
Clone()
IsIonicLiquid(ICompoundConstantProperties): True for an ionic liquid of the package, or a compound tagged as one by the user.
True for an ionic liquid of the package, or a compound tagged as one by the user.
| Parameter | Type | Description |
|---|---|---|
cp |
ICompoundConstantProperties |
IsIonicLiquid(string): True when the CAS number is one of the ionic liquids of the package.
True when the CAS number is one of the ionic liquids of the package.
| Parameter | Type | Description |
|---|---|---|
cas |
String |
ReturnInstance(string)
| Parameter | Type | Description |
|---|---|---|
typename |
String |
SaveData()
Fields¶
ClassId
IonicLiquidTag: The tag that marks a user-defined compound as an ionic liquid (the shipped compounds carry it too).
The tag that marks a user-defined compound as an ionic liquid (the shipped compounds carry it too).