Trajectoires quantiques et ce avec quoi ils mangent

Cette petite note explique comment dessiner de belles images, enfin, un peu de physique, dont on parle rarement, de la mécanique quantique de Bomov.



Petite introduction


Comme toute science-fiction et tout non-sens pseudoscientifique aiment à nous le dire, comme le film The Secret, les lois du micromonde sont très différentes de celles classiques auxquelles nous sommes habitués.
Dans le monde de la mécanique quantique, la probabilité donnée par la fonction d'onde régit tout.  psi (ceux qui s'intéressent aux détails peuvent consulter, par exemple, le post «Catalyse des muons du point de vue de la chimie quantique. Partie I: hydrogène ordinaire vs hydrogène muon» ).
Les jambes de toutes sortes de choses drôles, comme les chats Schrödinger , les principes d'incertitude de Heisenberg et les inégalités de Bell, découlent des propriétés probabilistes d'une technologie quantique.

Mais toutes ces images avec toutes sortes d'orbitales électroniques n'ont pas répondu à la question «comment un électron vole-t-il dans l'espace». Pour clarifier cette situation, les physiciens ont passé beaucoup de temps, mais n'ont pas pu y faire face. Mais David Bohm (connu de beaucoup par l'effet Aaronov-Bohm ) a finalement créé l' un des formalismes de la mécanique quantique (nom de lui-même) , dans lequel il existe encore des trajectoires le long desquelles la particule quantique se déplace. Et, contrairement aux intégrales du chemin de Feynman , chaque particule a exactement un chemin. Cette propriété vous permet fondamentalement de suivre le mouvement des particules et de comparer le mouvement des particules classiques et quantiques, dont nous traiterons dans cet article.
pas seulement le formalisme
En fait, personne ne s'intéresse particulièrement au formalisme lui-même, mais à partir de ce formalisme, on peut construire l'une des interprétations de la mécanique quantique, qui, en raison de la simplicité apparente de la mécanique classique, est appréciée par certains monstres (pas beaucoup, car ce n'est pas très facile d'entrer dans cette entreprise).
Nous ne discuterons pas de cette interprétation (ainsi que d'autres).


Trajectoires classiques et quantiques


Nous considérerons un système plutôt ennuyeux: un électron dans le domaine de plusieurs protons. Vous pouvez lire sur ce système, ainsi que sur la mécanique classique et quantique dans les première et deuxième parties des articles «La catalyse muonique du point de vue de la chimie quantique».

Le problème classique du mouvement des particules dans un certain potentiel est donné par la deuxième loi de Newton:

m ddotx=F


m est la masse des particules, x est la coordonnée, F est la force agissant sur la particule, et  ddotx= fracd2xdt2 - la dérivée seconde de la coordonnée de la particule dans le temps, ou accélération. Si seules des forces potentielles agissent dans le système, alors la force peut être exprimée à travers une nouvelle entité, l'énergie potentielle V comme

F= fracdVdx


Dans notre cas, un électron dans le domaine de plusieurs protons,

où l'électron interagit avec chacun des protons selon la loi de Coulomb

V(R)=ke2/R

, où k est un coefficient égal à 1 en unités atomiques, e est la charge d'électrons et R est la distance de l'électron au proton.
Dans ce cas, le potentiel total agissant sur l'électron sera égal à

V= sumNn=1Vn(Rn)= sumNn=1 fracke2Rn


où l'indice n numérote les protons (nombre total de protons N pièces), et R n est la distance entre l'électron et le nième proton.

Résoudre numériquement le diffur, qui est la deuxième loi de Newton, est une tâche galvaudée, l'essentiel est de définir la position et la vitesse initiales. Si l'électron vole trop vite, il se détachera de l'attraction du ou des protons et s'envolera à l'infini, et s'il n'y a qu'un peu d'énergie, il volera pour toujours dans le champ de l'un des noyaux, sans jamais visiter les autres.
Frottement rayonnant
Si nous prenions en compte la friction rayonnante , qui se produit du fait que lors d'un déplacement avec accélération, l'électron donnerait une partie de son énergie au champ électromagnétique, en l'envoyant quelque part, puis l'électron finirait par rouler sur le noyau dans un certain temps.

Donc, ce qui se passe dans les classiques, nous le savons.

Mais que va-t-il se passer dans la dynamique de Bomov?
Dans ce cas, la particule se déplacera également selon la deuxième loi de Newton avec un potentiel V=V mathrmC+V mathrmQV mathrmC - le potentiel classique de la loi de Newton habituelle, qui dans notre cas a la forme donnée ci-dessus.
C'est-à-dire en plus du potentiel classique, une autre entité agira sur lui: le potentiel quantique V mathrmQ ayant (dans le cas 1D) le formulaire

V mathrmQ= frac hbar22mA fracd2Adx2


A est l'amplitude (module) de la fonction d'onde A=| psi| (  psi=A exp(i varphi) varphi - phase de la fonction d'onde).
Donc, pour obtenir l'équation du mouvement d'une particule quantique, nous devons encore savoir quelque chose sur la fonction d'onde.
À propos des options masquées
Le formalisme de Bohm est une théorie avec des paramètres cachés. Mais comme le paramètre caché (fonction d'onde) n'est pas local, les résultats du calcul dans ce formalisme satisfont toujours les inégalités susmentionnées de Bell.


Dans le cas d'un proton, nous connaissons (voir par exemple ici ) l'expression exacte de la fonction d'onde électronique dans l'état fondamental (1s) [ en unités atomiques ]:

 psi(R)= exp(R)


À propos de la normalisation et des unités
Dans la formule du potentiel quantique, la normalisation du numérateur sera réduite avec le dénominateur, nous ne nous en soucierons donc pas.
L'argument de l'exposant, en fait, ne vaut pas R et R/a0a0 Est le rayon de Bohr (0,529 Å). Mais, puisque nous utilisons des unités atomiques, où a0=1 , cette unité de longueur, nous pouvons nous permettre de ne pas écrire. Vous pouvez en savoir plus à ce sujet ici .

Dans le cas de plusieurs protons, dans le cadre de la méthode des orbitales moléculaires en tant que combinaisons d'orbitales atomiques ( MO LKAO , voir ici ), l'état fondamental avec un degré de précision suffisant sera donné par la somme des orbitales 1s de chacun des atomes:

 psi approx sumNn=1 psin(Rn)= sumNn=1 exp(Rn)


Maintenant, pour découvrir le potentiel quantique, il vous suffit d'utiliser cette expression.
Eh bien <s> d </s>
Fonction  psi comme la somme des orbitales 1s est réelle, donc A= psi .
Puisqu'un électron peut se déplacer en trois dimensions, une dérivée unidimensionnelle est nécessaire Axx= fracd2Adx2 remplacer par sa généralisation tridimensionnelle:  DeltaA=Axx+Ayy+Azz . Opératrice  Delta peut être représenté comme le carré de l' opérateur nabla :  Delta= nabla2 . Vous pouvez également imaginer la distance Rn comment Rn= sqrt mathbfR2n mathbfRn Est le vecteur de rayon de l'électron par rapport au nième proton.

Alors

 DeltaA= nabla2 psi= sumNn=1 nabla2 psin(Rn)


La dérivée première est considérée comme facile:

 nabla psin(Rn)= nabla exp(Rn)= exp(Rn) cdot(1) cdot frac12 underbrace sqrt mathbfR2nRn cdot2 mathbfRn= exp(Rn) cdot frac mathbfRnRn


La dérivée seconde est déjà un peu plus compliquée:

 nabla( nabla exp(Rn))= frac mathbfRnRn nabla exp(Rn) exp(Rn) nabla frac mathbfRnRn= exp(Rn) frac2 exp(Rn)Rn


 frac mathbfRnRn nabla exp(Rn)= exp(Rn) cdot underbrace left( frac mathbfRnRn droite)21= exp(Rn) et
 exp(Rn) nabla frac mathbfRnRn= exp(Rn) cdot left( frac overbrace nabla mathbfRn3Rn frac2 mathbfR2n2R3n right)= frac2 exp(Rn)Rn .
Le résultat reste:
 Delta psi= overbrace sumNn=1 exp(Rn) psi sumNn=1 frac2 exp(Rn)Rn
Tout diviser en  psi=A et en multipliant par  frac hbar22m
nous obtenons
V mathrmQ= frac hbar22m left(1 sumNn=1 frac2 exp(Rn)Rn right)
L'unité lors de la différenciation pour obtenir de la force disparaîtra, vous ne pouvez donc quitter en toute sécurité que le deuxième terme.

En conséquence, nous pouvons noter notre potentiel quantique comme

V mathrmQ approx frac hbar2m sumNn=1 frac exp(Rn)Rn


et avec cette expression, nous pouvons déjà conduire la dynamique de Bohm d'un électron dans le domaine de nombreux protons.

Implémentation


Pour toute cette honte, le code a été écrit en python, il est disponible ici:
Code Python
from math import * import numpy as np cutoff=5.0e-4 Quantum=True def dist(r1,r2): return np.dot((r1-r2), (r1-r2)) def Vc(r, r0): if dist(r, r0)>=cutoff: return -1.0/dist(r, r0) else: return -1.0/cutoff rH=[] #h1 #rH.append(np.array([ 0.0, 0.0, 0.0])) #h2 rH.append(np.array([-1.0, 0.0, 0.0])) rH.append(np.array([+1.0, 0.0, 0.0])) def Vat(r): V=0.0 for rh in rH: V+=Vc(r,rh) return V def PsiA(r): psi=0.0 for rh in rH: if dist(r, rh)<1.0e3: psi+=np.exp(-dist(r, rh)) return psi def Vq(r): vq=0.0 for rh in rH: if dist(r, rh)>=cutoff: vq-=2.0*np.exp(-dist(r, rh))/dist(r, rh) else: vq-=2.0*np.exp(-cutoff)/cutoff vq*=(-0.5) # -0.5*hbar**2/me return vq def GradF(F, r): grad=np.zeros(3) dx=0.1 for i in range(0,3): dr=np.zeros(3) dr[i]=dx #print(dr) #print(F(r+dr)-F(r-dr)) grad[i]+=(F(r+dr)-F(r-dr))/(2.*dx) return grad dt=0.001 tmax=2.0e1 DR=1.0 dx=0.001 MaxR=10.0 t=0.0 cent=np.zeros(3) Ntrj=30 m=1.0 def GenRvBox(DX): return np.random.uniform(-DX,+DX,3) def GenRvSph(DX): r=np.random.uniform(0.0,DX) phi=np.random.uniform(0.0,2.0*np.pi) theta=np.random.uniform(0.0,np.pi) x=r*np.sin(theta)*np.cos(phi) y=r*np.sin(theta)*np.sin(phi) z=r*np.cos(theta) return np.array([x,y,z]) for ntrj in range(0,Ntrj): if Quantum: outf=open("bmd_%05i" % (ntrj) + ".trj", "w") else: outf=open("cmd_%05i" % (ntrj) + ".trj", "w") nat=np.random.randint(0,len(rH)) r=rH[nat]+GenRvSph(DR) rprev=r+GenRvBox(dx) outf.write("%15.10f %15.10f %15.10f\n" % tuple(r)) t=0.0 while t<=tmax and dist(r,cent)<=MaxR: F= -GradF(Vat, r) if Quantum: F-= GradF(Vq, r) rnew= 2.*r - rprev + (F/m)*dt**2 rprev=r r=rnew outf.write("%15.10f %15.10f %15.10f\n" % tuple(r)) t+=dt outf.close() exit() 


Nous ne discuterons que de quelques points.
La deuxième loi de Newton est intégrée à l' aide de l'algorithme de Verlet :

x(t+ Deltat)=2x(t)x(t Deltat)+ fracF(t)m Deltat2


La position initiale est générée en sélectionnant au hasard l'un des protons, une direction est choisie au hasard autour de lui (en utilisant des coordonnées sphériques). Pour définir la vitesse initiale, vous devez définir une autre position précédente. Il est sélectionné à l'aide d'un autre petit vecteur aléatoire.

En activant / désactivant le potentiel quantique, nous passons aux modes de mouvement quantiques / classiques.

Eh bien, vous pouvez créer de belles images en utilisant Gnuplot pour l'atome d'hydrogène

et pour la molécule H 2 +


Comme vous pouvez le voir, les trajectoires classiques (supérieures, bleues) sont soit très localisées, soit, si l'électron est contraint de se déplacer trop rapidement, fuir les noyaux. Dans le cas quantique (inférieur, rose), le potentiel quantique permet aux électrons de marcher beaucoup plus loin du noyau, et dans le cas de la molécule H 2 + , il vous permet de passer d'un proton à un autre, ce qui est une visualisation indirecte des liaisons chimiques.

Quelques mots sur la construction d'images: pour créer un effet néon, chaque chemin est tracé plusieurs fois, du blanc fin au noir épais, à travers les ombres de la couleur d'intérêt. Pour la commodité du choix d'une telle palette, vous pouvez par exemple utiliser le site https://www.color-hex.com/
Un exemple de script est donné ci-dessous.
Script pour Gnuplot
unset key
set xyplane relative 0

unset box

set view map

set size ratio -1

unset border
unset xtics
unset ytics

set terminal pngcairo size 2160,4096 backgr rgb "black"
set output "tmp.png"

yshift=-5.0
maxiC=29
maxiQ=29
splot \
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 30.0 lc rgb "#030d19" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 18.0 lc rgb "#071b33" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 17.0 lc rgb "#0a294c" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 16.0 lc rgb "#0e3766" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 15.0 lc rgb "#11457f" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 14.0 lc rgb "#155399" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 13.0 lc rgb "#1861b2" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 12.0 lc rgb "#1c6fcc" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 11.0 lc rgb "#1f7de5" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 10.0 lc rgb "#238bff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 9.0 lc rgb "#3896ff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 8. lc rgb "#4ea2ff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 7. lc rgb "#65adff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 6. lc rgb "#7bb9ff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 5. lc rgb "#91c5ff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 4. lc rgb "#a7d0ff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 3. lc rgb "#bddcff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 2. lc rgb "#d3e7ff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 1. lc rgb "#e9f3ff" not,\
for [i=0:maxiC] sprintf("cmd_%05i.trj", i) wl lw 0.5 lc rgb "#ffffff" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 30.0 lc rgb "#190613" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 18.0 lc rgb "#330c27" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 17.0 lc rgb "#4c123b" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 16.0 lc rgb "#66184f" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 15.0 lc rgb "#7f1e63" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 14.0 lc rgb "#992476" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 13.0 lc rgb "#b22a8a" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 12.0 lc rgb "#cc309e" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 11.0 lc rgb "#e536b2" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 10.0 lc rgb "#ff3dc6" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 9.0 lc rgb "#ff50cb" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 8. lc rgb "#ff63d1" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 7. lc rgb "#ff77d7" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 6. lc rgb "#ff8adc" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 5. lc rgb "#ff9ee2" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 4. lc rgb "#ffb1e8" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 3. lc rgb "#ffc4ed" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 2. lc rgb "#ffd8f3" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 1. lc rgb "#ffebf9" not,\
for [i=0:maxiQ] sprintf("bmd_%05i.trj", i) u 1:($2+yshift):3 wl lw 0.5 lc rgb "#ffffff" not



Conclusion


Les trajectoires de Bomov, bien que difficiles à comprendre et à calculer, vous permettent de dessiner de belles images qui montrent à quel point elles sont plus amusantes et plus riches que la mécanique classique.

Si vous avez des commentaires, des questions, des suggestions: écrivez. :)

Source: https://habr.com/ru/post/fr476948/


All Articles