TrajetĂłrias quĂąnticas e o que elas comem

Esta pequena nota Ă© sobre como desenhar belas imagens, bem, um pouco sobre fĂ­sica, sobre a qual raramente se fala, sobre mecĂąnica quĂąntica de Bomov.



Pequena introdução


Como qualquer ficção científica e bobagem pseudocientífica gosta de nos contar, como o filme O Segredo, as leis do microworld são muito diferentes das clåssicas com as quais estamos acostumados.
No mundo da mecĂąnica quĂąntica, a probabilidade dada pela função de onda governa tudo.  psi (os interessados ​​em detalhes podem olhar, por exemplo, no post "CatĂĄlise de Muon do ponto de vista da quĂ­mica quĂąntica. Parte I: hidrogĂȘnio comum versus hidrogĂȘnio do mĂșon" ).
As pernas de todo tipo de coisa engraçada, como os gatos de Schrödinger , os princípios da incerteza de Heisenberg e as desigualdades de Bell, crescem a partir das propriedades probabilísticas de um mecanismo quùntico.

Mas todas essas imagens com todos os tipos de orbitais de elétrons não responderam à pergunta "como um elétron voa no espaço". Para esclarecer essa situação, os físicos passaram muito tempo, mas não conseguiram lidar com isso. Mas David Bohm (conhecido por muitos pelo efeito Aaronov-Bohm ) finalmente criou um dos formalismos da mecùnica quùntica (nome próprio) , em que ainda existem trajetórias pelas quais a partícula quùntica se move. E, diferentemente das integrais do caminho de Feynman , esse caminho para cada partícula é exatamente um. Essa propriedade permite fundamentalmente rastrear o movimento de partículas e comparar o movimento de partículas clåssicas e quùnticas, com as quais trataremos neste artigo.
nĂŁo apenas formalismo
Na verdade, ninguém estå particularmente interessado no formalismo em si, mas a partir desse formalismo é possível construir uma das interpretaçÔes da mecùnica quùntica, que, devido à aparente simplicidade da mecùnica clåssica, é amada por alguns malucos (não muitos, porque não é muito fåcil entrar nesse ramo).
Não discutiremos essa interpretação (assim como outras).


TrajetĂłrias clĂĄssicas e quĂąnticas


Vamos considerar um sistema bastante chato: um elĂ©tron no campo de vĂĄrios prĂłtons. VocĂȘ pode ler sobre esse sistema, bem como sobre a mecĂąnica clĂĄssica e quĂąntica na primeira e na segunda parte dos posts "CatĂĄlise Muon do ponto de vista da quĂ­mica quĂąntica".

O problema clĂĄssico do movimento de partĂ­culas em um certo potencial Ă© dado pela segunda lei de Newton:

m ddotx=F


onde m Ă© a massa da partĂ­cula, x Ă© a coordenada, F Ă© a força que atua sobre a partĂ­cula e  ddotx= fracd2xdt2 - a segunda derivada da coordenada da partĂ­cula no tempo ou aceleração. Se apenas forças potenciais atuam no sistema, a força pode ser expressa atravĂ©s de uma nova entidade, a energia potencial V como

F=− fracdVdx


No nosso caso, um elétron no campo de vårios prótons,

onde o elétron interage com cada um dos prótons de acordo com a lei de Coulomb

V(R)=−ke2/R

, onde k é um coeficiente igual a 1 em unidades atÎmicas, e é a carga do elétron e R é a distùncia do elétron ao próton.
Nesse caso, o potencial total de ação no elétron serå igual a

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


onde o índice n numera os prótons (total de prótons N pedaços) e R n é a distùncia do elétron ao nono próton.

Resolver numericamente o diffur, que Ă© a segunda lei de Newton, Ă© uma tarefa simples, o principal Ă© definir a posição e a velocidade iniciais. Se o elĂ©tron voa muito rĂĄpido, ele rompe a atração do (s) prĂłton (s) e voa para o infinito, e se houver apenas um pouco de energia, ele vibrarĂĄ para sempre no campo de um dos nĂșcleos, nunca visitando os outros.
Atrito radiante
Se levarmos em consideração o atrito radiante , que ocorre devido ao fato de que, ao se mover com aceleração, o elĂ©tron daria parte de sua energia ao campo eletromagnĂ©tico, emitindo-o em algum lugar, o elĂ©tron acabaria rolando para o nĂșcleo em algum tempo.

EntĂŁo, o que acontece nos clĂĄssicos, nĂłs sabemos.

Mas o que acontecerĂĄ na dinĂąmica de Bomov?
Nesse caso, a partĂ­cula tambĂ©m se moverĂĄ de acordo com a segunda lei de Newton com potencial V=V mathrmC+V mathrmQ onde V mathrmC - o potencial clĂĄssico da lei de Newton usual, que no nosso caso tem a forma dada acima.
I.e. alĂ©m do potencial clĂĄssico, outra entidade atuarĂĄ sobre ele: o potencial quĂąntico V mathrmQ tendo (no caso 1D) a forma

V mathrmQ=− frac hbar22mA fracd2Adx2


onde A Ă© a amplitude (mĂłdulo) da função de onda A=| psi| (  psi=A exp(i varphi) onde  varphi - fase da função de onda).
Portanto, para obter a equação de movimento de uma partícula quùntica, ainda precisamos saber algo sobre a função de onda.
Sobre opçÔes ocultas
O formalismo de Bohm é uma teoria com parùmetros ocultos. Mas como o parùmetro oculto (função de onda) não é local, os resultados do cålculo nesse formalismo ainda satisfazem as desigualdades mencionadas por Bell.


No caso de um próton, sabemos (veja, por exemplo, aqui ) a expressão exata da função da onda de elétrons no estado do solo (1s) [ em unidades atÎmicas ]:

 psi(R)= exp(−R)


Sobre normalização e unidades
Na fórmula para o potencial quùntico, a normalização do numerador serå reduzida com o denominador, portanto não nos preocuparemos com isso.
O argumento do expoente, de fato, nĂŁo vale a pena R e R/a0 onde a0 É o raio de Bohr (0,529 Å). Mas, como usamos unidades atĂŽmicas, onde a0=1 , essa unidade de comprimento que podemos dar ao luxo de nĂŁo escrever. VocĂȘ pode ler mais sobre isso aqui .

No caso de vårios prótons, na estrutura do método dos orbitais moleculares como combinaçÔes de orbitais atÎmicos ( MO LKAO , veja aqui ), o estado fundamental com um grau de precisão suficiente serå dado pela soma dos orbitais 1s de cada um dos åtomos:

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


Agora, para descobrir o potencial quĂąntico, vocĂȘ sĂł precisa usar essa expressĂŁo.
Bem <s> d </s>
Função  psi como a soma dos orbitais 1s Ă© real, portanto A= psi .
Como um elĂ©tron pode se mover em trĂȘs dimensĂ”es, Ă© necessĂĄria uma derivada unidimensional A″xx= fracd2Adx2 substitua por sua generalização tridimensional:  DeltaA=A″xx+A″aa+A″zz . Operador  Delta pode ser representado como o quadrado do operador nabla :  Delta= nabla2 . VocĂȘ tambĂ©m pode imaginar a distĂąncia Rn como Rn= sqrt mathbfR2n onde  mathbfRn É o vetor de raio do elĂ©tron em relação ao enĂ©simo prĂłton.

EntĂŁo

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


A primeira derivada Ă© considerada fĂĄcil:

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


A segunda derivada jĂĄ Ă© um pouco mais complicada:

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


onde − frac mathbfRnRn nabla exp(−Rn)= exp(−Rn) cdot underbrace left(− frac mathbfRnRn right)21= exp(−Rn) e
− exp(−Rn) nabla frac mathbfRnRn=− exp(−Rn) cdot left( frac substitua nabla mathbfRn3Rn− frac2 mathbfR2n2R3n right)=− frac2 exp(−Rn)Rn .
O resultado permanece:
 Delta psi= overbrace sumNn=1 exp(−Rn) psi− sumNn=1 frac2 exp(−Rn)Rn
Dividindo tudo em  psi=A e multiplicando por − frac hbar22m
nĂłs temos
V mathrmQ=− frac hbar22m left(1− sumNn=1 frac2 exp(−Rn)Rn right)
A unidade durante a diferenciação para obter força desaparecerĂĄ, portanto vocĂȘ poderĂĄ sair com segurança apenas do segundo perĂ­odo.

Como resultado, podemos escrever nosso potencial quĂąntico como

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


e com essa expressão jå podemos dirigir a dinùmica de um elétron de Bohm no campo de muitos prótons.

Implementação


Por toda essa desgraça, o código foi escrito em python, estå disponível aqui:
CĂłdigo 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() 


Vamos discutir apenas alguns pontos.
A segunda lei de Newton Ă© integrada usando o algoritmo Verlet :

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


A posição inicial Ă© gerada pela seleção aleatĂłria de um dos prĂłtons, uma direção Ă© selecionada aleatoriamente em torno dele (usando coordenadas esfĂ©ricas). Para definir a velocidade inicial, vocĂȘ precisa definir outra posição anterior. É selecionado usando outro pequeno vetor aleatĂłrio.

Ativando / desativando o potencial quĂąntico, passamos para os modos de movimento quĂąntico / clĂĄssico.

Bem, entĂŁo, vocĂȘ pode criar belas imagens usando o Gnuplot para o ĂĄtomo de hidrogĂȘnio

e para a molécula H2 +


Como vocĂȘ pode ver, as trajetĂłrias clĂĄssicas (superior, azul) sĂŁo muito localizadas ou, se o elĂ©tron for forçado a se mover muito rapidamente, fogem dos nĂșcleos. No caso quĂąntico (inferior, rosa), o potencial quĂąntico permite que os elĂ©trons caminhem significativamente mais longe do nĂșcleo e, no caso da molĂ©cula H2 + , permite executar de um prĂłton para outro, que Ă© uma visualização indireta de ligaçÔes quĂ­micas.

Algumas palavras sobre a criação de figuras: para criar um efeito de nĂ©on, cada caminho Ă© desenhado vĂĄrias vezes, do branco fino ao preto grosso, atravĂ©s das sombras da cor de seu interesse. Para a conveniĂȘncia de escolher essa paleta, vocĂȘ pode, por exemplo, usar o site https://www.color-hex.com/
Um script de exemplo Ă© fornecido abaixo.
Script para 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



ConclusĂŁo


As trajetĂłrias de Bomov, apesar de difĂ­ceis de entender e calcular, permitem desenhar belas imagens que mostram como Ă© mais divertido e rico que a mecĂąnica clĂĄssica.

Se vocĂȘ tiver comentĂĄrios, perguntas, sugestĂ”es: escreva. :)

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


All Articles