Skip to content

Lee-Kesler-Plöcker

Corresponding-states equation of state of Lee, Kesler and Plöcker: two Benedict-Webb-Rubin reference fluids interpolated with the acentric factor, for the phase equilibrium and the enthalpy of hydrocarbon mixtures and light gases.

DWSIM.Thermodynamics.PropertyPackages.LKPPropertyPackage
Assembly DWSIM.Thermodynamics.dll · Object ← PropertyPackage ← LKPPropertyPackage
Name in the flowsheet Lee-Kesler-Plöcker · FluentAPI PropertyPackages.LeeKeslerPlocker

Scope

Lee-Kesler-Plöcker (LKP) is a corresponding-states model for hydrocarbon mixtures and light gases: natural gas, gas processing, refinery light ends, and the compression, expansion and refrigeration of these streams, where the enthalpy has to be right. The DWSIM property package selection guide lists it, with Chao-Seader and Grayson-Streed, for systems with a high hydrogen content.

The mixture is represented by two reference fluids, a simple fluid (acentric factor 0) and a heavy reference fluid (n-octane, acentric factor 0.3978), each described by a Benedict-Webb-Rubin equation in reduced temperature and volume. The compressibility factor and the fugacity coefficient of the mixture are interpolated between the two fluids with the mixture acentric factor. The pseudo-critical constants of the mixture come from the mixing rules of Plöcker, Knapp and Prausnitz:

  • a pair critical volume vc,jk = (Vc,j1/3 + Vc,k1/3)3/8 and a pair critical temperature tc,jk = (Tc,j Tc,k)1/2 kjk;
  • Vcm and Tcm as double sums over the pairs, the acentric factor as the mole-fraction average, and Pcm = (0.2905 - 0.085 ωm) R Tcm / Vcm.

The binary parameter kjk multiplies the pair critical temperature, so 1 means no correction. The package ships the kij of Plöcker, Knapp and Prausnitz (1978) for the common pairs of hydrocarbons with each other and with N2, CO2, H2S, H2 and CO. A pair missing from the table takes an estimate when one compound is a hydrocarbon (or a petroleum fraction) and the other a lighter hydrocarbon, N2, CO, CO2 or H2S: kjk = 1 + 0.2802 ln(Tc2/Tc1) ln(Vc2/Vc1) - 0.0561 ln(Tc2/Tc1) for hydrocarbons, N2 and CO when Tc2/Tc1 is at least 1.3, a correlation of its own for CO2, and the CO2 value less 0.027 for H2S. They were fitted to the table (rms 0.011) and to kjk regressed from about 800 solubility points; over 180 of those points the gas solubility deviates 23.8 % on average (Peng-Robinson 27.5 %). Every other pair takes 1. The parameter editor shows the estimates, and every value can be edited or fitted with the data regression tool (default bounds 0.5 to 4); table values and values set by the user are kept.

Hydrogen. The hydrogen kij of the table go with quantum-corrected critical constants, so hydrogen enters the mixing rules with the effective constants of Gunn, Chueh and Prausnitz (1966): Tc = 43.6/(1 + 21.8/(M T)) K, Pc = 20.5/(1 + 44.2/(M T)) atm, Vc = 51.5/(1 - 9.91/(M T)) cm3/mol and ω = 0. A hydrogen pair missing from the table takes kij = 0.2036 + 0.002246 Tc + 0.8364 ω + 1.2111 Vc1/3 from the partner's constants (K, m3/kmol), fitted to the table pairs and to solubility data in n-dodecane, benzene, toluene, cyclohexane and methylcyclohexane. Values in the table or set by the user are kept. Hydrogen solubility against data:

System Data LKP
n-hexane, 344 K, 3.36 MPa 0.0286 0.0253
n-hexane, 378 K, 15.1 MPa 0.143 0.140
n-dodecane, 344 K, 5.8 MPa 0.0505 0.0499
benzene, 303 K, 4.6 MPa 0.0127 0.0134
toluene, 303 K, 4.4 MPa 0.0146 0.0128

The phase equilibrium uses the LKP fugacity coefficients of both phases. Enthalpy, entropy and heat capacities of vapor and liquid are Lee-Kesler departure functions added to the ideal-gas values, and the vapor density follows from the LKP compressibility factor. The liquid density comes from the experimental data of each compound or the Rackett and COSTALD correlations; viscosity, thermal conductivity and surface tension use the same correlations as the cubic equations of state.

DWSIM supplies analytical temperature derivatives of the fugacity coefficients for this package, which the flash and the column solvers use; the composition derivative is part analytical, part finite difference.

Limitations

  • Every compound needs Tc, Pc, Vc and ω. For polar compounds the selection guide recommends PRSV2 or an activity coefficient model such as NRTL.
  • The model is slower than a cubic equation of state, and the guide notes that it is very sensitive to the values of the interaction parameters.
  • The liquid density is a correlation, independent of the equation of state.
  • The estimates are poor for bicyclic naphthenes (methane or CO2 in decalin, solubility 50 % to more than 100 % high), for N2 and CO with aromatics (30 to 40 % low) and for H2S with C10 and heavier, where no data were available; the hydrogen estimate is not verified beyond n-dodecane.
  • The kjk do not depend on temperature.
  • A flowsheet saved after its parameter editor was opened in an earlier version stored 1 for the pairs missing from the table and keeps that value.

Example

This code runs on every build of this site, and the output below is what it printed.

def case(package):
    fs = (Flowsheet.Create("LKPExample")
          .WithCompounds("Methane", "Ethane", "Propane", "N-butane", "N-pentane")
          .WithPropertyPackage(package))
    # a rich natural gas that condenses partly at 5 C and 30 bar
    gas = (fs.AddMaterialStream("Gas")
           .At(Q.Celsius(5.0), Q.Bar(30.0))
           .SetCompoundMolarFlow("Methane", 70.0)       # mol/s
           .SetCompoundMolarFlow("Ethane", 12.0)
           .SetCompoundMolarFlow("Propane", 10.0)
           .SetCompoundMolarFlow("N-butane", 5.0)
           .SetCompoundMolarFlow("N-pentane", 3.0))
    # methane compressed isothermally from 1 to 100 bar at 25 C: the enthalpy change is
    # the residual enthalpy at 100 bar
    low = (fs.AddMaterialStream("Methane 1 bar").At(Q.Celsius(25.0), Q.Bar(1.0))
           .SetCompoundMolarFlow("Methane", 1.0))
    high = (fs.AddMaterialStream("Methane 100 bar").At(Q.Celsius(25.0), Q.Bar(100.0))
            .SetCompoundMolarFlow("Methane", 1.0))
    fs.Solve()
    g, lo, hi = gas.Object, low.Object.Phases[0].Properties, high.Object.Phases[0].Properties
    return fs, [g.Phases[2].Properties.molarfraction, g.Phases[2].Properties.density,
                g.Phases[0].Properties.enthalpy, hi.enthalpy - lo.enthalpy, hi.density]

fs, lkp = case(PropertyPackages.LeeKeslerPlocker)
_, pr = case(PropertyPackages.PengRobinson)
_, gerg = case(PropertyPackages.GERG2008)

rows = ["Vapor fraction", "Vapor density, kg/m3", "Enthalpy of the gas, kJ/kg",
        "Methane 1 to 100 bar, dh, kJ/kg", "Methane at 100 bar, kg/m3"]
print(f"{'':32}{'LKP':>9}{'PR':>9}{'GERG-2008':>11}")
for name, a, b, c in zip(rows, lkp, pr, gerg):
    print(f"{name:32}{a:9.4g}{b:9.4g}{c:11.4g}")

Output

                                      LKP       PR  GERG-2008
Vapor fraction                       0.87   0.8794     0.8739
Vapor density, kg/m3                30.79    32.03      31.37
Enthalpy of the gas, kJ/kg         -165.5   -163.8     -165.6
Methane 1 to 100 bar, dh, kJ/kg    -99.15   -109.9     -100.5
Methane at 100 bar, kg/m3           75.77    76.41      75.99

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 Lee-Kesler-Plöcker EOS
Liquid fugacity Lee-Kesler-Plöcker EOS
Vapor enthalpy, entropy, Cp/Cv Lee-Kesler-Plöcker EOS
Liquid enthalpy, entropy, Cp/Cv Lee-Kesler-Plöcker EOS
Vapor density Lee-Kesler-Plöcker EOS
Liquid density Experimental / Rackett / COSTALD
Vapor viscosity Experimental / Lucas / Jossi-Stiel-Thodos
Liquid viscosity Experimental / Letsou-Stiel
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
InteractionParameters 10 InteractionParameter entries (Compound1, Compound2, Value) kij of the pairs of the flowsheet compounds (Value), the factor on the pair pseudo-critical temperature; from the package table (lkp_ip.dat) or entered in the editor, 1 for a pair without a value
First InteractionParameter of InteractionParameters in the example
<InteractionParameter Compound1="Methane" Compound2="Ethane" Value="1.052" />
Settings common to every property package, as saved for the example
Element Value
Type DWSIM.Thermodynamics.PropertyPackages.LKPPropertyPackage
ComponentName Lee-Kesler-Plöcker
ComponentDescription
Tag Lee-Kesler-Plöcker
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

API members

Public members declared by this class. Inherited members are documented on the base classes.

Constructors

LKPPropertyPackage()
public LKPPropertyPackage()
Public Sub New()

LKPPropertyPackage(bool)
Parameter Type Description
comode Boolean
public LKPPropertyPackage(bool comode)
Public Sub New(comode As Boolean)

Properties

DisplayDescription
public override string DisplayDescription { get; }
Public Overrides ReadOnly Property DisplayDescription As String

DisplayName
public override string DisplayName { get; }
Public Overrides ReadOnly Property DisplayName As String

ImplementsAnalyticalDerivatives
public override bool ImplementsAnalyticalDerivatives { get; }
Public Overrides ReadOnly Property ImplementsAnalyticalDerivatives As Boolean

MobileCompatible
public override bool MobileCompatible { get; }
Public Overrides ReadOnly Property MobileCompatible As Boolean

Methods

AcidGasKijEstimate(bool, double, double): kij of carbon dioxide, or of hydrogen sulfide when H2S is true, with a hydrocarbon of critical temperature Tc (K)...

kij of carbon dioxide, or of hydrogen sulfide when H2S is true, with a hydrocarbon of critical temperature Tc (K) and critical volume Vc (m3/kmol), or zero when Tc is below that of carbon dioxide. With X = ln(Tc/304.21) ln(Vc/0.094): kij = 0.9276 + 0.10719 X + 0.04505 X^2 for carbon dioxide, 0.027 less for hydrogen sulfide. Carbon dioxide: fitted to the twelve hydrocarbon pairs of the table (rms 0.013) and to kij regressed from solubility data in n-C10, n-C12, n-C14, n-C16, n-C20, n-C28, toluene, m-xylene, cis-decalin and 1-methylnaphthalene (rms 0.028). Hydrogen sulfide: the offset is the mean difference to the isobutane pair of the table and to kij regressed from solubility data in propane, n-butane, n-pentane and n-heptane.

Parameter Type Description
H2S Boolean
Tc Double
Vc Double
public static double AcidGasKijEstimate(bool H2S, double Tc, double Vc)
Public Shared Function AcidGasKijEstimate(H2S As Boolean, Tc As Double, Vc As Double) As Double

AUX_VAPDENS(double, double)
Parameter Type Description
T Double
P Double
public override double AUX_VAPDENS(double T, double P)
Public Overrides Function AUX_VAPDENS(T As Double, P As Double) As Double

AUX_Z(double[], double, double, PhaseName)
Parameter Type Description
Vx Double[]
T Double
P Double
state PhaseName
public override double AUX_Z(double[] Vx, double T, double P, PhaseName state)
Public Overrides Function AUX_Z(Vx As Double(), T As Double, P As Double, state As PhaseName) As Double

ConfigParameters()
public override void ConfigParameters()
Public Overrides Sub ConfigParameters()

DisplayEditingForm()
public override void DisplayEditingForm()
Public Overrides Sub DisplayEditingForm()

DW_CalcCompPartialVolume(Phase, double, double)
Parameter Type Description
phase Phase
T Double
P Double
public override void DW_CalcCompPartialVolume(Phase phase, double T, double P)
Public Overrides Sub DW_CalcCompPartialVolume(phase As Phase, T As Double, P As Double)

DW_CalcCp_ISOL(Phase, double, double)
Parameter Type Description
Phase1 Phase
T Double
P Double
public override double DW_CalcCp_ISOL(Phase Phase1, double T, double P)
Public Overrides Function DW_CalcCp_ISOL(Phase1 As Phase, T As Double, P As Double) As Double

DW_CalcCv_ISOL(Phase, double, double)
Parameter Type Description
Phase1 Phase
T Double
P Double
public override double DW_CalcCv_ISOL(Phase Phase1, double T, double P)
Public Overrides Function DW_CalcCv_ISOL(Phase1 As Phase, T As Double, P As Double) As Double

DW_CalcdKdComposition(double[], double[], double, double, State, string): Composition (mole-number) derivative of the equilibrium K-values, d(K_i)/dn_j, with respect to the mole numbers of...

Composition (mole-number) derivative of the equilibrium K-values, d(K_i)/dn_j, with respect to the mole numbers of the phase indicated by withRespectTo (State.Liquid perturbs Vx, State.Vapor perturbs Vy), on a total-moles = 1 basis. Returns an (nc x nc) matrix. Base implementation is a finite difference; EOS/activity packages override it using the analytical d(ln phi)/dn (or d(ln gamma)/dx) building blocks.

Parameter Type Description
Vx Double[]
Vy Double[]
T Double
P Double
withRespectTo State
type String
public override double[,] DW_CalcdKdComposition(double[] Vx, double[] Vy, double T, double P, State withRespectTo, string type = "LV")
Public Overrides Function DW_CalcdKdComposition(Vx As Double(), Vy As Double(), T As Double, P As Double, withRespectTo As State, type As String = "LV") As Double(,)

DW_CalcdKdT(double[], double[], double, double, string)
Parameter Type Description
Vx Double[]
Vy Double[]
T Double
P Double
type String
public override double[] DW_CalcdKdT(double[] Vx, double[] Vy, double T, double P, string type = "LV")
Public Overrides Function DW_CalcdKdT(Vx As Double(), Vy As Double(), T As Double, P As Double, type As String = "LV") As Double()

DW_CalcdLnFugCoeffdn(double[], double, double, State): Composition (mole-number) derivative of the natural logarithm of the fugacity coefficients, d(ln phi_i)/dn_j, for...

Composition (mole-number) derivative of the natural logarithm of the fugacity coefficients, d(ln phi_i)/dn_j, for the given phase, evaluated on a total-moles = 1 basis. Returns an (nc x nc) matrix. Base implementation is a finite difference in mole numbers; EOS/activity packages override this with the closed-form partial-molar expression.

Parameter Type Description
Vx Double[]
T Double
P Double
st State
public override double[,] DW_CalcdLnFugCoeffdn(double[] Vx, double T, double P, State st)
Public Overrides Function DW_CalcdLnFugCoeffdn(Vx As Double(), T As Double, P As Double, st As State) As Double(,)

DW_CalcdLnFugCoeffdT(double[], double, double, State): Temperature derivative of the natural logarithm of the fugacity coefficients, d(ln phi_i)/dT, for the given phase.

Temperature derivative of the natural logarithm of the fugacity coefficients, d(ln phi_i)/dT, for the given phase. Base implementation is a forward finite difference; EOS/activity packages override this with a closed-form expression. Distinct from DW_CalcdFugCoeffdT, which returns d(phi)/dT (not the logarithm).

Parameter Type Description
Vx Double[]
T Double
P Double
st State
public override double[] DW_CalcdLnFugCoeffdT(double[] Vx, double T, double P, State st)
Public Overrides Function DW_CalcdLnFugCoeffdT(Vx As Double(), T As Double, P As Double, st As State) As Double()

DW_CalcEnergyFlowMistura_ISOL(double, double)
Parameter Type Description
T Double
P Double
public override double DW_CalcEnergyFlowMistura_ISOL(double T, double P)
Public Overrides Function DW_CalcEnergyFlowMistura_ISOL(T As Double, P As Double) As Double

DW_CalcEnthalpy(Array, double, double, State): Calculates the enthalpy of a mixture.

Calculates the enthalpy of a mixture.

Parameter Type Description
Vx Array Vector of doubles containing the molar composition of the mixture.
T Double Temperature (K)
P Double Pressure (Pa)
st State State enum indicating the state of the mixture (liquid or vapor).
public override double DW_CalcEnthalpy(Array Vx, double T, double P, State st)
Public Overrides Function DW_CalcEnthalpy(Vx As Array, T As Double, P As Double, st As State) As Double

DW_CalcEnthalpyDeparture(Array, double, double, State): Calculates the enthalpy departure of a mixture.

Calculates the enthalpy departure of a mixture.

Parameter Type Description
Vx Array Vector of doubles containing the molar composition of the mixture.
T Double Temperature (K)
P Double Pressure (Pa)
st State State enum indicating the state of the mixture (liquid or vapor).
public override double DW_CalcEnthalpyDeparture(Array Vx, double T, double P, State st)
Public Overrides Function DW_CalcEnthalpyDeparture(Vx As Array, T As Double, P As Double, st As State) As Double

DW_CalcEntropy(Array, double, double, State): Calculates the entropy of a mixture.

Calculates the entropy of a mixture.

Parameter Type Description
Vx Array Vector of doubles containing the molar composition of the mixture.
T Double Temperature (K)
P Double Pressure (Pa)
st State State enum indicating the state of the mixture (liquid or vapor).
public override double DW_CalcEntropy(Array Vx, double T, double P, State st)
Public Overrides Function DW_CalcEntropy(Vx As Array, T As Double, P As Double, st As State) As Double

DW_CalcEntropyDeparture(Array, double, double, State): Calculates the entropy departure of a mixture.

Calculates the entropy departure of a mixture.

Parameter Type Description
Vx Array Vector of doubles containing the molar composition of the mixture.
T Double Temperature (K)
P Double Pressure (Pa)
st State State enum indicating the state of the mixture (liquid or vapor).
public override double DW_CalcEntropyDeparture(Array Vx, double T, double P, State st)
Public Overrides Function DW_CalcEntropyDeparture(Vx As Array, T As Double, P As Double, st As State) As Double

DW_CalcFugCoeff(Array, double, double, State): Calculates fugacity coefficients for the specified composition at the specified conditions.

Calculates fugacity coefficients for the specified composition at the specified conditions.

Parameter Type Description
Vx Array Vector of doubles containing the molar composition of the mixture.
T Double Temperature in K
P Double Pressure in Pa
st State Mixture state (Liquid or Vapor)
public override double[] DW_CalcFugCoeff(Array Vx, double T, double P, State st)
Public Overrides Function DW_CalcFugCoeff(Vx As Array, T As Double, P As Double, st As State) As Double()

DW_CalcFugCoeff(double[], double, double): Calculates fugacity coefficients for the specified composition at the specified conditions.

Calculates fugacity coefficients for the specified composition at the specified conditions.

Parameter Type Description
Vz Double[] Vector of doubles containing the molar composition of the mixture.
T Double Temperature in K
V Double Volume in m3/mol
public override double[] DW_CalcFugCoeff(double[] Vz, double T, double V)
Public Overrides Function DW_CalcFugCoeff(Vz As Double(), T As Double, V As Double) As Double()

DW_CalcK_ISOL(Phase, double, double)
Parameter Type Description
Phase1 Phase
T Double
P Double
public override double DW_CalcK_ISOL(Phase Phase1, double T, double P)
Public Overrides Function DW_CalcK_ISOL(Phase1 As Phase, T As Double, P As Double) As Double

DW_CalcMassaEspecifica_ISOL(Phase, double, double, double)
Parameter Type Description
Phase1 Phase
T Double
P Double
Pvp Double
public override double DW_CalcMassaEspecifica_ISOL(Phase Phase1, double T, double P, double Pvp = 0)
Public Overrides Function DW_CalcMassaEspecifica_ISOL(Phase1 As Phase, T As Double, P As Double, Pvp As Double = 0) As Double

DW_CalcMM_ISOL(Phase, double, double)
Parameter Type Description
Phase1 Phase
T Double
P Double
public override double DW_CalcMM_ISOL(Phase Phase1, double T, double P)
Public Overrides Function DW_CalcMM_ISOL(Phase1 As Phase, T As Double, P As Double) As Double

DW_CalcOverallProps()
public override void DW_CalcOverallProps()
Public Overrides Sub DW_CalcOverallProps()

DW_CalcP(double[], double, double): Calculates system pressure for the specified temperature, volume and composition.

Calculates system pressure for the specified temperature, volume and composition.

Parameter Type Description
Vz Double[] Vector of doubles containing the molar composition of the mixture.
T Double Temperature in K
V Double Volume in m3/mol
public override double DW_CalcP(double[] Vz, double T, double V)
Public Overrides Function DW_CalcP(Vz As Double(), T As Double, V As Double) As Double

DW_CalcPhaseProps(Phase)
Parameter Type Description
Phase Phase
public override void DW_CalcPhaseProps(Phase Phase)
Public Overrides Sub DW_CalcPhaseProps(Phase As Phase)

DW_CalcProp(string, Phase): Provides a wrapper function for CAPE-OPEN CalcProp/CalcSingleProp functions.

Provides a wrapper function for CAPE-OPEN CalcProp/CalcSingleProp functions.

Parameter Type Description
property String The property to be calculated.
phase Phase The phase where the property must be calculated for.
public override void DW_CalcProp(string property, Phase phase)
Public Overrides Sub DW_CalcProp([property] As String, phase As Phase)

DW_CalcPVAP_ISOL(double)
Parameter Type Description
T Double
public override double DW_CalcPVAP_ISOL(double T)
Public Overrides Function DW_CalcPVAP_ISOL(T As Double) As Double

DW_CalcTensaoSuperficial_ISOL(Phase, double, double)
Parameter Type Description
Phase1 Phase
T Double
P Double
public override double DW_CalcTensaoSuperficial_ISOL(Phase Phase1, double T, double P)
Public Overrides Function DW_CalcTensaoSuperficial_ISOL(Phase1 As Phase, T As Double, P As Double) As Double

DW_CalcViscosidadeDinamica_ISOL(Phase, double, double)
Parameter Type Description
Phase1 Phase
T Double
P Double
public override double DW_CalcViscosidadeDinamica_ISOL(Phase Phase1, double T, double P)
Public Overrides Function DW_CalcViscosidadeDinamica_ISOL(Phase1 As Phase, T As Double, P As Double) As Double

EstimateMissingKij(ICompoundConstantProperties, ICompoundConstantProperties): kij for a pair that has no value in the interaction parameter table and none set by the user, or zero when the pair...

kij for a pair that has no value in the interaction parameter table and none set by the user, or zero when the pair keeps the default kij = 1. Hydrogen with any compound: HydrogenKijEstimate of the partner. Carbon dioxide or hydrogen sulfide with a hydrocarbon whose Tc is at least that of carbon dioxide: AcidGasKijEstimate. Two hydrocarbons (petroleum fractions included), or nitrogen or carbon monoxide with a hydrocarbon, whose critical temperatures differ by a factor of KijMinTcRatio or more: HydrocarbonKijEstimate. Closer pairs keep kij = 1.

Parameter Type Description
cp1 ICompoundConstantProperties
cp2 ICompoundConstantProperties
public static double EstimateMissingKij(ICompoundConstantProperties cp1, ICompoundConstantProperties cp2)
Public Shared Function EstimateMissingKij(cp1 As ICompoundConstantProperties, cp2 As ICompoundConstantProperties) As Double

GetEditingForm(): Returns the binary interaction parameter editor of this package.

Returns the binary interaction parameter editor of this package.

public override object GetEditingForm()
Public Overrides Function GetEditingForm() As Object

GetModel()
public override object GetModel()
Public Overrides Function GetModel() As Object

HydrocarbonKijEstimate(double, double, double, double): kij of a hydrocarbon, nitrogen or carbon monoxide (critical temperature Tc1 in K, critical volume Vc1 in m3/kmol)...

kij of a hydrocarbon, nitrogen or carbon monoxide (critical temperature Tc1 in K, critical volume Vc1 in m3/kmol) with a hydrocarbon of higher critical temperature Tc2 and critical volume Vc2: kij = 1 + 0.2802 ln(Tc2/Tc1) ln(Vc2/Vc1) - 0.0561 ln(Tc2/Tc1), or zero when Tc2/Tc1 is below KijMinTcRatio. Fitted to the 96 hydrocarbon, nitrogen and carbon monoxide pairs of the table (rms 0.011) and to kij regressed from 31 binary solubility data sets (rms 0.029): methane in n-C10 to n-C28, toluene, m-xylene, trans-decalin, naphthalene, 1-methylnaphthalene, phenanthrene and pyrene; ethane in n-C14, n-C18, n-C20 and toluene; nitrogen in n-C7 to n-C20 and benzene; carbon monoxide in n-C10 to n-C28, benzene and cyclohexane.

Parameter Type Description
Tc1 Double
Vc1 Double
Tc2 Double
Vc2 Double
public static double HydrocarbonKijEstimate(double Tc1, double Vc1, double Tc2, double Vc2)
Public Shared Function HydrocarbonKijEstimate(Tc1 As Double, Vc1 As Double, Tc2 As Double, Vc2 As Double) As Double

HydrogenEffectiveConstants(double, double): Effective critical temperature, critical pressure, critical volume and acentric factor of normal hydrogen at...

Effective critical temperature, critical pressure, critical volume and acentric factor of normal hydrogen at temperature T (K), from Gunn, Chueh and Prausnitz, AIChE J. 12 (1966) 937: Tc = 43.6/(1 + 21.8/(M T)) K, Pc = 20.5/(1 + 44.2/(M T)) atm, Vc = 51.5/(1 - 9.91/(M T)) cm3/mol, omega = 0. With these constants the hydrogen + n-hexane kij of the LKP table (Plöcker, Knapp and Prausnitz, 1978) reproduces the solubility data of Gao, Gasem and Robinson (344 to 411 K, 1 to 15 MPa) within 16 %. Returns Tc (K), Pc (Pa), Vc (m3/kmol), omega.

Parameter Type Description
T Double
MW Double
public static double[] HydrogenEffectiveConstants(double T, double MW)
Public Shared Function HydrogenEffectiveConstants(T As Double, MW As Double) As Double()

HydrogenKijEstimate(double, double, double): Hydrogen-compound kij for pairs missing from the interaction parameter table, from the partner's critical...

Hydrogen-compound kij for pairs missing from the interaction parameter table, from the partner's critical temperature Tc (K), acentric factor w and critical volume Vc (m3/kmol): kij = 0.2036 + 0.002246 Tc + 0.8364 w + 1.2111 Vc^(1/3). Fitted, with the effective hydrogen constants below, to the eleven hydrogen pairs of the table (N2, CO, CO2, CH4, C2H4, C2H6, C3H8, n-C4 to n-C7; within 2.4 %) and to kij regressed from hydrogen solubility data in n-dodecane (Gao, Gasem and Robinson, J. Chem. Eng. Data, 1999), benzene, toluene, cyclohexane and methylcyclohexane (Tsuji et al., Fluid Phase Equilib. 228-229 (2005) 499; Aslam et al., J. Chem. Eng. Data 61 (2016), doi 10.1021/acs.jced.5b00789).

Parameter Type Description
Tc Double
w Double
Vc Double
public static double HydrogenKijEstimate(double Tc, double w, double Vc)
Public Shared Function HydrogenKijEstimate(Tc As Double, w As Double, Vc As Double) As Double

RET_KIJ(string, string)
Parameter Type Description
id1 String
id2 String
public double RET_KIJ(string id1, string id2)
Public Function RET_KIJ(id1 As String, id2 As String) As Double

RET_VKij()
public override double[,] RET_VKij()
Public Overrides Function RET_VKij() As Double(,)

SupportsComponent(ICompoundConstantProperties)
Parameter Type Description
comp ICompoundConstantProperties
public override bool SupportsComponent(ICompoundConstantProperties comp)
Public Overrides Function SupportsComponent(comp As ICompoundConstantProperties) As Boolean

Fields

ClassId
public const string ClassId = "DF7C2420-1FBB-4b35-9D87-6ECF530FED7A"
Public Const ClassId As String = "DF7C2420-1FBB-4b35-9D87-6ECF530FED7A"

ip_changed
public bool ip_changed
Public ip_changed As Boolean

KijMinTcRatio: Smallest ratio of critical temperatures for which HydrocarbonKijEstimate applies.

Smallest ratio of critical temperatures for which HydrocarbonKijEstimate applies. Below it the table pairs scatter around kij = 1 by about 0.02 and the pair keeps kij = 1.

public const double KijMinTcRatio = 1.3
Public Const KijMinTcRatio As Double = 1.3

m_lk
public LeeKeslerPlocker m_lk
Public m_lk As LeeKeslerPlocker

m_pr
public PengRobinson m_pr
Public m_pr As PengRobinson

MAT_KIJ
public object[,] MAT_KIJ
Public MAT_KIJ As Object(,)