Initial enthalpy calculations and enthalpy modelling

The enthalpy of adsorption represents the energy released as heat during the adsorption process as a function of loading. It can be obtained either indirectly, through the isosteric enthalpy method, or directly, using adsoption microcalorimetry. Once an enthalpy curve is calculated, a useful performance indicator is the enthalpy of adsorption at zero loading, corresponding to the inital interactions of the probe with the surface. pyGAPS contains two methods to determine the initial enthalpy of adsorption starting from an enthalpy curve.

First, make sure the data is imported by running the import notebook.


In [1]:
%run import.ipynb


Selected 1 samples
Selected 23 adsorbates
Selected 5 isotherms with nitrogen at 77K
Selected 2 room temperature calorimetry isotherms
Selected 2 isotherms for IAST calculation
Selected 3 isotherms for isosteric enthalpy calculation

Initial point method

The point method of determining enthalpy of adsorption is the simplest method. It just returns the first measured point in the enthalpy curve.

Depending on the data, the first point method may or may not be representative of the actual value.


In [2]:
import matplotlib.pyplot as plt

# Initial point method
isotherm = next(i for i in isotherms_calorimetry if i.material=='HKUST-1(Cu)')
res = pygaps.initial_enthalpy_point(isotherm, 'enthalpy', verbose=True)
plt.show()

isotherm = next(i for i in isotherms_calorimetry if i.material=='Takeda 5A')
res = pygaps.initial_enthalpy_point(isotherm, 'enthalpy', verbose=True)
plt.show()


The initial enthalpy of adsorption is: 
	E = 28.79
The initial enthalpy of adsorption is: 
	E = 34.73

Compound model method

This method attempts to model the enthalpy curve by the superposition of several contributions. It is slower, as it runs a constrained minimisation algorithm with several initial starting guesses, then selects the optimal one.


In [3]:
# Modelling method
isotherm = next(i for i in isotherms_calorimetry if i.material=='HKUST-1(Cu)')
res = pygaps.initial_enthalpy_comp(isotherm, 'enthalpy', verbose=True)
plt.show()

isotherm = next(i for i in isotherms_calorimetry if i.material=='Takeda 5A')
res = pygaps.initial_enthalpy_comp(isotherm, 'enthalpy', verbose=True)
plt.show()


Bounds: 
	const = (19.849417219261177, 37.63022921697883)
	preexp = (0, 150) , exp = (0, inf) , exploc = (0, 0.5)
	prepowa = (0, 50) , powa = (1, 20)
	prepowr = (-50, 0) , powr = (1, 20)


Minimizing routine number 1
Initial guess: 
	const = 28.739823218120005
	preexp = 0.0 , exp = 0.0 , exploc = 0.0
	prepowa = 0.0 , powa = 1.0
	prepowr = 0.0 , powr = 1.0
Optimization terminated successfully.    (Exit mode 0)
            Current function value: 0.14458327410306143
            Iterations: 81
            Function evaluations: 818
            Gradient evaluations: 81


Minimizing routine number 2
Initial guess: 
	const = 14.369911609060003
	preexp = 0.048145386979996374 , exp = 0.0 , exploc = 0.0
	prepowa = 0.0 , powa = 1.0
	prepowr = -8.554071327020004 , powr = 1.0
Optimization terminated successfully.    (Exit mode 0)
            Current function value: 0.1445832720275171
            Iterations: 94
            Function evaluations: 947
            Gradient evaluations: 94


Minimizing routine number 3
Initial guess: 
	const = 28.739823218120005
	preexp = 0.07221808046999456 , exp = 10.0 , exploc = 0.1
	prepowa = 0.01 , powa = 3.0
	prepowr = 0.0 , powr = 1.0
Optimization terminated successfully.    (Exit mode 0)
            Current function value: 0.14458327603193163
            Iterations: 84
            Function evaluations: 845
            Gradient evaluations: 84


Minimizing routine number 4
Initial guess: 
	const = 28.739823218120005
	preexp = 0.0 , exp = 0.0 , exploc = 0.1
	prepowa = 0.0 , powa = 3.0
	prepowr = -0.01 , powr = 3.0
Optimization terminated successfully.    (Exit mode 0)
            Current function value: 0.1445832731851912
            Iterations: 120
            Function evaluations: 1212
            Gradient evaluations: 120


Final best fit 0.1445832731851912


The initial enthalpy of adsorption is: 
	E = 28.54
The constant contribution is 
	19.85
The exponential contribution is 
	8.71 * exp(1.51E+01 * n) with the limit at 0.41
The guest-guest attractive contribution is 
	48 * n^2.6
The guest-guest repulsive contribution is 
	-50 * n^5.5
Bounds: 
	const = (23.797607891739087, 32.54769036367995)
	preexp = (0, 150) , exp = (0, inf) , exploc = (0, 0.5)
	prepowa = (0, 50) , powa = (1, 20)
	prepowr = (-50, 0) , powr = (1, 20)


Minimizing routine number 1
Initial guess: 
	const = 28.17264912770952
	preexp = 0.0 , exp = 0.0 , exploc = 0.0
	prepowa = 0.0 , powa = 1.0
	prepowr = 0.0 , powr = 1.0
Optimization terminated successfully.    (Exit mode 0)
            Current function value: 0.09541800223390323
            Iterations: 9
            Function evaluations: 90
            Gradient evaluations: 9


Minimizing routine number 2
Initial guess: 
	const = 14.08632456385476
	preexp = 6.557036324590477 , exp = 0.0 , exploc = 0.0
	prepowa = 2.9277314033904815 , powa = 1.0
	prepowr = 0.0 , powr = 1.0
Optimization terminated successfully.    (Exit mode 0)
            Current function value: 0.007235461270055401
            Iterations: 74
            Function evaluations: 743
            Gradient evaluations: 74


Minimizing routine number 3
Initial guess: 
	const = 28.17264912770952
	preexp = 9.835554486885716 , exp = 10.0 , exploc = 0.1
	prepowa = 0.01 , powa = 3.0
	prepowr = 0.0 , powr = 1.0
Optimization terminated successfully.    (Exit mode 0)
            Current function value: 0.00723546030619833
            Iterations: 62
            Function evaluations: 620
            Gradient evaluations: 62


Minimizing routine number 4
Initial guess: 
	const = 28.17264912770952
	preexp = 0.0 , exp = 0.0 , exploc = 0.1
	prepowa = 0.0 , powa = 3.0
	prepowr = -0.01 , powr = 3.0
Optimization terminated successfully.    (Exit mode 0)
            Current function value: 0.007334793821042706
            Iterations: 62
            Function evaluations: 621
            Gradient evaluations: 62


Final best fit 0.007334793821042706


The initial enthalpy of adsorption is: 
	E = 37.12
The constant contribution is 
	26.53
The exponential contribution is 
	21.18 * exp(1.23E+01 * n) with the limit at 0.00
The guest-guest attractive contribution is 
	50 * n^1.8e+01
The guest-guest repulsive contribution is 
	-46 * n^1.8e+01