lapplac

Diffractive laser beam propagator

https://github.com/ccolgan/lapplac

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.4%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Diffractive laser beam propagator

Basic Info
  • Host: GitHub
  • Owner: ccolgan
  • Language: Python
  • Default Branch: main
  • Size: 13.8 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 3 years ago · Last pushed over 1 year ago
Metadata Files
Readme Citation

README.md

LAPPLAC

Diffractive laser beam propagator.

The simulation takes an input initial electric field (amplitude and phase) and solves its evolution through a given medium of refractive index, η. The simulation is written in cartesian coordinates (x, y, z), and only considers monochromatic laser beams. It has no notion of time.

For example, the code can be used to simulate: * Propagation of arbitrary laser beam profiles. * Effects of optical aberrations and distributed phase plates on laser focal spots. * Diffraction of beams around sharp edges and obstacles. * Imaging-based diagnostics, such as shadowgraphy and interferometry. * Optical waveguides.

FFT-BPM

The complex electric field is propagated using a split-step fast Fourier transform based beam propagation method (FFT-BPM).\ For more information on the underlying equations, see [1] or [2].\ Alternatively, for an in-depth description as to why the exponential of a Laplacian operator is mathematically equivalent to taking the Fourier transform, and why using a split-step scheme in δz provides higher order accuracy (~ δz3), see [3].

The main workflow here is a python-translated version of the LAPPLAC code. This was originally written by Rob Shalloo (University of Oxford) in Matlab.

Loading in the source code

All functions for using the code can be imported from the beamPropagator_source directory.\ This can either be done by running the script from the root directory of this repo and importing the module, or by relative path reference using the following

~~~~ import sys if '../' not in sys.path: sys.path.append('../') # navigate to root directory from script from beamPropagator_source import * ~~~~

Requirements

The code was tested on 13/03/23 on macOs 10.15.1, and on Windows 10 22H2, using the following versions (Windows versions in parantheses):

  • python      3.6.7  (3.9.13)
  • numpy      1.17.3  (1.21.5)
  • matplotlib  3.0.1  ( 3.5.2)
  • scipy           1.3.2  ( 1.9.1)
  • skimage    0.15.0  (0.19.2)

References

[1] Shalloo, Hydrodynamic optical-field-ionized plasma waveguides for laser plasma accelerators, (2018), pp. 34 - 36\ [2] Colgan, Laser-plasma interactions as tools for studying processes in quantum electrodynamics, (2022), pp. 32 - 34\ [3] Kawana and Kitoh, Introduction to Optical Waveguide Analysis: Solving Maxwell's Equation and the Schrodinger Equation, John Wiley & Sons, (2004)

Owner

  • Name: Cary Colgan
  • Login: ccolgan
  • Kind: user
  • Location: London, UK

Plasma | LWFA | X-rays                    Plasma Diagnostician at Tokamak Energy. PhD Graduate @ImperialCollegeLondon

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Colgan
    given-names: Cary
    orcid: https://orcid.org/0000-0001-6227-2317
title: "LAPPLAC: Diffractive laser beam propagator"
version: 1.0
date-released: 2023-03-13
url: "https://github.com/ccolgan/LAPPLAC"

GitHub Events

Total
Last Year