Graficzna symulacja ruchu czasteczki w akceleratorze

Niniejszy notebook jest graficzna symulacja dzialania akceleratora. Wartosci parametrow sa dobrane "dydaktycznie", gdyz rzeczywiste rozmiary czastek (zwlaszcza w porownaniu z wymiarami akceleratora) oraz predkosci przez nie osiagane uniemozliwiaja zaobserwowanie "golym okiem" funkcjonowania akceleratora.

Dodatkowe komentarze w kodzie zrodlowym wskazuja miejsca, w ktorych nastepuje przyspieszanie czastek oraz zakrzywienie ich toru

Po wykonaniu kodu pojawia sie symulacja z dynamiczna zawartoscia prezentujaca dzialanie cyklotronu

Dodatkowe opakowanie umozliwia zmiane rozmiaru widocznej na symulacji czastki, jej przyspieszenia w polu elektrycznym, oraz umozliwia takze chwilowe zmniejszenie predkosci katowej (manipulacja niemozliwa w prawdziwym akceleratorze - tu zastosowana jedynie w celach dydaktycznych)

Wprowadzenie teoretyczne

Przedstawiony akcelerator to cyklotron - historycznie pierwsze urzadzenie do przyspieszania naladowanych czastek, zastosowane po raz pierwszy w 1931 roku. Jego zasada dzialania opiera sie na wielokrotnym ruchu czastek po torze zblizonym ksztaltem do spirali, podczas ktorego w pewnych odcinkach sa one przyspieszane.

Cyklotron sklada sie z elektromagnesu wytwarzajacego pole magnetyczne (prostopadle do plaszczyzny toru ruchu czastek) i komory prozniowej z dwiema polkolistymi elektrodami ("duantami"). Pole elektryczne powstale miedzy nimi przyspiesza czastki, natomiast pole magnetyczne zakrzywia jedynie tor ich ruchu - w taki sposob, aby po zatoczeniu polokregu wrocily w obszar przyspieszania miedzy duantami.

Czasteczki wyemitowane ze zrodla sa w ten sposob przyspieszane do momentu gdy promien ich ruchu bedzie na tyle duzy, ze niemozliwe bedzie dalsze przyspieszanie - za pomoca dodatkowej elektrody sa wowczas "wyciagane" na zewnatrz urzadzenia i kierowane w odpowiednia strone.

Na naladowana czastke poruszajaca sie prostopadle do linii sil pola magnetycznego dziala sila Lorentza, w cyklotronie pelniaca role sily dosrodkowej - czastka porusza sie po polokregach:

((m (v^2))/r) = q v B

Po przeksztalceniu powyzszego i wstawieniu ω = (v/r) oraz ω = ((2π)/T) = 2π ν otrzymujemy

ν = (qB/(2π m))

Co wskazuje, iz przy polu magnetycznym o stalej wartosci, rezonansowa czestotliwosc zmian pola elektrycznego (konieczna aby przyspieszanie zachodzilo i bylo efektywne) zalezy proporcjonalnie jedynie od stosunku (q/m) przyspieszanej czastki.

Symulacja

Manipulate[
DynamicModule[
{
plus="(+)",minus="(-)",col1=Orange,col2=Yellow,
Rmax=1,d=0.2,r=0.02,R=0.1,
v=0.002,Δv=0.0005,
ϕ=0,Δϕ=0.1,
x=d,y=R,
offset=0,OldY=y,
end=0,duant=1,
leftTxt=minus,rightTxt=plus,clLeft=col1,clRight=col2,

leftDuant=Graphics[{Dynamic[clLeft],Disk[{-d,0},1.2Rmax,{(1/2)π,(3/2)π}]}],
rightDuant=Graphics[{Dynamic[clRight],Disk[{d,0},1.2Rmax,{-(1/2)π,(1/2)π}]}],
leftLine=Graphics[Circle[{-d,Dynamic[-offset]},Dynamic[R(100v)],{(1/2)π,(3/2)π}]],
rightLine=Graphics[Circle[{d,Dynamic[offset]},Dynamic[R(100v)],{-(1/2)π,(1/2)π}]],
horizontal=Graphics[Style[Line[{{-d,Dynamic[y]},{d,Dynamic[y]}}],Red]],
ending=Graphics[Style[Rectangle[{0.75d,Rmax+0.1},{1.25d,Rmax+0.2}],Black]],
pt={Dynamic[x],Dynamic[y]},
point=Graphics[{PointSize[r],Point[pt]},PlotRange->1.1],
leftText=Graphics[Text[Style[Dynamic[leftTxt],Large,Bold],{-(d+(Rmax/2)),0}],Black],
rightText=Graphics[Text[Style[Dynamic[rightTxt],Large,Bold],{d+(Rmax/2),0}],Black]
},
{
Show[
{leftDuant,rightDuant,(*leftLine,rightLine,*)horizontal,point,leftText,rightText,ending},
PlotRange->(1.5Rmax),
ImageSize->Scaled[2d]
],
Dynamic[
If[-d≤x≤d||end==1,
(* Jezeli czastka jest miedzy duantami *)
{
If[duant==1,
OldY=y
],
ϕ=Sign[y]*π/2,
x=x-Sign[y]*v,
y=y+0.05*end,
(* Pole elektryczne przyspiesza - zwiekszenie predkosci o stala wartosc *)
v+=Δv,
duant=0
},
(* Jezeli czastka jest w obszarze duantu *)
{
If[duant==0,
offset=(R (100v)-Abs[OldY])
],
If[x>0,
(* Pole magnetyczne nie zmienia wartosci predkosci, zakrzywia natomiast tor ruchu czastki (do ksztaltu okregu) *)
{clLeft=col1,clRight=col2,leftTxt=minus,rightTxt=plus,ϕ=Mod[ϕ+Δϕ,2 π],x=d+R(100v) Cos[ϕ],y=R (100v)Sin[ϕ]+offset},
{clLeft=col2,clRight=col1,leftTxt=plus,rightTxt=minus,ϕ=Mod[ϕ+Δϕ,2 π],x=-d+R (100v)Cos[ϕ],y=R (100v)Sin[ϕ]-offset}
],
duant=1
}
];],
Dynamic[
(* Oprogramowanie konca przyspieszania i "wypuszczenia" czastki z akceleratora *)
If[y≥Rmax,
{Δv=0,end=1}
];]
}
],
{{r,0.02,"Promien czastki"},0.01,0.05},
{{Δv,0.0005,"Przyspieszenie"},0.0,0.001},
{{Δϕ,0.1, "Predkosc katowa w obszarze duantu"},0.0,0.2}
]