Skip to content
Snippets Groups Projects
Commit 38df2e64 authored by Adhvaitha Kiran Nallamothu's avatar Adhvaitha Kiran Nallamothu
Browse files

Add initial course materials and images for Python advanced and beginner courses

parent 6a2a09e5
No related branches found
No related tags found
1 merge request!1gitlab merge 1
Showing
with 3481 additions and 0 deletions
output.png

63.4 KiB

output2.png

48 KiB

output3.png

218 KiB

from schwingerpy import schwinger
# ======================================================================
# Berechnung der Strahlungsleistung durch eine rechteckige Blende 5x5 mm
# in Abhängigkeit der Wellenlänge lambda / nm
# (Beispielparametersatz für BESSY II)
# ======================================================================
BESSY2 = schwinger(W=1718.6, # Elektronenenergie: 1718.6 MeV
B=1.29932, # magn. Flussdichte: 1.29932 T
I=10, # Ringstrom: 10 mA
d=30000, # Abstand Blende: 30000 mm
vOffset=0, # Vertikalversatz Blende: 0 mm
sigmaAngle=3.5e-6, # Standardabw. vert. Winkelvert.
# Elektronen: 3.5e-6 rad
mode='rectangular', # Blendenform: rechteckig
aVert=5, # vertikale Blendenweite: 5 mm
aHoriz=5, # horizontale Blendenweite: 5mm
emittance='yes', # Emittanz berücksichtigt
axUnit='nm', # Einheit Skala: Wellenlänge/nm
axInput='limits', # Angabe von Start- und Endwert
axScale='exponential', # Achseneinteilung log-äuidist.
abscissa=(0.02, 100), # Startwert: 0.02 nm,
# Endwert: 100 nm
Np=500) # Anzahl Datenpunkte: 500
print('Wird berechnet ...')
# Erzeugung der Datei BESSY2_schwinger_5x5_mev17186_t129932.txt mit den
# Ergebnissen der Schwinger-Berechnung
BESSY2.output(filename='BESSY2_schwinger_5x5_mev17186_t129932',plot='yes')
\ No newline at end of file
from schwingerpy import schwinger
# ======================================================================
# Einfluss der Messunsicherheiten verschiedener Größen auf die
# Unsicherheit der spektralen Strahlungsleistung durch eine
# rechteckige Blende (5x5 mm) in Abhängigkeit der Photonenenergie E / eV
# (Beispielparametersatz für BESSY II)
# ======================================================================
BESSY2 = schwinger(W=1718.6, # Elektronenenergie: 1718.6 MeV
B=1.29932, # magn. Flussdichte: 1.29932 T
I=10, # Ringstrom: 10 mA
d=30000, # Abstand Blende: 30000 mm
vOffset=0, # Vertikalversatz Blende: 0 mm
sigmaAngle=3.5e-6, # Standardabw. vert. Winkelvert.
# Elektronen: 3.5e-6 rad
mode='rectangular', # Blendenform: rechteckig
aVert=5, # vertikale Blendenweite: 5 mm
aHoriz=5, # horizontale Blendenweite: 5mm
emittance='yes', # Emittanz berücksichtigt
axScale='exponential', # Achseneinteilung log- ̈aquidist.
abscissa=(3, 10), # Startwert: 3 eV,
# Multiplikator: 10 eV
Np=5) # Anzahl Datenpunkte: 5
# ======================================================================
# Unsicherheitsbestimmung - Methode der quadratischen Addition
# mit Angabe der Standardmessunsicherheiten der Einflussgrößen
# ======================================================================
BESSY2.simple_uncertainty(u_W=0.06, # Std-U Elektronen-
# energie: 0.06 MeV
u_B= 0.00012, # Std-U Magnetf.: 0.00012 T
u_I=0.002, # Std-U Ringstrom: 0.002 mA
u_d=2, # Std-U Abstand: 2 mm
u_vOffset=0.06, # Std-U Vertikal-
# versatz: 0.0 6mm
u_sigmaAngle=0.7e-6,# Std-U Winkeldiv.: 0.7e-6
filename='BESSY2_MQA_5x5_mev17186_t129932')
print('Unsicherheit mit Methode der quadratischen Addition berechnet.')
# ======================================================================
# Unsicherheitsbestimmung - Monte Carlo Methode
# mit Angabe der Standardmessunsicherheiten der Einflussgrößen
# ======================================================================
print("""Nun geht es weiter mit der Monte Carlo Methode.
Dies kann einen Moment dauern ...""")
BESSY2.monte_carlo(u_W=0.06, # Std-U Elek.-Energie: 0.06 MeV
# default: normalverteilt
u_B=0.00012, # Std-U Magnetfeld: 0.00013 T
# default: rechteckverteilt
u_I=0.002, # Std-U Ringstrom: 0.002 mA
# default: normalverteilt
u_d=2, # Std-U Abstand: 2 mm
# default: normalverteilt
u_vOffset=0.06, # Std-U Vertikalversatz: 0.06 mm
# default: normalverteilt
u_sigmaAngle=0.7e-6, # Std-U Winkeldivergenz: 0.7e-6
# default: normalverteilt
samples=500, # Anzahl Samples: 500
filename='BESSY2_MCM_5x5_mev17186_t129932')
\ No newline at end of file
This diff is collapsed.
File added
from schwingerpy import schwinger
# ======================================================================
# Berechnung der Strahlungsleistung durch eine kreisförmige Blende AP20
# in Abhängigkeit der Photonenenergie E / eV
# (Beispielparametersatz der MLS)
# ======================================================================
MLS = schwinger(W=600, # Elektronenenergie: 600 MeV
B=1.3, # magnetische Flussdichte: 1.3 T
I=100, # Ringstrom: 100 mA
d=15000, # Abstand Blende: 15000 mm
r=10, # Blendenradius: 10 mm
vOffset=0, # Vertikalversatz Blende: 0 mm
sigmaAngle=44e-6, # Standardabweichung vertikale
# Winkelvert. Elektronen: 44e-6 rad
Np=300, # Anzahl Datenpunkte: 300
abscissa=(0.1, 10), # Startwert: 0.1 eV, Inkrement: 10 eV
emittance='yes') # Emittanz berücksichtigt
print('Wird berechnet ...')
# Erzeugung der Datei MLS_schwinger_ap20_mev600_t13.txt mit den
# Ergebnissen der Schwinger-Berechnung
MLS.output(filename='MLS_schwinger_ap20_mev600_t13', plot='yes')
\ No newline at end of file
from schwingerpy import schwinger
# ======================================================================
# Berechnung der Strahlungsleistung für verschiedene Blendenradien
# in Abhängigkeit der Photonenenergie E / eV
# (Beispielparametersatz der MLS)
# ======================================================================
MLS = schwinger(W=629, # Elektronenenergie: 629 MeV
B=1.3, # magnetische Flussdichte: 1.3 T
I=1, # Ringstrom: 100 mA
d=9622.6, # Abstand Blende: 15000 mm
r=5, # Blendenradius: 2.5 mm-AP5, 5.0-AP10. 10mm-AP20, 20mm-AP40
vOffset=0.912, # Vertikalversatz Blende: 0 mm
sigmaAngle=44e-6, # Standardabweichung vertikale
# Winkelvert. Elektronen: 44e-6 rad
Np=396, # Anzahl Datenpunkte: 300
abscissa=(247.9, 1239.8), # Startwert: 0.1 eV, Inkrement: 10 eV
emittance='yes') # Emittanz berücksichtigt
print('Wird berechnet ...')
MLS.output(filename='MLS_schwinger_ap10_mev630_t13_AK') # Ergebnisse AP5
MLS.r = 10 # Blendenradius
# auf 5mm setzen
MLS.output(filename='MLS_schwinger_ap20_mev630_t13_AK') # Ergebnisse AP10
MLS.r = 20 # Blendenradius
# auf 20mm setzen
MLS.output(filename='MLS_schwinger_ap40_mev630_t13_AK') # Ergebnisse AP40
from schwingerpy import schwinger
# ======================================================================
# Einfluss der Messunsicherheiten verschiedener Größen auf die
# Unsicherheit der spektralen Strahlungsleistung durch eine
# kreisförmige Blende (AP20) in Abhängigkeit der Photonenenergie E / eV
# (Beispielparametersatz der MLS)
# ======================================================================
MLS = schwinger(W=600, # Elektronenenergie: 600 MeV
B=1.3, # magnetische Flussdichte: 1.3 T
I=100, # Ringstrom: 100 mA
d=15000, # Abstand Blende: 15000 mm
r=10, # Blendenradius: 2.5 mm
vOffset=0, # Vertikalversatz Blende: 0 mm
sigmaAngle=44e-6, # Standardabweichung vertikale
# Winkelvert. Elektronen: 44e-6 rad
emittance='yes', # Emittanz berücksichtigt
axScale='exponential', # Achseneinteilung log- ̈aquidist.
abscissa=(1, 10), # Startwert: 1 eV,
# Multiplikator: 10 eV
Np=4) # Anzahl Datenpunkte: 4
# ======================================================================
# Unsicherheitsbestimmung - Methode der quadratischen Addition
# mit Angabe der Standardmessunsicherheiten der Einflussgrößen
# ======================================================================
MLS.simple_uncertainty(u_W=0.06, # Std-U Elektronen-
# energie: 0.06 MeV
u_B= 0.00013, # Std-U Magnetfeld: 0.00013 T
u_I=0.02, # Std-U Ringstrom: 0.02 mA
u_d=2, # Std-U Abstand: 2 mm
u_vOffset=0.075, # Std-U Vertikalver.: 0.075 mm
u_sigmaAngle=9e-6, # Std-U Winkeldivergenz: 9e-6
filename='MLS_MQA_ap20_mev600_t13')
print('Unsicherheit mit Methode der quadratischen Addition berechnet.')
# ======================================================================
# Unsicherheitsbestimmung - Monte Carlo Methode
# mit Angabe der Standardmessunsicherheiten der Einflussgrößen
# ======================================================================
print("""Nun geht es weiter mit der Monte Carlo Methode.
Dies kann einen Moment dauern ...""")
MLS.monte_carlo(u_W=0.06, # Std-U Elektronenenergie: 0.06 MeV
# default: normalverteilt
u_B= 0.00013, # Std-U Magnetfeld: 0.00013 T
# default: rechteckverteilt
u_I=0.02, # Std-U Ringstrom: 0.02 mA
# default: normalverteilt
u_d=2, # Std-U Abstand: 2 mm
# default: normalverteilt
u_vOffset=0.075, # Std-U Vertikalversatz: 0.075 mm
# default: normalverteilt
u_sigmaAngle=9e-6, # Std-U Winkeldivergenz: 9e-6
# default: normalverteilt
samples=500, # Anzahl Samples: 500
filename='MLS_MCM_ap20_mev600_t13')
\ No newline at end of file
from schwingerpy import schwinger
# ======================================================================
# Berechnung der Vertikalverteilung der Synchrotronstrahlung
# für die Photonenenergie E = 3 eV (Beispiel MLS)
# ======================================================================
MLS = schwinger(W=600, # Elektronenenergie: 600 MeV
B=1.3, # magnetische Flussdichte: 1.3 T
I=100, # Ringstrom: 100 mA
d=15000, # Abstand Blende: 15000 mm
vOffset=0, # Vertikalversatz Blende: 0 mm
sigmaAngle=44e-6, # Standardabweichung vertikale
# Winkelvert. Elektronen:44e-6rad
emittance='yes', # Emittanz berücksichtigt
aHoriz=5, # horizontale Blendenweite: 5mm
mode='vertical', # Vertikalverteilung
xVertical=3, # Berechnung für E = 3 eV
axInput='limits', # Angabe von Start- und Endwert
abscissa=(-1e-2, 1e-2), # Startwert: -1e-2 rad
# Endwert: 1e-2 rad
Np=500) # Anzahl Datenpunkte: 500
print('Wird berechnet ...')
# Erzeugung der Datei MLS_vertical_distr_ev3.txt mit den
# Ergebnissen der berechneten Vertikalverteilung
MLS.output(filename='MLS_vertical_distr_ev3', plot='yes', plotGraph='all')
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Version 1.01 vom 25.9.2020
- MM 8.9.2020 matplotlib 'basex' renamed 'base'
- Installationshinweise "readme.txt"
Version 1.0 vom 18.8.2020 Alina Krivoi
File added
Mit Schwingerpy kann die spektrale Strahlungleistung an einem Dipol berechnet werden.
Eine ausführliche Beschreibung findet sich in "Dokumentation_schwingerpy.pdf"
Beispiele für finden sich im Ordner "Beispielskripts"
Installationshinweise (Linux)
25.09.2020 M. Müller
Das Zip-File schwingerpy.zip entpacken und in der Konsole in das gleiche Verzeichnis wechseln.
Das Schwingerobjekt kann als Package installiert werden oder auch direkt in das eigene Skript eingebunden werden.
Um Schwingerpy direkt einzubinden, muss eine lokale Kopie der Datei "__init__.py" im Verzeichnes des eigenen Programmcodes erstellt werden. Die Kopie benötigt dann noch einen sinnvollen Namen wie z.B. "schwingerpy_copy.py". Das Objekt kann dann mit der Zeile "from schwingerpy_copy import schwinger" im eigenen Skript eingebunden werden.
Um Schwingerpy als Package zu installieren im Folgenden beschrieben. Hier wird eine virtuelle Umgebung für Python im Unterverzeichnis "venv" erstellt und genutzt, um das Package zu installieren. Später kann man mit "source venv/bin/activate" wieder in diese virtuelle Umgebung wechseln. Mit "deactivate" verlässt man die virtuelle Umgebung.
$ python3 --version
Python 3.6.10
$ pip --version
pip 10.0.1 from /usr/lib/python3.6/site-packages/pip (python 3.6)
$ virtualenv venv
$ source venv/bin/activate
$ pip install numpy
$ pip install scipy
$ pip install matplotlib
$ cd schwingerpy
$ pip install .
$ cd ../Beispielskripts
$ python3 BESSY2_Schwinger_Beispiel.py
Es erscheint ein Plotfenster mit der spektralen Strahlungsleistung. Das Fenster muss man zum Beenden des Programms schließen.
Die Ergebnisse und den Plot findet man in den Dateien "BESSY2_schwinger_5x5_mev17186_t129932.txt" und "BESSY2_schwinger_5x5_mev17186_t129932.pdf".
Eine ausführliche Beschreibung des Programms und weitere Beispiele befinden sich in "Dokumentation_schwingerpy.pdf"
This diff is collapsed.
This diff is collapsed.
from setuptools import setup
setup(name='schwingerpy',
version='1.01-25.9.2020',
description='Schwinger Berechnungen',
author='Alina Krivoi',
author_email='alinakrivoi@gmx.de',
license='MIT',
packages=['schwingerpy'],
zip_safe=False)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment