.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "api/gallery/surface/tpd/plot_01_redhead_tpd.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_api_gallery_surface_tpd_plot_01_redhead_tpd.py: Redhead's analysis of temperature-programmed desorption ========================================================== In a TPD experiment a covered surface is heated at a steady rate :math:`\beta` while the desorbing gas is recorded, and each binding state shows up as a peak. :func:`~chemistrykit.surface.systems.tpd.simulate_tpd` integrates the Polanyi-Wigner rate equation to produce these spectra. Redhead (1962) turned a first-order peak temperature :math:`T_p` into a desorption energy: :math:`E_d = RT_p[\ln(\nu T_p/\beta) - 3.64]` (:func:`~chemistrykit.surface.systems.tpd.redhead_desorption_energy`). Below, the formula is checked against the exact peak condition (:func:`~chemistrykit.surface.systems.tpd.first_order_peak_temperature`). First-order peaks shift with heating rate but not with coverage, while second-order peaks move to lower temperature as the coverage rises. .. GENERATED FROM PYTHON SOURCE LINES 20-34 .. code-block:: Python import matplotlib.pyplot as plt from chemistrykit.surface.systems.tpd import first_order_peak_temperature, redhead_desorption_energy, simulate_tpd Ed, nu = 110.0e3, 1.0e13 # J/mol, 1/s for beta in [1.0, 10.0, 100.0]: res = simulate_tpd(Ed, nu, beta, T_start=250.0, T_end=650.0) Ed_redhead = redhead_desorption_energy(res.peak_temperature, nu, beta) print( f"beta = {beta:5.1f} K/s: T_p = {res.peak_temperature:.2f} K " f"(exact {first_order_peak_temperature(Ed, nu, beta):.2f} K), " f"Redhead E_d = {Ed_redhead / 1e3:.2f} kJ/mol (true {Ed / 1e3:.0f})" ) .. rst-class:: sphx-glr-script-out .. code-block:: none beta = 1.0 K/s: T_p = 407.53 K (exact 407.53 K), Redhead E_d = 109.46 kJ/mol (true 110) beta = 10.0 K/s: T_p = 436.65 K (exact 436.65 K), Redhead E_d = 109.17 kJ/mol (true 110) beta = 100.0 K/s: T_p = 470.08 K (exact 470.08 K), Redhead E_d = 108.82 kJ/mol (true 110) .. GENERATED FROM PYTHON SOURCE LINES 35-57 .. code-block:: Python fig, axes = plt.subplots(1, 3, figsize=(15, 4)) for beta in [1.0, 10.0, 100.0]: res = simulate_tpd(Ed, nu, beta, T_start=250.0, T_end=650.0) axes[0].plot(res.T, res.desorption_rate * beta, label=rf"$\beta$ = {beta:g} K/s") axes[0].set_xlabel("T (K)") axes[0].set_ylabel(r"desorption rate $-d\theta/dt$ (1/s)") axes[0].set_title("First order: peak shifts with heating rate") axes[0].legend() for theta0 in [0.25, 0.5, 1.0]: res = simulate_tpd(Ed, nu, 10.0, theta0=theta0, T_start=250.0, T_end=650.0) axes[1].plot(res.T, res.desorption_rate, label=rf"$\theta_0$ = {theta0}") res2 = simulate_tpd(Ed, nu, 10.0, theta0=theta0, order=2, T_start=250.0, T_end=650.0) axes[2].plot(res2.T, res2.desorption_rate, label=rf"$\theta_0$ = {theta0}") axes[1].set_title("First order: peak fixed as coverage varies") axes[2].set_title("Second order: peak moves down as coverage rises") for ax in axes[1:]: ax.set_xlabel("T (K)") ax.set_ylabel(r"$-d\theta/dT$ (1/K)") ax.legend() plt.tight_layout() plt.show() .. image-sg:: /api/gallery/surface/tpd/images/sphx_glr_plot_01_redhead_tpd_001.png :alt: First order: peak shifts with heating rate, First order: peak fixed as coverage varies, Second order: peak moves down as coverage rises :srcset: /api/gallery/surface/tpd/images/sphx_glr_plot_01_redhead_tpd_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.134 seconds) .. _sphx_glr_download_api_gallery_surface_tpd_plot_01_redhead_tpd.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_01_redhead_tpd.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_01_redhead_tpd.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_01_redhead_tpd.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_