computational photonics beam propagation method (bpm) · 2019. 6. 7. · –beam propagation method...

28
Computational Photonics Beam Propagation Method (BPM) Dr. rer. nat. Thomas Kaiser

Upload: others

Post on 21-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

  • Computational Photonics

    – Beam Propagation Method (BPM) –

    Dr. rer. nat. Thomas Kaiser

  • Introduction

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 2

  • Introduction

    • so far: treated rigorous propagation:

    – solving Maxwell’s equations directly without

    approximations

    (however, we were assuming material properties!)

    – leapfrog iteration, 1st order PDE FDTD

    – covers whole physics, includes all effects

    (reflection, refraction, diffraction, field-enhancement,

    polarization effects, … )

    – but: numerically very expensive number of

    treatable problems limited

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 3

  • Introduction

    • We need less heavy numerical methods to

    increase number of treatable problems

    • Therefore, we need to get less rigorous

    • We want to look at problems for approximated

    cases now

    • Which often-used approximations do we know?

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 4

  • Introduction

    • no diffraction, interference or other wave

    phenomena:

    Ray Tracing

    • no polarization effects,

    paraxial approximation:

    BPM

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 5

    zeemax.com

  • https://pingo.coactum.de/421066

    Which statement about the paraxial approximation is true?

  • The Slowly Varying Envelope Approximation (SVEA)

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 7

  • SVEA

    • Recap from FOMO: paraxial approximation

    • scalar Helmholtz equation:

    • principal solutions without approximations:

    – plane waves:

    – spherical waves:

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 8

  • SVEA

    • approximating the spherical wave by a parabolic wave:

    • but what is the corresponding PDE?

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 9

    spherical

    parabolic

    plane

  • SVEA

    • starting with Helmholtz equation:

    • introducing an ansatz which separates the fast

    oscillations in z-direction with an average

    • is a number which must be chosen depending on

    the problem, e.g. with average refractive index

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 10

  • SVEA

    • inserting into Helmholtz equation:

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 11

  • SVEA

    • The equation for the envelop A(r) is still exact!

    • Now comes the trick:

    – we assume solutions where the envelop is just

    slowly varying, i.e.

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 12

  • SVEA

    • This is the slowly varying envelop approximation

    • The implications are profound! The paraxial

    Helmholtz equation is a parabolic PDE:

    • In contrast to an elliptic PDE (boundary value

    problem like mode calculation), the parabolic

    Helmholtz equation can be numerically iterated

    (initial value problem)

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 13

  • SVEA

    • However, switching from an elliptic type of PDE to a parabolic type of PDE has consequences!

    • Neglecting the 2nd derivative in z means that we do not have ±kz solutions any more (diffusion type problem)

    in BPM, there are no backward waves!(and therefore also no reflections!)

    • How can we iteratively solve the paraxial Helmholtz equation?

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 14

  • Discretization Schemes for parabolic PDEs

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 15

  • Finite Difference Schemes

    • Let us rearrange the equation (assuming 2D for

    simplicity)

    • Task: Given A(x) in a plane z=0, calculate A(x,z)

    in any other plane!

    (initial value

    problem)

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 16

    z (n)

    x (j)

  • Finite Difference Schemes

    • paraxial Helmholtz equation in operator notation:

    • operator just acts on x-coordinate!

    • Let’s discretize it with usual scheme:

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 17

  • Finite Difference Schemes

    • The operator L then has a tridiagonal

    discretization:

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 18

  • Finite Difference Schemes

    • The RHS of the equation is now ready in a

    discretized fashion!

    • Only remaining question:

    How do we discretize the 1st order derivative

    on the LHS?

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 19

  • Finite Difference Schemes

    • Recap:

    possibilities to discretize a 1st order derivative:

    – forward differencing:

    (1st order accurate)

    – backward differencing:

    (1st order accurate)

    – central differencing:

    (2nd order accurate)

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 20

  • BPM - explicit

    • 1st choice: forward differencing (FTCS)

    • We store the x-dependent field at each z-

    position in a vector A

    • Wow, it is trivial to iterate this vector explicitly

    from step n to step (n+1):

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 21

  • BPM - explicit

    • This explicit BPM scheme is very simple and

    computationally effective (just multiplications of

    sparse matrices)

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 22

    • However, the method

    is unstable under any

    conditions (see next

    lecture), errors grow

    exponentially while

    iterating

    worthless!

  • BPM - implicit

    • 2nd choice: backward differencing

    • Oops, sth. goes wrong. We know and

    want to know , not the other way around…

    • Solving for requires to solve a linear system

    of equations:

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 23

  • BPM - implicit

    • This might look cumbersome and stupid, but the

    system matrix is just tridiagonal and there are

    very efficient numerical methods implemented

    for solving such systems!

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 24

    • Main argument for

    this scheme: it’s

    unconditionally

    stable!

  • BPM – Crank-Nicolson

    • 3rd choice: central differencing

    • if things have to be implicit anyways, we could

    go the extra mile and head for more accuracy

    • central differences are 2nd order accurate!

    • the equation is an explicit-implicit mixture:

    Crank-Nicolson-Method

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 25

  • BPM – Crank-Nicolson

    • Crank-Nicolson is the de-facto standard method

    for iterating initial value problems (not just in the

    BPM)

    • it is unconditionally stable and 2nd order

    accurate!

    • It gives supreme results over the implicit BPM

    scheme and the extra effort is rather minor (one

    matrix multiplication)

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 26

  • BPM

    • Comparison of the three schemes:

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 27

    W.H. Press et al.,

    “Numerical Recipes

    in C++”, 2nd ed.

    Cambridge

    University Press

  • Next lecture

    • Stability

    • Boundaries

    • Including polarization (vector BPM)

    • Modifications for wide angles

    07.06.2019 Computational Photonics SS2019 - Dr. Thomas Kaiser 28