Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| teaching:progappchim:matplotlib_gallery:potentiel_energy_surface [2015/05/08 10:03] – créée villersd | teaching:progappchim:matplotlib_gallery:potentiel_energy_surface [2020/12/07 17:22] (Version actuelle) – [Programme] villersd | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Surface d' | ====== Surface d' | ||
| + | |||
| + | ===== Historique ===== | ||
| + | |||
| + | Eyring et Polanyi ont publié en 1931 l' | ||
| + | |||
| + | ===== Représentation graphique ===== | ||
| + | L' | ||
| + | |||
| + | Des expression analytiques sont proposées pour un état d' | ||
| + | |||
| + | * $E_{bond}= D_e [\exp(-2\beta(r-r_e))-2\exp(-\beta(r-r_e))]$ | ||
| + | * $E_{ant}= \frac{D_e}{2} [\exp(-2\beta(r-r_e))+2\exp(-\beta(r-r_e))]$ | ||
| + | |||
| + | $r_e$ est la distance interatomique d' | ||
| + | |||
| + | Pour 2 atomes d' | ||
| + | * $E_{bond}= \frac{Q_{AB}+\alpha_{AB}}{1+S^2_{AB}} = \frac{Q_{AB}+\alpha_{AB}}{1+k}$ | ||
| + | * $E_{ant}= \frac{Q_{AB}-\alpha_{AB}}{1-S^2_{AB}} = \frac{Q_{AB}-\alpha_{AB}}{1-k}$ | ||
| + | |||
| + | Où $k=S^2_{AB}$ et $Q_{AB}$, $\alpha_{AB}$ et $S_{AB}$ sont respectivement les intégrales de coulomb, d' | ||
| + | |||
| + | La solution proposée par Sato pour 3 atomes A, B, C, avec l' | ||
| + | * $E = \frac{1}{1+k} \{ Q_{AB} + Q_{BC} + Q_{CA} - \sqrt{\frac{2}{1}[(\alpha_{AB} - \alpha_{BC})^2 + (\alpha_{BC} - \alpha_{CA})^2 + (\alpha_{CA} - \alpha_{AB})^2 ]} \}$ | ||
| + | |||
| + | On obtient facilement $Q_{AB}$ et $\alpha_{AB}$ : | ||
| + | * $Q_{AB} = ((1+k)E_{bond} + (1-k)E_{ant}) / 2$ | ||
| + | * $\alpha_{AB} = ((1+k)E_{bond} - (1-k)E_{ant}) / 2$ | ||
| + | |||
| + | Sato présente des PES avec l' | ||
| + | |||
| + | ==== Programme ==== | ||
| + | |||
| + | <code python PES-contour-01.py> | ||
| + | # | ||
| + | # -*- coding: utf-8 -*- | ||
| + | """ | ||
| + | Tracés de lignes de niveau ou isolignes | ||
| + | Application : Potentiel Energy Surface de la réaction | ||
| + | H + H2 --> H2 + H | ||
| + | |||
| + | """ | ||
| + | # ref : http:// | ||
| + | |||
| + | import matplotlib.pyplot as plt # directive d' | ||
| + | import numpy as np # directive d' | ||
| + | from mpl_toolkits.mplot3d import Axes3D | ||
| + | |||
| + | def Ebond(rAB): | ||
| + | return D_e * (np.exp(-2.*beta*(rAB-r_e)) - 2.*np.exp(-beta*(rAB-r_e))) | ||
| + | def Eant(rAB): | ||
| + | return 0.5 * D_e * (np.exp(-2.*beta*(rAB-r_e)) + 2.*np.exp(-beta*(rAB-r_e))) | ||
| + | def Q(rAB): | ||
| + | return 0.5 * ((1.+k)*Ebond(rAB) + (1.-k)*Eant(rAB)) | ||
| + | def a(rAB): | ||
| + | return 0.5 * ((1.+k)*Ebond(rAB) - (1.-k)*Eant(rAB)) | ||
| + | |||
| + | beta=19.3E-3 # pm-1 | ||
| + | r_e=74.1 # pm | ||
| + | D_e = .76 # E-18 J | ||
| + | k=0.18 | ||
| + | rmin=10. | ||
| + | rmax=400. | ||
| + | num=100 | ||
| + | x_1d = np.linspace(rmin, | ||
| + | print x_1d.shape, x_1d.dtype, x_1d.ndim | ||
| + | y_1d = np.linspace(rmin, | ||
| + | print y_1d.shape, y_1d.dtype, y_1d.ndim | ||
| + | X, Y = np.meshgrid(x_1d, | ||
| + | print X.shape, X.dtype, X.ndim, Y.shape, Y.dtype, Y.ndim | ||
| + | E=(Q(X)+Q(Y)+Q(X+Y)-np.sqrt(2.*( (a(X)-a(Y) )**2.+(a(Y)-a(X+Y) )**2.+(a(X+Y)-a(X) )**2.) ))/(1.+k) | ||
| + | print np.min(E) | ||
| + | |||
| + | fig = plt.figure(figsize=(12, | ||
| + | ax = fig.add_subplot(111) | ||
| + | # cf. http:// | ||
| + | ax.set_aspect(" | ||
| + | levels = np.linspace(-1.7, | ||
| + | CS1 = plt.contour(X, | ||
| + | plt.clabel(CS1, | ||
| + | CS2 = plt.contourf(X, | ||
| + | # | ||
| + | |||
| + | plt.title(' | ||
| + | plt.xlabel(' | ||
| + | plt.ylabel(' | ||
| + | |||
| + | fig = plt.figure(2, | ||
| + | ax = Axes3D(fig) | ||
| + | ax.plot_surface(X, | ||
| + | ax.set_xlabel(' | ||
| + | ax.set_ylabel(' | ||
| + | ax.set_zlabel(' | ||
| + | plt.show() | ||
| + | </ | ||
| + | |||
| + | Avec les paramètres essayés, la valeur minimale de E est environ -1.603 | ||
| + | ==== Sorties graphiques ==== | ||
| + | === Lignes de contour === | ||
| + | |||
| + | {{: | ||
| + | |||
| + | === Surface 3D === | ||
| + | |||
| + | {{: | ||
| ===== Références ===== | ===== Références ===== | ||
| Ligne 8: | Ligne 112: | ||
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | * W H Miller, Recent Advances in Quantum Mechanical Reactive Scattering Theory, Including Comparison of Recent Experiments with Rigorous Calculations of State-to-State Cross Sections for the H/ | ||
| + | * Peterson, Kirk A., Woon, David E., Dunning, Thom H. , Benchmark calculations with correlated molecular wave functions. IV. The classical barrier height of the H+H2→H2+H reaction, | ||
| + | |||
| + | |||
| + | |||
| + | Voir aussi : | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||