(1) Overview

Introduction

The determination of specific surface area (m2/g) is a critical characterization tool for materials synthesis. The design of novel materials like nanostructured catalysts and sorbents is largely an effort to increase the amount and accessibility of useful surface area. Physisorption of gases such as nitrogen and the analysis by BET theory are the foundation of these efforts. Since its publication in 1938, BET theory has become the standard tool for surface area determination from isothermal adsorption data. Brunauer, Emmett, and Teller developed their eponymous theory to describe multilayer physisorption on a solid surface. It is an extension of the Langmuir adsorption model, by treating the adsorption in subsequent layers with the Langmuir equation [], producing the BET equation:

(1)
nnm = CPPo1PPo1+C1PPo

where n is the number of moles of gas adsorbed at a normalized pressure of P/Po. These are experimentally measured values while C and nm are essentially fitting parameters, though they have important physical significance. The correct fitting of these two parameters is the subject of the present work. A full derivation of this equation is given by Lowell et al []. The BET model’s strengths are its simplicity and the easily understandable concept of monolayer loading that it provides [], however, these features also make it prone to misuse by non-experts. BEaTmap provides a tool to facilitate unbiased and rigorous application of Eq. (1). This equation can be manipulated into a linear form that is useful in analysing experimental isothermal adsorption data []:

(2)
Xn1X= C1nmCX+1nmC

where X = P/Po is the normalized pressure, also referred to as the relative pressure. The determination of surface area requires fitting Eq. (2) to experimentally obtained isotherm data. C is known as the BET constant and is a function of thermodynamic properties such as the heat of adsorption. nm is the number of moles in the monolayer, and this value is used directly to obtain surface area since the cross-sectional area of a single molecular of adsorbate is known. The cross-sectional area of typical absorbates can be looked up (e.g., AN2=0.168 nm), but the value depends weakly on the solid []. BEaTmap allows users to specify this value. When developing and validating BET theory, the original authors found that the low temperature adsorption of gases onto a variety of materials such as catalysts, catalyst supports, and salts, produced an S-shaped isotherm (now referred to as type II isotherms by IUPAC []) and for those isotherms the relative pressure range of 5% to 35% yielded linear BET plots []. Due to historical inertia and convenience, the 5% to 35% relative pressure range has become entrenched and is now widely used as the default range. However, there are several assumptions implicit in the BET theory and derivation of Eq. (1), which must be satisfied. Experienced BET practitioners know that this range is arbitrary and should be determined on a case-by-case basis; however, this is not always easy to do. Practically, this means that experimental adsorption data do not always meet the assumptions of BET theory and will not yield a linear BET plot. For cases where the isotherm is of type II, BET analysis can be applied, but even then, only to certain portions of the isotherm. Adsorption in micropores, for example, is understood to proceed via a pore filling mechanism rather than the layer formation that BET theory describes []. Should adsorption in a microporous material proceed by pore filling between 5% and 35% relative pressure, the use of the historical range of relative pressure values will produce inaccurate results. A set of criteria to select the relative pressure range of an isotherm where experimentally observed adsorption follows the assumptions made by BET theory, to the degree that a repeatable and self-consistent result is insured, have been put forth by Rouquerol et al [], as listed below.

BET theory criteria:

  1. The BET constant C must be positive.
  2. The term n(PPo) must increase as P/Po increases.

The Arrhenius dependence of the BET constant on the difference between heat of adsorption for the first and subsequent layers makes negative values nonsensical, giving the first criterion. An alternative linearization of the BET equation, put forth by Keii et al [], gave rise to the second criterion, that n(PPo) increase with relative pressure. Work by Parra et al. [] confirmed that this alternate equation provides more accurate values for the BET constant, as deviations from linearity are more obvious, resulting in better selection of the interval which adheres to BET theory.

Additionally, two consistency checks have been put forth to confirm that the value for monolayer loading, determined from the experimental data, falls in the same range of relative pressures from which it was produced [].

Consistency criteria:

  • 3. The calculated monolayer adsorbed amount, nm, must fall in the relative pressure range used in BET analysis.
  • 4. After performing BET analysis, fixing the values of n and C to the amount of adsorbate in the monolayer and the BET constant found in the analysis respectively, the BET equation can be solved for P/Po. This relative pressure that results should agree with the relative pressure where monolayer loading occurs.

In addition to the above theoretical points, there are also some practical or mathematical criteria that can be used:

  • 5. The chosen pressure range should either (a) use the largest possible number of points, or (b) at least some minimum number of points (i.e., >5).
  • 6. The chosen pressure range should minimize the error between the model and the data.

BEaTmap was developed to help answer the question of which relative pressure range(s) may be used for valid BET analysis accounting for the above criteria, and offers a unique way to conceptualize results for multiple valid relative pressure ranges via visualizing heatmaps. BEaTmap applies the criteria listed above to all possible ranges of P/Po, and returns a 2D map of which range of P/Po values are valid, colored by their corresponding surface area, leading to a heatmap as shown in Figure 1.

Figure 1 

Sample heatmap for specific surface area results for cyclohexane on Vulcan XC 72 R.

Other figures and tables, such as conventional BET plots and the results of simple statistical analysis of the results, are also provided by the software. BEaTmap focuses only on the fitting of BET data, by far the most common method of isotherm analysis, as it is used by materials science researchers who are primarily interested in a specific surface area measurement but nothing more complicated. For more comprehensive analysis of isotherms, a Python package called pyGAPS was recently released []. It is a comprehensive package, and its use is correspondingly more complex. At the time of this writing, pyGAPS does include ‘check 2’ mentioned above when it calculates the BET specific surface area, but it issues a warning rather than assisting users with correct selections. The visual representation of all 6 checks as heatmaps, the focus on specific surface area, and ease of use (via a graphical interface) set BEaTmap apart as a tool for materials scientists that desire rigorous results with minimal computational or intellectual overhead.

Implementation and architecture

In an effort to make BEaTmap as accessible as possible, a web app has been built using the Streamlit library. The web app allows the user to graphically browse and upload files. It can be accessed at https://beatmap.streamlit.app or downloaded and run locally on a user’s machine. Widgets included in the Streamlit library are used to set function parameters such as which of the criteria are applied. The Altair library is used to visualize the results of BEaTmap analysis within the web app, which provides a high degree of interactivity making reading values easier. BEaTmap is also available as a Python library, allowing users familiar with Python to use the functions that comprise BEaTmap within custom scripts, such as batch processing.

BEaTmap is written in Python and utilizes several popular modules. Pandas, Numpy, and Scipy are used to import data from .csv files into DataFrames, create and manipulate arrays of information, and perform simple data analysis, respectively [, ]. Outside of the web app implementation, Seaborn is used to create heatmap figures, while the other figures are made with Matplotlib. Prettytable is used to generate ASCII formatted summary tables, the same data is available as DataFrames.

A BEaTmap analysis script is structured in a linear fashion, with the overall flow: import data, perform BET analysis, apply criteria to results of BET analysis, and visualize the results, as illustrated in Figure 2.

Figure 2 

General structure of functions in BEaTmap.

As an example of BEaTmap’s functionality, consider a system of cyclohexane adsorption onto Vulcan XC72 R, a carbon black powder. Cyclohexane is not a typical adsorbate for BET analysis and traditional selection of adsorption data between relative pressures of 5 and 35% can produce misleading results. However, with appropriate selection of the data used for BET analysis, facilitated by BEaTmap, more robust BET analysis is possible. In this example the run_beatmap function is used, it is a wrapper or helper function that runs all necessary functions in BEaTmap to analyze and visualize the results of BET analysis in one statement:

After calling the above function, the isotherm data is imported, the quality of the experimental data is confirmed, and a plot of the experimental data is produced. Statements about the adsorption system, such as the IUPAC classification for the isotherm and quality of the data are logged for the user, although the user needs to change the default log level to “INFO” to see these logs. The argument ssa_criterion defines the criterion used to provide a single specific surface area value. The default value is ssa_criterion = “error”, and in this example BEaTmap finds that the relative pressure region with the smallest error between experimental data and the BET isotherm has a specific surface area of 231.48 m2/g.

A heatmap displaying the specific surface area values for all relative pressure intervals that pass the checks is produced, and shown in Figure 3b. From the grayscale values one can see that valid specific surface areas range between ~228 and 233.5 m2/g. If one were to display the results of BET analysis with no criteria applied, the resulting specific surface area answers would range from less than 50 to more than 233 m2/g, as illustrated in Figure 3a. Should the conventional approach to BET analysis have been employed, using a relative pressure range of 5 to 35%, the specific surface area for this system would have been found to be 202.53 m2/g, indicated by the red box.

Figure 3 

A comparison of BEaTmap specific surface area results for cyclohexane on Vulcan XC 72 R when: (a) no criteria are applied, and the ‘typical’ range is indicated by a red box and (b) when all criteria are applied showing a very small hot spot of valid data which lies far from the typically used range. Note the range of possible surface area values is reduced from ±183 m2/g to ±5 m2/g when criteria are applied.

Several supplementary figures have been built into BEaTmap. They are automatically produced when using the envelope function and are also available in the web app. Figure 4a shows the data linearized using Eq. (2) along with the proposed fit. In Figure 4b the experimental data is plotted with the BET model isotherm to further illustrate the degree of agreement between the two. The relative pressure range with the lowest error is highlighted with filled markers, and the point at which monolayer coverage occurs, where n/nm = 1, is easily read on this plot. A “combination” BET plot of the valid relative pressure ranges with the lowest and highest error is produced, shown in Figure 4c. As validity criteria are relaxed the differences between BET plots of data with the best and worst adherence to BET theory becomes more apparent. For this example, the BET plot illustrates that even the highest error set of data adheres well to BET theory; this is also reflected in the small variance in specific surface area values. Figure 4c is an example of the heatmap displaying the average error per data point for each valid relative pressure range, similar to the specific surface area heatmaps. Lower error values correspond to greater agreement between experimental data and the theoretical BET isotherm.

Figure 4 

Additional figures produced by BEaTmap. (left) Experimental isotherm plot combined with the BET plot, highlighting the relative pressure range with the lowest error, (center) a combination BET plot of the valid data sets with the lowest and highest error (right) a heatmap of error values.

BEaTmap allows the user to visualize the significance of the above criteria in BET analysis while providing a more qualified specific surface area answer than is provided by software packaged with analytical instruments. The heatmap representation of the BET analysis results reinforces the concept that the BET specific surface area is not a single value. Rather, it is a feature of the isothermal adsorption data that depends on the portion of the isotherm being analysed. The ability to selectively apply criteria allows the user to explore their significance, and the heatmap visualization provides a unique overview of BET analysis across all subsets of an adsorption isotherm.

Quality control

Unit tests have been written to confirm function design and are packaged with BEaTmap. Beyond unit testing, the results of BET analysis returned by BEaTmap may be easily validated. Exporting the processed data using export_processed_data(), which is hosted under beatmap.io, creates an Excel file (.xlsx) in the same directory as the experimental data. This file contains the BET analysis and the Rouquerol criteria results for all relative pressure ranges, organized by row. For example, one may choose some sub-set of experimental data, perform BET analysis in the manner of their choosing, and compare their results to BEaTmap’s answer for the same sub-set of data.

(2) Availability

Operating system

BEaTmap may be run on any operating system that is compatible with Python 3.9 or higher and the dependent packages.

Programming language

BEaTmap was written in and for Python version 3.9 and above.

Additional system requirements

None

Dependencies

Matplotlib ≥ 3.8

Numpy ≥ 1.26

Pandas ≥ 2.1

PrettyTable ≥ 3.9

Rich ≥ 13.6

Scipy ≥ 1.11

Seaborn ≥ 0.13

Streamlit ≥ 1.27

List of contributors

Jeff Gostick

Amin Sadeghi

David Morris

Ellsworth Bell

Software location

Archive (e.g., institutional repository, general repository) (required – please see instructions on journal website for depositing archive copy of software in a suitable repository)

Name: BEaTmap: Simplified rigorous BET analysis of isothermal adsorption data

Persistent identifier:https://zenodo.org/doi/10.5281/zenodo.5709000

Licence: MIT License

Publisher: Zenodo

Version published: v0.3.0

Date published: 16/11/2023

Code repository

Name: GitHub

Identifier:https://github.com/PMEAL/beatmap

Licence: MIT License

Date published: 04/04/2020

Language

BEaTmap is written in English.

(3) Reuse potential

BEaTmap was developed as a visualization and conceptualization tool for isotherm analysis by BET theory. It can supplement commercial software typically bundled with gas adsorption instruments. The BEaTmap web app aims to make the software as accessible as possible, requiring no installation or even coding knowledge. The open-source availability and function-based package structure allows for extensibility by a user wishing to write a script to process a large batch isotherm data stored in .csv files within a directory. Moreover, the conceptualization of the consistency criterion is itself extensible, in the sense that other projects could adopt this new visualization, even if they do not inherit the code itself. Bug reports and issues related to the software are handled using the issues and discussions functionality of GitHub.