O robicie Bohra koncepcji de Broglie'a i co z tego może jeszcze wyniknąć

 Kilka wakacyjnych dni roku 2021 poświęciłem na przygotowanie procedury, która pokazuje tor w modelu Bohra atomu wodoru. Zadałem sobie pytanie, czy ruch elektronu po okręgu jest jedynym, który spełnia warunek kwantowania momentu pędu dany wzorem:

Wyszedłem od tego, żeby średni promień ruchu po jakiejś krzywej, albo łamanej był taki, jak np. promień pierwszej orbity Bohra. Ten pomysł nieco zmodyfikował zapis równania na moment pędu elektronu:


Teraz wystarczyło znaleźć jakiś tor, który zachowywałby średnio moment pędu. Wydało mi się dość naturalne, żeby przyjąć jakiś tor, który odpowiada np. poglądowi de Broglie'a na falową naturę elektronu. Oznaczało to, że taki tor (ale z pominięciem interpretacji falowej) może odpowiadać zamkniętej sinusoidzie wokół jądra atomowego. Taka sinusoida byłaby scharakteryzowana przez jakąś częstotliwość i amplitudę. 


Ruch elektronu po sinusoidalnej orbicie dookoła jądra atomowego


Dla porównania poniżej ruch po kołowej orbicie Bohra. 



Elektron krążący po orbicie Bohra

Okazało się, że ruch sinusoidalny daje, co do średniej, stały moment pędu, który można dobrać tak, aby spełniał wymogi modelu Bohra dla wybranej orbity.

Przedstawiony model jest pierwszym krokiem do budowy chaotycznego modelu atomu. Ważny element polega na tym, że ruch sinusoidalny leży w większości poza kołową orbitą. Przecina ją w wybranych punktach. Tę myśl chciałbym kontynuować. Oznacza to zbudowanie modelu atomu, który przypomina ten opisany przez funkcje gęstości elektronowej. Dowcip jednak polega na tym, że nie powinno tam być tych funkcji, nie powinno być toru (przynajmniej w przestrzeni trójwymiarowej), powinno się dać obliczyć rozkład gęstości elektronowej w trójwymiarowej przestrzeni wokół jądra i atom powinien mieć rozmyte, ale skończone rozmiary. Sądzę, że jest to wykonalne - przynajmniej jako ćwiczenie z myślenia.

Poniżej tekst programu, który napisałem w Small Basicu, a który rysuje oba przedstawione wyżej tory:

'bohr-sinusoida i średni moment pędu

dane()

rysuj_jadro()

'Program.Delay(10000) 'w celu nagrania z ekranu za pomocą xgame Win10

For alfa = 0 To 3*koniec_okregu Step krok

  r1 = r + amplituda*math.Sin(czestosc*alfa) 'sinusoida przes o r na osi y jeśli r1 = r to mamy model Bohra

  xw1 = r1*math.Cos(alfa)        'punkt na sinusoidzie wsp.alfa wektora promienia

  yw1 = r1*math.sin(alfa)        ' j.w.

  rysuj_punkt()

  r2 = r + amplituda*math.Sin(czestosc*(alfa + krok)) 'promień następnego punktu na sinusoidzie

  xw2 = r2*math.Cos(alfa + krok) - xw1 'wsp. x wektora pędu przy stałej prędkości

  yw2 = r2*math.Sin(alfa + krok) - yw1 'wsp y wektora pędu

  'skalowanie współrzednych wektora pędu

  xw2 = xw2 * skala2

  yw2 = yw2 * skala2

  'moment pędu wektorów

  'moment_pedu()

EndFor

'TextWindow.WriteLine("Średni moment pędu = " + Lesuma/indeks)

'podprocedury

Sub dane

  ball = Shapes.AddEllipse(10,10) 'zdefiniowanie obiektu da animacji

  ball2 = Shapes.AddEllipse(6,6)  'drugi biekt do animacji

  GraphicsWindow.PenWidth=2 

  r = 1  'promień atomu wodoru w jednostkach atomowych

  koniec_okregu = 2*Math.Pi 

  amplituda = 0.2  'amplituda sinusoidy

  czestosc = 30    'częstość sinusoidy

  skala = 180      'skala rysowania

  skala2 = 996.001 'skala dla pędu aby uzyskać średni moment pędu pkoło 1.

  transx = 300     'przesunięcie pocz. układu wsp. na osi x

  transy = 220     'przesunięcie pocz. układu wsp. na osi y

  krok = 0.001     'krok kąta

  indeks = 1       'wskażnik do obliczenia średniego momentu pędu

  Lesuma = 0       'początkowy moment pędu

EndSub

Sub rysuj_punkt

  xe = xw1*skala + transx

  ye = yw1*skala + transy

  GraphicsWindow.SetPixel(xe,ye, "red")

  xkolo = r * Math.Cos(alfa)

  ykolo = r * Math.Sin(alfa)

  GraphicsWindow.SetPixel(xkolo*skala + transx, ykolo*skala + transy, "blue")

  Shapes.Move(ball, xe-5, ye-5)

  opozniacz() 'lepiej działa niż program.delay()

EndSub

Sub rysuj_jadro

  GraphicsWindow.SetPixel(transx,transy, "green") 'środek jądra

  GraphicsWindow.DrawEllipse(transx -10, transy - 10, 20,20) 'koło imitujące jądro

EndSub

Sub moment_pedu

  L = xw1*yw2 - xw2*yw1 'moment pędu z iloczynu wektorowego

  xe = alfa*skala       'do rysunku zmian mpmentu pędu

  Le = L*skala +100     'do rysunku zmian momętu pędu

  Lesuma = Lesuma +L    'zliczanie pędu całkowitego

  indeks = indeks+1     'zliczanie mianownika do średniego momętu pędu

  GraphicsWindow.SetPixel(xe,Le, "green")

  Shapes.Move(ball2, xe-3, Le-3)

EndSub

Sub opozniacz

  For j = 1 To 2000 ' "opóźniacz rysowania" - komenda program.delay(100) jakoś słabo działa

    a=1

  EndFor

EndSub

Komentarze

Popularne posty z tego bloga

Czas na gry w chaos. Paproć Barnsleya