VaporPressure

class VaporPressure(solvent, temperature=None, parameters=None)

Calculate the vapor pressure of a liquid.

Parameters:
parameters()
Returns:

The COSMO real solvent parameters

Return type:

CosmoRSParameters

temperature()
Returns:

The solvent temperature.

Return type:

PhysicalQuantity of type temperature

uniqueString()

Return a unique string representing the state of the object.

vaporPressure()
Returns:

The vapor pressure of each solvent component, ordered by their input order.

Return type:

PhysicalQuantity of type pressure

Usage Examples

Calculate the vapor pressure of acetonitrile in a water mixture.

# Load the COSMO species
database = CosmoRSSpeciesDatabase()
water = database.exportSpecies('water')
acetonitrile = database.exportSpecies('acetonitrile')
acetonitrile.setAntoineA(5.93296 * bar)
acetonitrile.setAntoineB(2345.829 * Kelvin)
acetonitrile.setAntoineC(43.815 * Kelvin)

# Create a mixture
mixture = CosmoRSMixture([(water, 0.5), (acetonitrile, 0.5)])

# Determine the vapor pressure.
vapor_pressure = VaporPressure(
    mixture,
    298*Kelvin,
    parameters=CosmoRSParameters(),
)

# Retrieve the vapor pressure of acetonitrile.
p_vap = vapor_pressure.vaporPressure()[1].convertTo(bar)
nlprint(f'The vapor pressure of acetonitrile is {p_vap}')

water_acn_vapor_pressure_example.py

Notes

The VaporPressure object allows calculation of the partial vapor pressure of a substance above its condensed phase. The partial vapor pressure \(p_{vap}\) of a species \(i\) is calculated according to

\[p^{vap}_i = x_i p_0 \exp\left(\frac{\mu^{solv}_i - \mu^{gas}_i}{RT} \right)\]

Here \(\mu^{solv}_i\) is the pseudochemical potential of solvation of species \(i\) and \(\mu^{gas}_i\) the pseudochemical potential of the gas-phase with respect to the perfect conductor condensed phase. \(p_0\) is a predefined reference pressure of 1 bar and \(x_i\) the mole fraction.

If the Antoine parameters are known for the pure substances then the partial pressure, \(p^{pure}\) can be estimated as:

\[\log_{10}(p^{pure}) = A - \frac{B}{C+T}\]

Here \(T\) is the temperature and \(A\), \(B\) and \(C\) are the Antoine equation parameters. Since the partial pressure of a pure substance in COSMO-RS is defined as

\[p^{pure} = p_0 \exp\left(\frac{\mu^{liq} - \mu^{gas}}{RT} \right)\]

Rearranging the expression then yields

\[\mu^{gas} = \mu^{liq} - RT \ln\frac{p^{pure}}{p_0}\]

This can be used to simplify the calculation of a mixture vapor pressure to the difference in chemical potential between the solvated and pure liquid states, \(\mu^{liq}_i\). The vapor pressure is then

\[p^{vap}_i = x_i p^{pure}_i \exp\left(\frac{\mu^{solv}_i - \mu^{liq}_i}{RT} \right)\]

Using this expression avoids approximating the gas chemical potential and simply estimates the partial pressure based on the difference between the solvated and pure liquid chemical potentials.