Langmuir surface area#

This module contains Langmuir area calculations.

pygaps.characterisation.area_lang.area_langmuir(isotherm: PointIsotherm | ModelIsotherm, branch: str = 'ads', p_limits: tuple[float, float] = None, verbose: bool = False)[source]#

Calculate the Langmuir area of an isotherm.

The optional p_limits parameter allows to specify the upper and lower pressure limits to calculate the Langmuir area, otherwise the limits will be automatically set to 5-90% of isotherm pressure range.

Parameters:
  • isotherm (PointIsotherm, ModelIsotherm) -- The isotherm of which to calculate the Langmuir surface area.

  • branch ({'ads', 'des'}, optional) -- Branch of the isotherm to use. It defaults to adsorption.

  • p_limits (tuple[float, float], optional) -- Pressure range in which to perform the calculation.

  • verbose (bool, optional) -- Prints extra information and plots graphs of the calculation.

Returns:

dict -- A dictionary of results with the following components. The basis of these results will be derived from the basis of the isotherm (per mass, per volume, or per mole of adsorbent):

  • area (float) : calculated Langmuir surface area, in m2/unit of material

  • langmuir_const (float) : the constant in the Langmuir fit

  • n_monolayer (float) : the amount adsorbed at the monolayer

  • langmuir_slope (float) : slope of the Langmuir plot

  • langmuir_intercept (float) : intercept of the Langmuir plot

  • corr_coef (float) : correlation coefficient of the linear region in the Langmuir plot

Raises:

Notes

Description

The Langmuir theory [1], proposed at the start of the 20th century, states that adsorption happens on individual active sites on a surface in a single layer. It is derived based on several assumptions.

  • All sites are equivalent and have the same chance of being occupied.

  • Each adsorbate molecule can occupy one adsorption site.

  • There are no interactions between adsorbed molecules.

  • The rates of adsorption and desorption are proportional to the number of sites currently free and currently occupied, respectively.

  • Adsorption is complete when all sites are filled.

The Langmuir equation is then:

\[n = n_m\frac{KP}{1+KP}\]

The equation can be rearranged as:

\[\frac{P}{n} = \frac{1}{K n_m} + \frac{P}{n_m}\]

Assuming the data can be fitted with a Langmuir model, by plotting \(\frac{P}{n}\) against pressure, a line will be obtained. The slope and intercept of this line can then be used to calculate \(n_{m}\), the amount adsorbed at the monolayer, as well as K, the Langmuir constant.

\[ \begin{align}\begin{aligned}n_m = \frac{1}{s}\\K = \frac{1}{i * n_m}\end{aligned}\end{align} \]

The surface area can then be calculated by using the moles adsorbed at the monolayer. If the specific area taken by one of the adsorbate molecules on the surface is known, it is inserted in the following equation together with Avogadro's number:

\[a(Langmuir) = n_m A_N \sigma\]

Limitations

The Langmuir method for determining surface area assumes that only one single layer is adsorbed on the surface of the material. As most adsorption processes (except chemisorption) don't follow this behaviour, it is important to regard the Langmuir surface area as an estimate.

References

pygaps.characterisation.area_lang.area_langmuir_raw(pressure: list[float], loading: list[float], cross_section: float, p_limits: tuple[float, float] = None)[source]#

Calculate Langmuir-determined surface area.

This is a 'bare-bones' function to calculate Langmuir surface area which is designed as a low-level alternative to the main function. Designed for advanced use, its parameters have to be manually specified.

Parameters:
  • pressure (list[float]) -- Pressures, relative.

  • loading (list[float]) -- Loadings, in mol/basis.

  • cross_section (float) -- Adsorbed cross-section of the molecule of the adsorbate, in nm.

  • p_limits (tuple[float, float], optional) -- Pressure range in which to perform the calculation.

Returns:

  • langmuir_area (float) -- Calculated Langmuir surface area.

  • langmuir_const (float) -- K constant from the Langmuir equation.

  • n_monolayer (float) -- Adsorbed quantity in the monolayer.

  • slope (float) -- Calculated slope of the Langmuir plot.

  • intercept (float) -- Calculated intercept of the Langmuir plot.

  • minimum (float) -- Minimum point taken for the linear region.

  • maximum (float) -- Maximum point taken for the linear region.

  • corr_coef (float) -- Correlation coefficient of the straight line in the Langmuir plot.