Skip to content

CO2 Capture (eNRTL)

DWSIM Plus

Available with a DWSIM Plus (Patreon) subscription.

Electrolyte NRTL property package for CO2 capture in aqueous MEA, DEA, MDEA, piperazine and MDEA with piperazine. The flash works on the apparent compounds (water, the amine, CO2 and other gases); every liquid is speciated into its true molecules and ions in chemical equilibrium, which gives the CO2 partial pressure, the heat of absorption, the pH and the density of the loaded solvent.

DWSIM.Extensions.PropertyPackages.CCUS.Capture.CarbonCapturePropertyPackage
Assembly DWSIM.Extensions.PropertyPackages.CCUS.dll · Object ← PropertyPackage ← ElectrolyteBasePropertyPackage ← BaseElectrolytePropertyPackage ← CarbonCapturePropertyPackage
Name in the flowsheet CO2 Capture (eNRTL) · FluentAPI PropertyPackages.Plus.CarbonCapture

Scope

The package describes aqueous amine solvents loaded with CO2, as found in the absorbers and strippers of post-combustion capture and gas treating units. It covers five solvents: monoethanolamine (MEA), diethanolamine (DEA), methyldiethanolamine (MDEA), piperazine (PZ) and the blend of MDEA with piperazine. The amine is recognized by its CAS number, then by its name.

The flash works on the apparent compounds of the stream: water, the amine, CO2 and any other gas. Whenever it needs the fugacities of a liquid, the package splits that liquid into its true species in chemical equilibrium and computes their activity coefficients with the electrolyte NRTL model in the generalized form of Chen and Song (2004), with the Pitzer-Debye-Hückel term of the Electrolyte NRTL package. The fugacity of an apparent compound is that of its molecular species, so stream compositions stay apparent and the phase equilibrium carries the chemistry. All parameters are compiled into the package; it reads no data files.

Solvent True species
MEA H2O, MEA, CO2(aq), MEAH+, MEACOO-, HCO3-, CO32-, OH-, H+
DEA the same with DEA, DEAH+ and DEACOO-
MDEA H2O, MDEA, CO2(aq), MDEAH+, HCO3-, CO32-, OH-, H+ (a tertiary amine forms no carbamate)
PZ H2O, PZ, CO2(aq), PZH+, PZCOO-, H+PZCOO-, PZ(COO-)2, HCO3-, CO32-, OH-, H+
MDEA + PZ the species and reactions of both amines in one liquid

Chemical equilibria. Water dissociation and the two dissociations of CO2 (Edwards et al. 1978), the protonation of each amine (Bates and Pinching 1951 for MEA, Posey 1996 for DEA and MDEA, Hetzer, Robinson and Bates 1968 for PZ), carbamate reversion for MEA and DEA (Austgen 1989) and the three piperazine carbamate reactions (Ermatchkov, Pérez-Salado Kamps and Maurer 2003). The constants are on the mole-fraction scale; water and the amine are referred to the pure liquid, CO2(aq) and the ions to infinite dilution in water.

Phase equilibrium. Water and the amine follow their vapor pressure times activity; CO2 follows the Henry constant of Carroll, Slupsky and Mather (1991) times its activity coefficient, with a Poynting term (34 cm3/mol). The vapor is Peng-Robinson. N2, O2, H2S and other gases take part in no reaction and dissolve physically, so the package does not describe H2S treating.

Parameters. The NRTL pairs have the form τ = a + b (1/T - 1/298.15 K). The water-amine pairs of MEA and MDEA were fitted to amine + water vapor-liquid data; those of DEA (Posey 1996) and PZ (Hilliard 2008) are published values. The molecule-ion-pair parameters were fitted to CO2 partial pressures and calorimetric heats of absorption together; every other pair takes the defaults of Chen and Evans (1986).

Enthalpy, density and pH. The liquid enthalpy comes from the temperature derivative of the liquid fugacities, so the heat of absorption appears in the energy balance of any unit operation. The density of the loaded solvent comes from correlations fitted to Amundsen, Øi and Eimer (2009) for MEA, Han et al. (2012) for DEA and MDEA, and Freeman and Rochelle (2011) for PZ. The pH (molality scale) and the ionic strength come from the speciation, which SpeciateLiquid and LastSpeciation return species by species.

Accuracy. Average deviations from the validation of the package (fit: data the parameters were regressed to; check: compared only):

Solvent CO2 partial pressure Heat of absorption Density
MEA 14 % (Wagner 2013, fit), 18 to 35 % on four sets checked 3.2 to 3.9 kJ/mol (Arcis 2011, integral) 2.6 kg/m3
DEA 15 and 29 % (fit), 12 % (Dash 2011, check) 3.3 to 4.3 kJ/mol 1.2 kg/m3
MDEA 12 to 20 % on three of the four sets fitted, 14 % (Leontiadis 2019, check) 3.2 to 3.8 kJ/mol 2.0 kg/m3
PZ 16 to 32 % (fit), 28 % (Hilliard 2008, check) 6.0 and 7.1 kJ/mol at 313 and 353 K (differential) 3.7 kg/m3
MDEA + PZ 19 and 20 % (Chen 2011, fit), 23 and 51 % at 373 to 423 K (Xu 2011, check) no data 1 to 4 kg/m3 (lean)

Limitations

  • Fitted ranges: MEA 15 and 30 mass% (2.8 to 7.3 mol/kg), 313 to 393 K; DEA 2 and 4 M, 303 to 353 K; MDEA 298 to 363 K; PZ 1 to 12 mol/kg, 313 to 423 K; MDEA + PZ at 7 m/2 m and 5 m/5 m, 40 to 100 °C. CO2 partial pressures up to 1.2 MPa (MEA up to 500 kPa). Above 120 °C the MEA and DEA carbamate constants extrapolate.
  • AMP, amine blends other than MDEA + PZ, and an amine together with ions or salts (heat-stable salts, Na+, Cl-) are refused with a message. Water with gases and no amine takes a molecular flash; water with ions and no amine, the speciation of the electrolyte packages.
  • Near a loading of 0.5 mol/mol the CO2 partial pressure rises tenfold within a few hundredths of loading; there the MEA data of Jou et al. and Wagner et al. differ by a factor of about 2, and the model lies between them. Some MDEA and PZ data sets disagree with the others by a factor of 2 to 8 (PZ: up to three orders of magnitude); the fit follows the majority.
  • Equilibrium only: the slow reaction of CO2 with MDEA in a real absorber has to come from a rate-based column model.
  • The solid PZ hexahydrate is not modelled: concentrated, lean PZ solutions that would precipitate on cooling (8 to 10 mol/kg below about 0.05 mol CO2 per mol of alkalinity at 40 °C) come out as a liquid.
  • The MEA differential heat at 313 K comes out up to 13 kJ/mol more exothermic than the calorimetry of Mondal et al. (2017) between 0.2 and 0.45 mol/mol. The Born term for the permittivity of the mixed solvent is not included.

Example

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

fs = (Flowsheet.Create("CO2CaptureExample")
      .WithCompounds("Water", "Monoethanolamine", "Carbon dioxide")
      .WithPropertyPackage(PropertyPackages.Plus.CarbonCapture))

# 1 kg/s of 30 mass% MEA at three CO2 loadings (mol CO2/mol MEA), each at its
# bubble point at 40 C: the vapor holds the equilibrium partial pressures
mea = 0.30 / 0.06108                                  # mol/s of MEA
streams = {}
for loading in (0.2, 0.4, 0.5):
    streams[loading] = (fs.AddMaterialStream(f"MEA, loading {loading}")
                        .WithTemperature(Q.Celsius(40.0)).WithVaporFraction(0.0)
                        .SetCompoundMolarFlow("Water", 0.70 / 0.018015)
                        .SetCompoundMolarFlow("Monoethanolamine", mea)
                        .SetCompoundMolarFlow("Carbon dioxide", loading * mea))
fs.Solve()

for loading, b in streams.items():
    s = b.Object
    P = s.Phases[0].Properties.pressure                   # bubble pressure, Pa
    pCO2 = s.Phases[2].Compounds["Carbon dioxide"].MoleFraction * P
    print(f"Loading {loading}: pCO2 = {pCO2 / 1000:.3g} kPa, pH = {s.Phases[3].Properties.pH:.2f}")

# true species of the liquid at loading 0.4 (molality, mol/kg of water)
pp = list(fs.Inner.PropertyPackages.Values)[0].__implementation__   # the package class
liquid = streams[0.4].Object.Phases[3]
x = Array[Double]([c.MoleFraction for c in liquid.Compounds.Values])
sp = pp.SpeciateLiquid(x, 313.15)
m = {name: sp.Molality(i) for i, name in enumerate(sp.Model.SpeciesNames)}
print(f"Speciation at 0.4: MEAH+ {m['MEAH+']:.2f}, MEACOO- {m['MEACOO-']:.2f}, "
      f"HCO3- {m['HCO3-']:.3f}, free MEA {m['MEA']:.2f} mol/kg")
print(f"Loaded solvent density = {liquid.Properties.density:.1f} kg/m3")

Output

Loading 0.2: pCO2 = 0.00791 kPa, pH = 9.82
Loading 0.4: pCO2 = 0.169 kPa, pH = 9.16
Loading 0.5: pCO2 = 3.33 kPa, pH = 8.51
Speciation at 0.4: MEAH+ 2.85, MEACOO- 2.69, HCO3- 0.082, free MEA 1.49 mol/kg
Loaded solvent density = 1088.4 kg/m3

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 Peng-Robinson EOS
Liquid fugacity Amines: electrolyte NRTL with chemical equilibrium, Henry's law (CO2), vapour pressure times activity (water, amine); no amine: eNRTL activity coefficients + Henry's law / vapour pressure
Vapor enthalpy, entropy, Cp/Cv Ideal Gas
Liquid enthalpy, entropy, Cp/Cv Amine solvents: temperature derivative of the liquid fugacities of the speciated liquid (heat of absorption included); without an amine: Ideal Liquid
Vapor density Ideal Gas
Liquid density Amine solvents: loaded-solvent correlations (Amundsen et al. 2009 for MEA, Han et al. 2012 for DEA and MDEA, Freeman and Rochelle 2011 for PZ)
Vapor viscosity Experimental / Lucas / Jossi-Stiel-Thodos
Liquid viscosity Experimental / Letsou-Stiel (solvent) with the Jones-Dole correction for the ions
Vapor thermal conductivity Experimental / Ely-Hanley
Liquid thermal conductivity Experimental / Latini (solvent) with the Riedel correction for the ions
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: Nested_Loops_VLE.

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
ElectrolyteFlash_ReactionSetID DefaultSet Setting of the legacy electrolyte flash (ElectrolyteSVLE) that the base class saves; the flashes of this package do not read it
ElectrolyteFlash_Tolerance 1E-07 The same, the tolerance of that flash
ElectrolyteFlash_MaximumIterations 200 The same, its iteration limit
IncludeExcessEnthalpy false Adds the eNRTL excess enthalpy to the liquid enthalpy of water with gases or ions and no amine (off by default); the amine path takes its excess enthalpy from the speciation in any case
GenerateSolubilityReactions false Salt dissolution equilibria of the base electrolyte package; not used here, since the package replaces its chemical equilibria
UseReactiveKvalues false Not used here; the columns take the K-values the flash converges on
Settings common to every property package, as saved for the example
Element Value
Type 75 characters
ComponentName CO2 Capture (eNRTL)
ComponentDescription 95 characters
Tag CO2 Capture (eNRTL)
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

CarbonCapturePropertyPackage()
public CarbonCapturePropertyPackage()
Public Sub New()

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

Properties

FlashBase: The apparent-compound flash for MEA, DEA, MDEA, piperazine or MDEA with piperazine, with water; the speciation flash...

The apparent-compound flash for MEA, DEA, MDEA, piperazine or MDEA with piperazine, with water; the speciation flash of the electrolyte packages for water with ions or salts and no amine; a vapour-liquid flash on DW_CalcFugCoeff for water and gases. The other amines, the other amine blends and an amine together with ions or salts are refused with a message.

public override FlashAlgorithm FlashBase { get; }
Public Overrides ReadOnly Property FlashBase As FlashAlgorithm

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

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

LastSpeciation: Speciation of the last liquid whose pH was calculated on the amine path, or null.

Speciation of the last liquid whose pH was calculated on the amine path, or null.

public AmineLiquidSpeciation LastSpeciation { get; }
Public ReadOnly Property LastSpeciation As AmineLiquidSpeciation

ShouldUseKvalueMethod3: The columns take DW_CalcKvalue, the K-values of DW_CalcFugCoeff that the flash converges on, with UseReactiveKvalues...

The columns take DW_CalcKvalue, the K-values of DW_CalcFugCoeff that the flash converges on, with UseReactiveKvalues on or off.

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

Methods

AUX_LIQDENS(double, Array, double, double, bool): Liquid density on the amine path from AmineSolutionDensity, with any other dissolved compound added at its own...

Liquid density on the amine path from AmineSolutionDensity, with any other dissolved compound added at its own liquid molar volume.

Parameter Type Description
T Double
Vx Array
P Double
Pvp Double
FORCE_EOS Boolean
public override double AUX_LIQDENS(double T, Array Vx, double P = 0, double Pvp = 0, bool FORCE_EOS = false)
Public Overrides Function AUX_LIQDENS(T As Double, Vx As Array, P As Double = 0, Pvp As Double = 0, FORCE_EOS As Boolean = False) As Double

AUX_LIQDENS(double, double, double, int, bool): The phase overload the phase properties are calculated with, which the electrolyte base class answers on its own...

The phase overload the phase properties are calculated with, which the electrolyte base class answers on its own: the same density on the amine path.

Parameter Type Description
T Double
P Double
Pvp Double
phaseid Int32
FORCE_EOS Boolean
public override double AUX_LIQDENS(double T, double P = 0, double Pvp = 0, int phaseid = 3, bool FORCE_EOS = false)
Public Overrides Function AUX_LIQDENS(T As Double, P As Double = 0, Pvp As Double = 0, phaseid As Integer = 3, FORCE_EOS As Boolean = False) As Double

AUX_VAPDENS(double, double): Vapour density: Peng-Robinson on the vapour root, the equation of state of VaporFugacity.

Vapour density: Peng-Robinson on the vapour root, the equation of state of VaporFugacity. The electrolyte packages' density was the ideal gas.

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

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

CalculateChemicalEquilibria(double, double, double[])
Parameter Type Description
T Double
P Double
x Double[]
public override EquilibriumResult CalculateChemicalEquilibria(double T, double P, double[] x)
Public Overrides Function CalculateChemicalEquilibria(T As Double, P As Double, x As Double()) As EquilibriumResult

Clone()
public override PropertyPackage Clone()
Public Overrides Function Clone() As PropertyPackage

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_CalcEnthalpy(Array, double, double, State): On the amine path the liquid enthalpy follows from the temperature dependence of the liquid fugacities, which...

On the amine path the liquid enthalpy follows from the temperature dependence of the liquid fugacities, which carries the heat of absorption. Elsewhere it is the electrolyte packages' enthalpy.

Parameter Type Description
Vx0 Array
T Double
P Double
st State
public override double DW_CalcEnthalpy(Array Vx0, double T, double P, State st)
Public Overrides Function DW_CalcEnthalpy(Vx0 As Array, T As Double, P As Double, st As State) As Double

DW_CalcEntropy(Array, double, double, State): Entropy to match DW_CalcEnthalpy: S = S_ig − ΔHvap/T of water and the amine (the convention of the electrolyte...

Entropy to match DW_CalcEnthalpy: S = S_ig − ΔHvap/T of water and the amine (the convention of the electrolyte packages) + (H_R − G_R)/T, G_R = R·T·Σ x·ln(f/f_ref) with the same reference fugacities as the enthalpy.

Parameter Type Description
Vx0 Array
T Double
P Double
st State
public override double DW_CalcEntropy(Array Vx0, double T, double P, State st)
Public Overrides Function DW_CalcEntropy(Vx0 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_CalcKvalue3(double[], double[], double, double): DW_CalcKvalue on the normalised liquid and vapour, for a caller that asks for the reactive route by name.

DW_CalcKvalue on the normalised liquid and vapour, for a caller that asks for the reactive route by name. Amounts in, as the columns pass them; with no vapour the liquid stands in for it.

Parameter Type Description
Vnx Double[]
Vny Double[]
T Double
P Double
public override double[] DW_CalcKvalue3(double[] Vnx, double[] Vny, double T, double P)
Public Overrides Function DW_CalcKvalue3(Vnx As Double(), Vny As Double(), T As Double, P As Double) As Double()

DW_CalcPhaseProps(Phase): The vapour's compressibility factor follows its density; the electrolyte packages wrote 1.

The vapour's compressibility factor follows its density; the electrolyte packages wrote 1.

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

DW_CalcProp(string, Phase): pH and ionic strength of a liquid on the amine path come from its speciation, which...

pH and ionic strength of a liquid on the amine path come from its speciation, which LastSpeciation then holds; everything else is the electrolyte packages' own.

Parameter Type Description
property String
phase Phase
public override void DW_CalcProp(string property, Phase phase)
Public Overrides Sub DW_CalcProp([property] As String, phase As Phase)

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

PopulateCrossPlatformEditor(object): The package has no adjustable parameters: the panel lists the supported amines, the speciation reactions and the...

The package has no adjustable parameters: the panel lists the supported amines, the speciation reactions and the model, mirroring the Windows editor.

Parameter Type Description
container Object
public override void PopulateCrossPlatformEditor(object container)
Public Overrides Sub PopulateCrossPlatformEditor(container As Object)

ReturnInstance(string)
Parameter Type Description
typename String
public override object ReturnInstance(string typename)
Public Overrides Function ReturnInstance(typename As String) As Object

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

SaveData(): Writes IncludeExcessEnthalpy, GenerateSolubilityReactions and UseReactiveKvalues after the data the base package...

Writes IncludeExcessEnthalpy, GenerateSolubilityReactions and UseReactiveKvalues after the data the base package saves, so the three options travel with the flowsheet file and with Clone.

public override List<XElement> SaveData()
Public Overrides Function SaveData() As List(Of XElement)

SpeciateLiquid(Array, double): Speciation of the liquid Vx (apparent mole fractions) at T; null off the amine path, when the liquid holds no water...

Speciation of the liquid Vx (apparent mole fractions) at T; null off the amine path, when the liquid holds no water or no amine, or when CO2 is more than half of water + amine + CO2 (a CO2 liquid, which the trial phases of the flash can reach and the model does not describe). Starts from the nearest of the recent speciations.

Parameter Type Description
Vx Array
T Double
public AmineLiquidSpeciation SpeciateLiquid(Array Vx, double T)
Public Function SpeciateLiquid(Vx As Array, T As Double) As AmineLiquidSpeciation

Fields

ClassId
public const string ClassId = "B7A3D1E2-4F56-4C89-A1B2-C3D4E5F67890"
Public Const ClassId As String = "B7A3D1E2-4F56-4C89-A1B2-C3D4E5F67890"