Skip to content

A a free python code written by Stefan Haessler, André Kalouguine, Anthony Guillaume and Charles Bourassin-Bouchet. It does ray tracing calculations with a specific focus on ultrashort (femto- and attosecond) laser pulses.

License

Notifications You must be signed in to change notification settings

mightymightys/AttosecondRaytracing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A rendering of two toroidal mirrors with an intermediate collimated section.

ART - Attosecond Ray Tracing - is a free python code written by Stefan Haessler, André Kalouguine, and Anthony Guillaume of Laboratoire d'Optique Appliquée (LOA), CNRS, Institut Polytechnique de Paris, France and Charles Bourassin-Bouchet Laboratoire Charles Fabry (LCF)), Institut d’Optique, CNRS, Université Paris-Saclay, France.

It does ray tracing calculations with a specific focus on ultrashort (femto- and attosecond) laser pulses. Therefore the code currently focuses on reflective optics, freely arrangeable including grazing incidence configurations.

Ten years ago, Charles made geometric optics calculations that demonstrated how sensitive attosecond pulses are to spatio-temporal distortions and how easily such distortions are picked up in the reflective grazing-incidence optical setups required to transport and refocus them [C. Bourassin-Bouchet et al. “How to focus an attosecond pulse”. Opt. Express 21, 2506 (2013); C. Bourassin-Bouchet et al. “Spatiotemporal distortions of attosecond pulses”. JOSA A 27, 1395 (2010)]. ART now makes these calculations avaible to the ultrafast optics community in a free and (hopefully) easily accessible python code.

A publication of simulations of the beam transport and focusing of high-numerical-aperture XUV attosecond pulses is in preparation and will become the reference that we ask you to cite if you have used this code in your work.

The detailed documentaion can be found here.

A quickstart documentation will very soon (promised ;-) be added in the following.

Dependencies

The code requires Python 3.6 or newer and depends on the libraries NumPy, Numpy-Quaternion, matplotlib, and for 3D-rendering of optical configurations and rays, PyVista.

Using pip

If installing using pip, we recommend installing the dependencies in a virtual environment, for instance using

python -m venv <new_virtual_environment_folder>

This lets you install and use the software without interfering with the system installation of Python.

As for the installation of the dependencies:

pip install numpy numpy-quaternion matplotlib pyvista scipy colorcet

Using Anaconda

Just as with pip, we recommend using a separate virtual environment to install and use ART. The dependencies are all available in the conda-forge repository.

Installation

You can just download the code as a zip file from here. Or if you are using the git version control software, ou can clone the repository like so:

git clone https://github.com/mightymightys/AttosecondRaytracing.git

You are welcome to fork the code and contribute to its further development

Running ART

To run ART, you run the appropriately named ARTmain.py in the console, supplying a configuration-file as an argument, like so:

python ARTmain.py CONFIG_xxxx.py

The configuration file is itself written in python, and the user is responsible for enuring that it doesn’t contain any harmful code. A template for such a configuration file is given by CONFIG_template.py and a number of example configurations files are provided to be tried, explored and adapted.

Alternatively, the user may use the configuration file as a launch script, and run the main program as indicated at the end of the template and example configuration files. This is practicle, e.g., when writing the configuration file in an IDE like Spyder, which features an IPython-console and let the user run the configuration directly.

About

A a free python code written by Stefan Haessler, André Kalouguine, Anthony Guillaume and Charles Bourassin-Bouchet. It does ray tracing calculations with a specific focus on ultrashort (femto- and attosecond) laser pulses.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages