Attosecond Ray Tracing core calculation package
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for attosecondraytracing_core-0.9.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2f0d1117ec06e3baf47f31033230f6e1df0e867850e2b4cbd1ad191fa42b285 |
|
MD5 | 9cc8be1bfac8cf749a03d95c1b7f0b61 |
|
BLAKE2b-256 | 3aa2f79c84e1c068b485dadddc7f7fe69ecc9d5bca59e8926577380e3d0c9953 |
Hashes for AttosecondRayTracing_core-0.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b27bf52d6dffc27c89beaf8d96a07e2f1b5c874642790038519a2b5cd0ddfc4 |
|
MD5 | ff1fc290a0a32b8f0a53cb239a861fe6 |
|
BLAKE2b-256 | 0116097604b04512937d3a606429620fda323f437caa05a760d47f62ea47c729 |