Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes | ||
teaching:progappchim:matplotlib_gallery:potentiel_energy_surface [2015/05/08 10:03] – créée villersd | teaching:progappchim:matplotlib_gallery:potentiel_energy_surface [2016/04/29 04:29] – 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 ==== | ||
+ | |||
+ | <sxh python; title : 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.)))/ | ||
+ | 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:// | ||
+ | |||
+ | Voir aussi : | ||
+ | * [[http:// | ||
+ | * [[http:// | ||