Vortragsfolien (

Werbung
Modellierung und Simulation
optischer Strahlführungen
Diplomarbeit
Timon Bätz
Übersicht
●
Ziele
●
Physikalische Hintergründe
●
Architektur und Implementierung
●
Ergebnisse
●
Ausblick
●
Demo
2
Ziele
●
Entwicklung eines virtuellen optischen Baukastens für Hochleistungslaser:
- Lineares Aneinanderreihen optischer
Elemente (Linsen, Kristalle …)
- Gruppierung optischer Elemente zu
komplexeren Elementen
●
Simulation linearer Aufbauten mittels:
- Gaußstrahl-Optik
- Fourier-Optik
●
Parallelisierung der mathematischen
Berechnungen für
Echtzeitsimulationen
3
Physik: Wellenoptik
●
Licht wird durch eine skalare
Wellenfunktion beschrieben, welche die
sogenannte Wellengleichung erfüllen
muss:
Laplace-Operator:
4
Physik: Wellenoptik
●
Licht wird durch eine skalare
Wellenfunktion beschrieben, welche die
sogenannte Wellengleichung erfüllen
muss:
Laplace-Operator:
Kreisfrequenz:
●
Wellenfunktion für monochromatische
Wellen:
5
Physik: Wellenoptik
●
Licht wird durch eine skalare
Wellenfunktion beschrieben, welche die
sogenannte Wellengleichung erfüllen
muss:
Laplace-Operator:
Kreisfrequenz:
●
●
Wellenfunktion für monochromatische
Wellen:
Eulersche Relation:
Komplexe Schreibweise:
6
Physik: Wellenoptik
●
Licht wird durch eine skalare
Wellenfunktion beschrieben, welche die
sogenannte Wellengleichung erfüllen
muss:
Laplace-Operator:
Kreisfrequenz:
●
●
Wellenfunktion für monochromatische
Wellen:
Komplexe Schreibweise:
Eulersche Relation:
Komplexe Amplitude:
Amplitude:
●
Trennung der Variablen:
Phase:
Intensität:
7
Physik: Gaußstrahl-Optik
Helmholtz-Gleichung:
(aus der Wellengleichung nach Trennung der Variablen)
Lösungen:
Gaußstrahl
: Radius bei dem die Amplitude auf
Kugelwelle
fällt
●
ABCD-Gesetz:
•
: Radius im Fokus
: Elektrische Feldstärke (z = 0)
: Gouy-Phase
: Wellenzahl
Ebene Welle
•
Jedes optische Element wird
durch eine 2x2 Matrix
beschrieben:
Der Strahlparameter q
wird durch das
ABCD-Gesetz
berechnet:
: Strahlparameter
8
Physik: Gaußstrahl-Optik
Beispiel:
Propagation:
Dünne Linse:
9
Physik: Gaußstrahl-Optik
Grenzen:
●
●
●
Intensität des Strahls wird als Gaußverteilt angenommen
Abstände zwischen den optischen Elementen >> w(z)
→ paraxiale Näherung
Simuliert ausschließlich achsensymmetrische optische Elemente
Fourieroptik
10
Physik: Fourieroptik
Prinzip:
●
●
Eine beliebige Welle kann als Überlagerung mehrerer ebener Wellen beschrieben werden.
Ist die Transformation des optischen System auf eine ebene Welle bekannt, kann durch
das Superpositionsprinzip die Transformation des Systems auf eine beliebige Welle
berechnet werden.
●
Projektion der Eingangswelle auf die z = 0-Ebene:
●
Fourieranalyse:
●
Transformation durch das optische System:
11
Physik: Fourieroptik
Propagation im freien Raum:
●
Betrachtet man eine ebene Welle und Propagation im freien Raum, so gilt:
●
Übertragungsfunktion:
●
Verallgemeinerung auf komplexere Eingangswellen:
●
Berechnungsvorschrift:
Matrix E = getInpunt();
E = fft(E);
E *= H;
E = ifft(E);
12
Physik: Fourieroptik
Fresnelsche Näherung (Nahfeld):
b
Gültigkeit:
Frauenhofer Näherung (Fernfeld):
Gültigkeit:
Quelle: SALEH, B.E.A. ; TEICH, M.C.: Fundamentals of photonics.
13
Physik: Fourieroptik
Optische Elemente mit Ausdehnung d ≈ 0:
Optische Komponenten mit d ≈ 0 können durch eine Transmissionsfunktion / Transmissionsmatrix
beschrieben werden, die in jedem Punkt dem Proportionalitätsfaktor zwischen der Eingangsfunktion
f(x,y) und der Ausgangsfunktion g(x,y) entspricht, so dass:
g(x,y) = t(x,y)f(x,y)
●
Blende:
●
Linse:
14
Architektur
Simulationspipeline:
●
●
Beide Modelle besitzen die Eigenschaft, dass die Transformationen der optischen
Komponenten auf den Laserstrahl unabhängig vom gewählten Laseraufbau sind.
Die Transformationsvorschriften sind einzig und allein von den Parametern der
Komponente abhängig.
Optischen Elemente können modular implementiert und in beliebiger Reihenfolge
aneinandergereiht werden (nach dem Pipeline-Prinzip):
15
Architektur
Simulationspipeline:
●
●
Beide Modelle besitzen die Eigenschaft, dass die Transformationen der optischen
Komponenten auf den Laserstrahl unabhängig vom gewählten Laseraufbau sind.
Die Transformationsvorschriften sind einzig und allein von den Parametern der
Komponente abhängig.
Optischen Elemente können modular implementiert und in beliebiger Reihenfolge
aneinandergereiht werden (nach dem Pipeline-Prinzip):
Caching:
16
Architektur
17
Basic Linear Algebra Subprograms (BLAS)
●
●
●
●
Bezeichnet eine Softwareschnittstelle, die elementare Operationen der linearen
Algebra wie Vektor- und Matrixmultiplikationen implementiert.
Es gibt eine Vielzahl von Implementierungen in verschiedenen Sprachen und für
verschiedene Plattformen optimiert (nicht alle halten sich 100% an das Interface).
Unterstützte Datentypen: float (32 Bit), double (64 Bit), complex (2 x 32 Bit),
doublecomplex (2 x 64 Bit).
Funktionen werden in 3 Stufen unterteilt:
Level 1
Level 2
Level 3
float cblas_sdot(...);
double cblas_ddot(...);
void
void
void
void
cblas_sgemv(...);
cblas_dgemv(...);
cblas_cgemv(...);
cblas_zgemv(...);
void
void
void
void
cblas_sgemm(...);
cblas_dgemm(...);
cblas_cgemm(...);
cblas_zgemm(...);
void
void
void
void
cblas_sgbmv(...);
cblas_dgbmv(...);
cblas_cgbmv(...);
cblas_zgbmv(...);
void
void
void
void
cblas_sgbmm(...);
cblas_dgbmm(...);
cblas_cgbmm(...);
cblas_zgbmm(...);
void
void
void
void
cblas_ssymv(...);
cblas_dsymv(...);
cblas_csymv(...);
cblas_zsymv(...);
void
void
void
void
cblas_ssymm(...);
cblas_dsymm(...);
cblas_csymm(...);
cblas_zsymm(...);
Vektor-Vektor-Operationen
void cblas_sswap(...);
void cblas_scopy(...);
void cblas_saxpy(...);
void cblas_dswap(...);
void cblas_dcopy(...);
void cblas_daxpy(...);
void cblas_cswap(...);
void cblas_ccopy(...);
void cblas_caxpy(...);
Matrix-Vektor-Operationen
Matrix-Matrix-Operationen
18
Architektur: Plugins
●
●
Es wurden 6 Plugins implementiert, welche unterschiedliche Bibliotheken benutzten um
Matrizenoperationen und Fouriertransformationen auszuführen
Jedes Plugin liefert eine zu den verwendeten Bibliotheken kompatible Matrix- und VektorImplementierung
Name
Matrizenoperationen
FFT
Gerät
Genauigkeit
HipnosCBlasMathPlugin
Cblas (netlib, ATLAS,
OpenBlas)
FFTW
CPU
double
HipnosACMLMathPlugin
ACML-BLAS
ACML-FFT
CPU
double
HipnosGSLMathPlugin
GSL-BLAS
GSL-FFT
CPU
double
HipnosCudaMathPlugin
cuBLAS
cuFFT
GPU
double
HipnosCudaMathSinglePrecisionPlugin
cuBLAS
cuFFT
GPU
float
HipnosAPPMLMathPlugin
clAmdBlas
clAmdFft
GPU
double
19
Architektur: GPU-Plugins
Speicherverwaltung:
●
●
●
Moderne GPUs sind
hochperformante MulticoreSysteme, welche auf
datenparalleles Rechnen
spezialisiert sind
Besonders effektiv wenn
das Verhältnis von arithmetischen
Operationen zu
Speicheroperationen sehr hoch
ist
Nachteil: GPU-Plugins
referenzieren Speicher jeweils im
Haupt- und Grafikspeicher
→ Aufwendige Kopieroperationen
20
Ergebnisse
Gaußstrahl-Optik vs Fourieroptik:
21
Ergebnisse
Matrixaddition:
22
Ergebnisse
Matrix-Vektor Multiplikation:
23
Ergebnisse
Matrixmultiplikation:
24
Ergebnisse
Zweidimensionale Fouriertransformation:
25
Ergebnisse
Propagationskomponente (Fresnelsche Näherung):
26
Ausblick
●
Implementierung weiterer optischer Elemente
●
Implementierung weiterer Gauß-Moden
●
Implementierung weiterer optischer Berechnugsmodelle
●
Schnittstelle für Scriptbare Komponenten
●
Modellierung und Simulation von verzweigten Laseraufbauten
●
Octave Integration
●
3D-Visualisierung des gesamten Laseraufbaus
●
Unterstützung für CUDA-Zero-Copy Memory
●
Optimierung der 3D-Visualisierung
27
Demo
28
Herunterladen