Package {AdsorpR}


Type: Package
Title: Adsorption Isotherm Models
Version: 0.1.1
Maintainer: Jajati Mandal <J.Mandal2@salford.ac.uk>
Description: Model adsorption behavior using classical isotherms, including Langmuir, Freundlich, Brunauer–Emmett–Teller (BET), and Temkin models. The package supports parameter estimation through both linearized and non-linear fitting techniques and generates high-quality plots for model diagnostics. It is intended for environmental scientists, chemists, and researchers working on adsorption phenomena in soils, water treatment, and material sciences. Functions are compatible with base 'R' and 'ggplot2' for visualization.
License: GPL-2 | GPL-3 [expanded from: GPL]
Encoding: UTF-8
Imports: ggplot2, stats
Suggests: testthat, knitr, rmarkdown
VignetteBuilder: knitr
NeedsCompilation: no
Packaged: 2026-09-02 08:15:24 UTC; jajatimandal
Author: Jajati Mandal [cre], Sandipan Samanta [aut]
Config/roxygen2/version: 8.1.0
Repository: CRAN
Date/Publication: 2026-09-02 11:10:14 UTC

BET Isotherm Model

Description

The BET isotherm extends the Langmuir theory to multilayer adsorption (Brunauer et al., 1938). It is used to estimate surface area and porosity of adsorbents. The model is applicable under specific physical or chemical conditions and is given by: Q = (Qm * Cb * P) / ((P0 - P)(1 + (Cb - 1) * P / P0)) https://doi.org/10.1021/ja01269a023

Usage

bet_model(Ce, Qe, Cs = max(Ce) * 1.1)

Arguments

Ce

Numeric vector of equilibrium concentrations.

Qe

Numeric vector of amount adsorbed.

Cs

Saturation concentration.

Value

A named list of BET parameters and model details.

See Also

Other linear: freundlich_model(), langmuir_model(), temkin_model()

Examples

Ce <- c(1, 2, 3, 4, 5)
Qe <- c(0.8, 1.5, 2.1, 2.6, 2.9)
result <- bet_model(Ce, Qe)
print(result[1:2])
print(result$`Model Summary`)
print(result$Plot)

Freundlich Isotherm Model

Description

Freundlich isotherm describes adsorption on heterogeneous surfaces and assumes that the stronger binding sites are occupied first (Freundlich, 1907). It is represented by: Q = Kf * Ce^(1/n) where Kf is the Freundlich constant related to adsorption capacity and n indicates adsorption intensity. https://doi.org/10.1002/ange.19070201805

Usage

freundlich_model(Ce, Qe)

Arguments

Ce

Numeric vector of equilibrium concentrations.

Qe

Numeric vector of amount adsorbed.

Value

A named list of Freundlich parameters and model details.

See Also

Other linear: bet_model(), langmuir_model(), temkin_model()

Examples

Ce <- c(1, 2, 3, 4, 5)
Qe <- c(0.8, 1.5, 2.1, 2.6, 2.9)
result <- freundlich_model(Ce, Qe)
print(result[1:2])
print(result$`Model Summary`)
print(result$Plot)

Langmuir Isotherm Model

Description

Langmuir isotherm assumes monolayer adsorption onto a surface with a finite number of identical sites (Langmuir, 1918). It is characterized by uniform energies of adsorption onto the surface and no transmigration of adsorbate in the plane of the surface. The model is described by the equation: Q = (Qmax * KL * Ce) / (1 + KL * Ce) where Q is the amount adsorbed, Ce is the equilibrium concentration, Qmax is the maximum adsorption capacity, and KL is the Langmuir constant. https://doi.org/10.1021/ja02242a004

Usage

langmuir_model(Ce, Qe)

Arguments

Ce

Numeric vector of equilibrium concentrations.

Qe

Numeric vector of amount adsorbed.

Value

A named list of Langmuir parameters and model details.

See Also

Other linear: bet_model(), freundlich_model(), temkin_model()

Examples

Ce <- c(1, 2, 3, 4, 5)
Qe <- c(0.8, 1.5, 2.1, 2.6, 2.9)
result <- langmuir_model(Ce, Qe)
print(result[1:2])
print(result$`Model Summary`)
print(result$Plot)

Non-linear BET Model

Description

Non-linear BET Model

Usage

nonlinear_bet(Ce, Qe, Cs = max(Ce) * 1.1)

Arguments

Ce

Numeric vector of equilibrium concentrations.

Qe

Numeric vector of amount adsorbed.

Cs

Saturation concentration.

Value

A named list of BET parameters and model details.

See Also

Other nonlinear: nonlinear_freundlich(), nonlinear_langmuir(), nonlinear_temkin()

Examples

Ce <- c(1, 2.5, 4, 5.5, 7)
Qe <- c(0.4, 1.0, 1.7, 2.3, 2.7)
result <- nonlinear_bet(Ce, Qe)
print(result$`BET Qm (mg/g)`)
print(result$`BET Cb`)
print(result$AIC)
print(result$`Pseudo R2`)
print(result$Plot)

Non-linear Freundlich Model

Description

Non-linear Freundlich Model

Usage

nonlinear_freundlich(Ce, Qe)

Arguments

Ce

Numeric vector of equilibrium concentrations.

Qe

Numeric vector of amount adsorbed.

Value

A named list of Freundlich parameters and model details.

See Also

Other nonlinear: nonlinear_bet(), nonlinear_langmuir(), nonlinear_temkin()

Examples

Ce <- c(0.5, 1, 2, 4, 6, 8)
Qe <- c(0.3, 0.8, 1.6, 2.4, 2.9, 3.2)
result <- nonlinear_freundlich(Ce, Qe)
print(result$`Freundlich Kf`)
print(result$`Freundlich n`)
print(result$AIC)
print(result$`Pseudo R2`)
print(result$Plot)

Non-linear Langmuir Model

Description

Fits the Langmuir isotherm model using non-linear least squares (nls).

Usage

nonlinear_langmuir(Ce, Qe)

Arguments

Ce

Numeric vector of equilibrium concentrations.

Qe

Numeric vector of amount adsorbed.

Value

A named list of Langmuir parameters and model details.

See Also

Other nonlinear: nonlinear_bet(), nonlinear_freundlich(), nonlinear_temkin()

Examples

Ce <- c(1, 2, 4, 6, 8, 10)
Qe <- c(0.9, 1.6, 2.3, 2.7, 2.9, 3.0)
result <- nonlinear_langmuir(Ce, Qe)
print(result$`Langmuir Qmax (mg/g)`)
print(result$`Langmuir KL (L/mg)`)
print(result$AIC)
print(result$`Pseudo R2`)
print(result$Plot)

Non-linear Temkin Model

Description

Non-linear Temkin Model

Usage

nonlinear_temkin(Ce, Qe, R = 8.314, T = 298)

Arguments

Ce

Numeric vector of equilibrium concentrations.

Qe

Numeric vector of amount adsorbed.

R

Universal gas constant.

T

Temperature in Kelvin.

Value

A named list of Temkin parameters and model details.

See Also

Other nonlinear: nonlinear_bet(), nonlinear_freundlich(), nonlinear_langmuir()

Examples

Ce <- c(0.5, 1.5, 3, 4.5, 6)
Qe <- c(0.7, 1.3, 2.0, 2.4, 2.7)
result <- nonlinear_temkin(Ce, Qe)
print(result$`Temkin A`)
print(result$`Temkin B`)
print(result$AIC)
print(result$`Pseudo R2`)
print(result$Plot)

Temkin Isotherm Model

Description

The Temkin isotherm considers the effects of indirect adsorbate/adsorbate interactions. It assumes that the heat of adsorption of all molecules in the layer decreases linearly with coverage (Temkin and Pyzhev 1940). The model is given by: Q = (RT / bT) * ln(AT * Ce)

Usage

temkin_model(Ce, Qe, R = 8.314, T = 298)

Arguments

Ce

Numeric vector of equilibrium concentrations.

Qe

Numeric vector of amount adsorbed.

R

Universal gas constant.

T

Temperature in Kelvin.

Value

A named list of Temkin parameters and model details.

See Also

Other linear: bet_model(), freundlich_model(), langmuir_model()

Examples

Ce <- c(1, 2, 3, 4, 5)
Qe <- c(0.8, 1.5, 2.1, 2.6, 2.9)
result <- temkin_model(Ce, Qe)
print(result[1:2])
print(result$`Model Summary`)
print(result$Plot)