Numerische Simulation

Werbung
Numerische Simulation
January 18, 2016
1
Numerical Methods in Extraterrestrial Physics - Numerische
Simulationen
Nachdem wir in der letzten Übung eine Klasse für die Bewegung und Visualisierung von Teilchen in Python
implementiert haben, soll es heute um deren Interaktion in Materie gehen. Eine bereits fertig gestellte
Teilchen Klasse findet ihr hier. Genauer gesagt, werden wir heute den ersten Teil eines virtuellen Detektors
implementieren, der mittels einer Flugzeit Messung die Geschwindigkeit der Teilchen bestimmt.
In [1]: %matplotlib inline
%config InlineBackend.figure_format = ’svg’
from tof import Tof
T = Tof()
ax = T.plot()
ax.legend();
1
Für die Bestimmung der Geschwindigkeit eines Teilchens, bedienen wir uns einen Prinzips, das in echten
Flugzeit-Masse Spektrometern verwendet wird. Beim Durchgang eines Teilchens durch Materie, wechseltwirkt dieses unter inealstischen Stößen mit den Elektronen des Materials. Dabei werden zum Einen
Elektronen aus dem Material herausgelöst (welche als elektrischer Puls registriert und somit zur Bestimmung der Start-Zeit unseres Teilchens verwendet werden) und zum zweiten das eingeschossene Teilchen
abgebremst und gestreut, d.h. das Teilchen verliert einen Teil seiner Energie.
Ein einfaches Beispiel für die Wechselwirkung eines Teilchens in Materie ist hier gezeigt:
In [11]: from particle import Particle
P = Particle()
P.set_v((4e5,0,0))
ax=T.plot()
ax.set_xlim(0.09,0.12); ax.set_ylim(-0.06,0.06)
T.scatter_rate = 5e-9
T.scatter_angle = 10 #Normalverteile Streuung im Winkel in
T.scatter_loss = 5 #Normalverteilter Energieverlust in %
◦
T.compute_particle(P,ax=ax)
P.plot(ax)
Die gesetzten Größen scatter rate, scatter angle und scatter loss bestimmen hierbei das Streuverhalten der Teilchen. In diesem Beispiel unterliegen die Teilchen einer durchschnittlichen Streurate von
ν = 5 · 10−9 1/s, wobei sie im Winkel um 0◦ ± 10◦ gestreut werden und 0% − 10% ihrer Energie verlieren.
Jede Interaktion mit der Materie ist im o.g. Beispiel mit einem schwarzen Kreis gekennzeichnet.
Als nächstes muss die Stop-Zeit des Teilches registrieren werden, was wieder über die Interaktion in einem
zweiten Materie Block geschieht, welcher 10 cm gegenüber dem ersten verschoben ist.
2
In [17]: P = Particle()
P.set_v((4e5,0,0))
ax=T.plot()
T.compute_particle(P,ax=ax)
P.plot(ax)
Aus der Differenz von Start- und Stop-Signal lässt sich dann die Teilchengeschwindigkeit bestimmen.
Hierbei ist noch anzumerken, dass die bestimmte Teilchengeschwindigkeit wegen des Energieverlustes und
der Streuung unter der eigentlichen Teilchengeschwindigkeit liegt. D.h. wir müssen für ein Ensemble von
Teilchen konstanter Geschwindigkeit, die mittlere detektierte Geschwindigkeit der Teilchen bestimmen, um
unsere Messung zu kalibrieren.
In [18]: ax = T.plot()
pv = []
for p in range(100):
P = Particle()
P.set_v((4e5,0,0))
T.compute_particle(P)
P.plot(ax)
pv.append(T.get_v())
3
Die gemessene Teilchenenergie ergibt sich dann zu
In [19]: ax = pylab.figure().gca()
ax.hist(array(pv)/1000.)
ax.set_xlabel("V [km/s]");ax.set_ylabel("N")
print "Mittlere Teilchen Geschwindigkeit %4.2f [km/s]"%(mean(pv[pv>0])/1000.)
Mittlere Teilchen Geschwindigkeit 195.69 [km/s]
4
Ein mit 400 km/s eingeschossenes Teilchen wird wegen der Streuung und des Energieverlustes also im
Mittel mit einer Geschwindigkeit von nur 263 km/s gemessen. Wiederholen wir diese Prozedur nun für
mehrere Teilchen Ensembles unterschiedlicher Geschwindigkeiten zwischen 100 km/s und 1000 km/s, liesse
sich unsere Flugzeit-Messung für unterschiedliche Teilchengeschwindkeiten kalibrieren.
1.1
Übung: Die Flugzeit Klasse
In dieser Übung geht es nun um die Implementierung einer Klasse für die Flugzeit Messung unserer Teilchenquelle. Die Interaktion des Teilchens mit Materie soll dabei nur “pseudo”-physikalisch, also ohne realistische
Wechselwirkungsquerschnitte und Streuprozesse ablaufen. Im Folgenden ein möglicher Bauplan für die
Flugzeit Klasse:
1.) Erstellen Sie eine Klasse für die Flugzeitmessung mit jeweils 2 Attributen, welche Ihnen die Detektor
Geometrie beschreibt, d.h. den Ort und die Ausmaße der beiden Materieblöcke für die Start- und StopMessung. Beide Materieblöcke sollen eine Breite und Höhe von jeweils ∆x = 1 cm und ∆y = 10 cm haben
und in x−Richtung 10 cm voneinander entfernt sein. Implementieren sie eine Methode zur Visualisierung
der Detektor Geometrie.
2.) Schreiben Sie eine Methode mit der Sie ein Teilchen durch die Detektor Geometrie propagieren lassen
können. Das Teilchen soll dabei eine konstante Geschwindigkeit von 400 km/s in x-Richtung haben und
die Berechnung sollte mit einer Zeitauflösung von dt = 1 · 10−9 s durchgeführt werden. Visualisieren sie die
Teilchen Trajektorie zusammen mit der Detektor Geometrie.
3.) Schreiben Sie eine Methode für die Flugzeitklasse, um herauszufinden ob sich das Teilchen gerade innerhalb oder außerhalb von Materie befindet. Befindet sich das Teilchen innerhalb von Materie, “würfeln” sie
ob das Teilchen einen Streuprozess durchführt. Die Wahrscheinlichkeit für einen Streuprozess pro Zeitschritt
dt ist dabei geben durch P = dt/ν. Verwenden Sie hierfür eine Streurate von ν = 1 · 10−8 .
4.) Schreiben Sie eine Methode, die das Teilchen bei jedem Stoßvorgang im Winkel um 0◦ ± 5◦ (normal
verteilt) streut und einen Geschwindigkeitsverlust von 0% − 5% (gleich verteilt) erfährt.
5.) Propagieren Sie 100 Teilchen konstanter Geschwindigkeit (vx = 450 km/s) durch die Detektor Geometrie und visualisieren Sie die Teilchen Trajektorien. Histogrammieren sie zudem die detektierten Teilchen
Geschwindigkeiten.
5
6.) (Optional) Lösen Sie Aufgabe 5) für 10 unterschiedliche Teilchengeschwindigkeiten und stellen Sie die
eigentlichen Teilchengeschwindigkeiten als Funktion der mittleren detektierten Teilchengeschwindigkeit dar.
Interpolieren Sie diese Funktion um eine Kalibrationskurve für die Geschwindigkeits Messung zu erhalten.
In [5]:
6
Herunterladen