Vapour Liquid Equilibrium (VLE)

From SysCAD Documentation
Jump to navigation Jump to search

Navigation: Models ➔ Sub-Models ➔ Vapour Liquid Equilibrium (VLE)

General Description

The VLE block or sub-model is used to calculate the vapour-liquid equilibrium state and adjust the fractions of these vapour and liquid species in the model or stream. The VLE sub-model is used in a number of unit models. Different models may have options to specify some of the required state variable results for the VLE calculations. The VLE block is typically used in one of these three ways:

  • flash off vapour (eg flash tank, where user may specify required operating pressure or temperature)
  • condense vapour (eg condensing shell & tube heater, where user may specify requirement to condense all vapour)
  • adjust vapour/liquid ratio (eg pipe, where the ratio of vapour/liquid is adjusted to equilibrium for the current pressure & temperature)


  1. VLE is most commonly used for H2O (steam / water) calculations. Please see Water and Steam Properties for information about the equations used in SysCAD for H2O.
  2. If the species model used includes a Boiling Point Elevation (BPE) correlation, this will be accounted for in the VLE calculations. See also Boiling Point Elevation for Std Model.
  3. If other vapours are present (for example non-condensibles) then these will have an effect on the VLE and the final pressure exerted by the flash component is its 'Partial Pressure' and not the full pressure.

Model Theory

The sub-model is used or configured to achieve vapour : liquid equilibrium at a required pressure (or temperature) using the user defined VLE method. It may also be used to fully condense all of the vapours or flash all of the liquid. At this stage only two phase flash calculations are handled in SysCAD. Any solids are ignored in the flash calculations, however the enthalpy balance does include the solids. The temperature and amount of material which changes phase is calculated using an adiabatic flash routine. The routine used depends on the VLE specified by the user.

The two broad categories of VLE theory used in SysCAD are VLE of a single species or VLE for multiple species using K values1.

Single Component VLE

The Temperature : Pressure curves for saturated steam is automatically part of the SysCAD internal data. For other species the required data needs to be entered in the species database to allow the user to select other species for the single component VLE calculations.

The solver will attempt to obtain equilibrium between the vapour and liquor phases of water (or selected species) at the user defined flash pressure. If the unit is using the default species model, Standard, then the equilibrium point will be that of saturated steam, as found in Steam Tables.

If the unit uses a species model with an Elevated Boiling point calculation, then the equilibrium point will be adjusted to compensate for the changed boiling point.

Partial Pressure

The partial pressure of any species is calculated as follows:

[math]\mathbf{\mathit{P_a = y_a\times P_T}}[/math]


Pa = partial pressure of species 'a'
ya = mole fraction of species 'a' in vapour phase
PT = total pressure of the stream

Multiple Component VLE

In this case the model will use K values to determine the phase equilibrium at the required pressure. The K values are either specified by the user, or are the ideal values.

The basic equations that need to be solved to obtain the equilibrium point are:

  • [math]\mathbf{\mathit{f_1(V_2T_2)=\sum_i \cfrac {z_i(1-K_i)}{1+V(K_i-1)}=0}}[/math]
  • [math]\mathbf{\mathit{f_1(V_2T_2)=H^F-V(H^V-H^L)-H^L=0}}[/math]
V Vapour Flow rate
T2 Temperature after flash
zi Mole fraction of component i in the Feed
Ki Vapour-Liquid equilibrium Ratio of component i.
HF Enthalpy of Feed
HV Enthalpy of Vapour fraction
HL Enthalpy of Liquid fraction

The model will use iterative techniques to solve the above equations simultaneously. If, after a large number of iterations, convergence is not achieved, the model will flag the user with a message that Vapour : Liquid equilibrium was not achieved.


Coker, A.K., "Equilibrium flash calculations quickly computed on PC", Oil & Gas Journal, Jan 14, 1991.

Vapour Pressure Data

The vapour pressure data for H2O is included in SysCAD. Users can add new species to the list by following these steps:

We will use ammonia as an example:

  • Edit the SysCAD Database to include both the liquid and vapour phase of ammonia.
  • For NH3(g), make sure the field Vp and Tc contain valid data. (See Species Table - Vapour Pressure for further information.)
  • Next, close any opened projects and edit the project configuration file to include NH3(g) and NH3(aq) in the Display List. (See Species Configuration for further information.)
  • Reload the project and the ammonia should be available as a flash component.
    VLE species.png
  • Choose ammonia from the VLE Tab Component droplist.

See also Example for Vapour Pressure Data fitting

Data Sections

Tag (Long/Short) Input / Calc Description/Calculated Variables


Model Single/Vapour P This option allows the user to set the vapour fraction of a single component at a fixed percentage.
Multi/Fixed K This allows the user to set the K values of the relevant components in the species list.
State FeedBack This will display the calculation state of the block. If there are no warnings or errors this will be 'OK'.
(The following fields are only shown if Model = Single/Vapour P)
Component List The user may choose which component to flash.
Note: Only components with VLE data in the species database will be available in the drop down list. (See the ammonia example described on the top of the page.)
PrevVapFrac Input
PrevVapPress Input
BPE.Method None The Boiling Point Elevation will be set to zero in this unit.
StreamModel The Boiling Point Elevation will be calculated based on the stream model.
If the Standard Species Model is used, this will use the method defined in the Plant Model - Standard Properties Model Options, which is either None or van't Hoff. Please see Boiling Point Elevation Definition for more information on this equation.
If a Species Properties Model is detected, the BPE value will be based on the calculation defined for that Species Properties Model.
User The user may enter a value to be used for the Boiling Point Elevation in this unit. This value must be between 0 and 30°C.
VantHoff Only visible if at least one species in the project has van't Hoff constants defined in the species database. The Boiling Point Elevation will be calculated based on the van't Hoff equation and the constants entered by the user into the species database. Please see Boiling Point Elevation Definition for more information on this equation.
BPE.User Input Only visible if BPE.Method = User. The user specified Boiling Point Elevation in this unit. This value must be between 0 and 30°C.
BPE.ScaleOrOffset Tick Box Only visible if BPE.Method is NOT set to None. If this is enabled then the user may apply a scaling value to the calculated BPE value, and / or an offset. The following 2 fields will become visible if this box is ticked:
BPE.Scale Input The required scaling value to apply to the calculated BPE value. This is only applied to the BPE value in the selected unit.
BPE.Offset Input The required offset value to add to the calculated BPE value. This is only applied to the BPE value in the selected unit.
(The following fields are only shown if Model = Multi/Fixed K OR Multi/Ideal K's)
XXX Input/Display The K value for component XXX. If Model = Multi/Fixed K then this is a user specified value (input). If Model = Multi/Ideal K's, then this will be a calculated value.
GridDisplay Tick Box This is a global selection, if this is selected, then where available, variables will display in a table format, if not selected, they will be listed in separate groups as a single list.

Feed OR Product Conditions

Feed.... OR Prod...
Temperature / T Display The stream Temperature.
TotalP Display The stream Total Pressure.
PartialP Display The Partial Pressure of the flashing species (often H2O(g)) in the stream.
[email protected] Display The saturation pressure at stream temperature.
[email protected] Display The saturation temperature at stream Partial Pressure.
[email protected] Display The saturation temperature at stream Total Pressure.
[email protected] Display The degree of super heat at stream Partial Pressure.
[email protected] Display The degree of super heat at stream Total Pressure.
MassFlow / Qm Display The total mass flowrate in the stream.
VapourMassFlow / VQm Display The vapour volumetric flowrate in the stream.
VapourFrac / Vf Display The vapour fraction in the stream.
FlashVapFlow / FlashVapQm Display The flow of the flash vapour (often H2O(g)) in the stream.
FlashVapFrac Display The mass fraction of the flash vapour (often H2O(g)) in the stream.


VapFlashed.MassFlow / Qm Calc The mass of vapour flashed.
BPE Calc The boiling point elevation value used in the VLE calculation.
LiquorModel Display Displays the calculation model used for liquor properties. This may be Standard where the Standard Mass Weighted mean model is used, or it may be a different species model, such as Bayer or a client specific species model.
SatMethodUsed Display Displays the method used to calculate the mixture's saturation conditions.

Further Notes

The following discussion relates primarily to the use of VLE (the VLEquilibrium field) in a Feeder.

Simple Liquors

If no non-condensable gases are present, then we have a single vapor component in equilibrium with the liquor.

For the generic case (Bayer liquor, steam vapor) the vapor is actually superheated. The non-volatile components in the liquor lead to Boiling Point Elevation', so the vapor temperature is higher than the saturation temperature for pure water at that pressure.

In general the Saturated or Superheated Vapor options will be meaningless here. In some cases it may be possible to flash off all of the water from a particular liquor, but the present implementations have correlations that are pretty much meaningless when there are low levels of water (high concentrations of caustic/alumina etc in the case of Bayer liquors).

  • For a given fixed temperature:
    • If the pressure is greater or equal to the liquor vapor pressure, then we have pure liquid.
    • If the pressure is below the liquor vapor pressure, then steam will flash off. The residual liquor will have a greater boiling point elevation (or equivalently a lower vapor pressure). Note that this is not a flash calculation: ie we keep the temperature fixed. We must adjust the composition to get the right vapor pressure at that temperature.

Whether non-condensable gases are present or not, these calculations with liquors are more complex than for the single component case, since the BPE or saturation pressure changes with composition. With only a pure component in the liquid phase, the saturation pressure is fixed.

Simple Liquors with non-condensable gases

This situation arises in modelling Bayer liquors and other aqueous solutions. Because the partial pressure of the volatile vapor (steam in this case) must be equal to the saturation pressure, small amounts of non-condensable gases can generate large fractions of steam in the vapor phase.

If non-condensable gases are present, then some vapor will evaporate from the liquor so that the partial pressure of vapor in the non-condensable gases is equal to the vapor pressure of the liquor. Thus even if the liquor is subcooled (wrt the system pressure) there may be some fraction of vapor in the gas phase.

In practice however, we may want to have a saturated liquor together with non-condensable gases alone (without vapor). Using the Saturated_Liq options will achieve this.

VLE Option Matrix (as used in Feeder)

Name PARAM RESULT Pure Component Liquor (with Non-volatiles) Pure Comp + non-condensable gases Liquor + NC Selectable in Operation Mode
(Available in Build 138 or later)
Off T,P - Yes* Yes* Yes* Yes* All
Saturated_Vap(T) T P, X=1 Yes No Yes No General, Vapour, Steam
Saturated_Vap(P) P T, X=1 Yes No Yes No General, Vapour, Steam
Superheated_Vap(dT,P) Degree Superheat, P X=1 Yes No Yes No General, Vapour, Steam
Superheated_Vap(T,P) T,P X=1 Yes No Yes No General, Vapour, Steam
Saturated_Liq(T) T P, X=0 Yes Yes No No General, Liquids, Slurry, Water
Saturated_Liq(P) P T, X=0 Yes Yes No No General, Liquids, Slurry, Water
Subcooled_Liq(dT,P) Degree Subcool, P X=0 Yes Yes No No General, Liquids, Slurry, Water
Subcooled_Liq(T,P) T,P X=0 Yes Yes No No General, Liquids, Slurry, Water
Saturated(X,T) T,X P Yes NI NI NI General
Saturated(X,P) P,X T Yes NI NI NI General
Saturated_NonCond(T,P) T,P X No** Yes Yes Yes General
RelativeHumidity T, P, RH X Yes Yes General
  • Yes - Available and physically meaningful
  • * - If VLE is off, anything goes, the resulting stream may not be in equilibrium and quality can be set arbitrarily.
  • ** - Unless P=PSat(T)
  • No - Not physically meaningful; should be avoided, behavior is undefined.
  • NI - (Not Implemented) Possibly meaningful but not specifically implemented, undefined behaviour if used.

If you are using the VLE option, you should ensure that you choose conditions that are physically realistic. The cases flagged here are not physically achievable in true VLE conditions.

However they can still be used: just use care in interpreting the results. For example, if you are venting non-condensable gases and don't want to change the composition of the liquor (due to venting small amounts of steam as well), selecting Saturated_Liq(T) will ensure that no vapor is present.