Code Monkey home page Code Monkey logo

laser-modulation's Introduction

Laser-modulation

This python code simulates laser-electron interaction in an undulator field, defined by user.

Input files

Lattice Input File

The file .LTT defines the properties of the undulator magnetic field used in the simulation. The parameters included in this file are:

  • E0: Energy of the electron beam in GeV.
  • WL: Fundamental wavelength of the undulator in meters.
  • NPERIOD: Number of periods in the lattice.
  • PERIODLEN: Length of each lattice period in meters.

Below are only valid when defining SPEED_Lattice object

  • M1: First mirror wavelength in meters.
  • M2: Second mirror wavelength in meters.
  • RAD: Radius of the lattice in meters.
  • C1: Chicane 1 parameter.
  • C2: Chicane 2 parameter.

Laser Input File

The file .LSR defines the properties of the laser used in the simulation. The parameters are:

  • WL: Wavelength of the laser in meters.
  • SIG_X: Sigma width at focus in meters (X-direction).
  • SIG_Y: Sigma width at focus in meters (Y-direction).
  • T_FWHM: Full width at half maximum (FWHM) of the temporal profile in seconds.
  • E: Pulse energy of the laser in joules.
  • FOCUS: Focus distance of the laser from the beginning of the defined magnetic field in meters.
  • X0: Initial position in the X-direction.
  • Z_OFFSET: Pulse offset in the Z-direction.
  • M2: Beam quality parameter.
  • PULSED: Boolean indicating whether the laser is pulsed (True/False).
  • PHI: Spectral phase of the laser, quantifying the frequency chirp.

Usage

To use the input files, adjust the parameters to match the desired lattice and laser properties for your simulation.

  • For normal undulators, use the Modulator object, specifying the filename of the LTT file as a parameter.

  • Alternatively, define a lattice using a user-defined field file (.txt). The file should have two columns: the first column indicates the z position in millimeters, and the second column indicates the vertical magnetic field in Tesla, separated by a tab.

  • For the special Modulator-Chicane-Modulator-Chicane-Radiator configuration used in the EEHG project named SPEED at DELTA, TU Dortmund, use the SPEED_Lattice object. This object also requires the LTT file as input, along with additional parameters. (link to the paper)

laser-modulation's People

Contributors

arjun-krishnan avatar frederikteutenberg avatar

Watchers

 avatar

laser-modulation's Issues

Laser Phase Noise

Need to integrate laser phase noise to the definition of the laser EM field

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.