Skip to main content

Acherus logo

Open-source laser pulse filamentation solver

Documentation Status Tests Python 3-14 Codecov LoC LoD

PyPI - Version PyPI - Downloads PyPI - License DOI

About

Developed for ultrashort laser filamentation modeling, Acherus is a (2+1)-spatiotemporal laser filamentation package for Python. It solves the Nonlinear Envelope Equation (NEE) for ultrashort laser pulses in optically transparent and dispersive media—gases (air), liquids (water), and solids (silica)—using the pseudo-spectral Fourier-Crank-Nicolson (FCN) method. The package computes the temporal evolution of the plasma electron density generated during propagation, as well as the pulse intensity, fluence, and width spatiotemporal profiles. Acherus enables accurate prediction and reproduction of numerical or experimental ultrashort laser filamentation scenarios under moderate input powers, providing a versatile tool for modeling a wide range of nonlinear optical phenomena, including supercontinuum generation, conical emission, and X-wave formation, among others.

🚀 Key features of acherus:

  • Input beam models: Gaussian spatiotemporal profiles including chirped and lens-focused beams.
  • Dispersion models: full or partial chromatic dispersion using Sellmeier semi-empirical equations.
  • Ionization models: multiphoton ionization (MPI) or general Keldysh-PPT theory rate predictions.
  • Python implementation with exposed API: access to modules, classes, functions, and core simulation objects.
  • High performance matrix operations using numpy and scipy compiled libraries for fast, GIL-free computation.
  • Built-in 1D-3D visualization tools for post-processing and on-the-fly simulation monitoring with Matplotlib.
  • Optimized memory management and multithreading using ThreadPoolExecutor shared work pools.

🧩 Other features of acherus:

  • Decoupled split-step Crank-Nicolson (SSCN) solver for simpler scenarios.
  • Optimized output storage (HDF5 format) and post-processing with h5py library.

📣 Tag and version updates are described in each acherus GitHub Release

  • For specific queries, please contact the developer 👩‍💻👋 through this Email.

How to use

📘 Documentation, powered by sphinx, is available at https://acherus.readthedocs.io/

Look at 📁 examples/ for different physical applications:

  • 1500 picosecond filamentation of an IR (1032 nm) pulse in air.
  • 100 femtosecond filamentation of an IR (800 nm) pulse in air.
  • 130 femtosecond filamentation of an IR (800 nm) pulse in water.
  • 90 femtosecond filamentation of a UV (400 nm) pulse in water.

Installation

Acherus supports Python 3.11 - 3.14 and may be installed using any venv or conda environment.

📘 Complete installation details can be checked in our Installation Guide.

Install with PyPI

To install acherus, simply run:

pip install acherus

To install acherus from the source, clone the repository and install it in editable mode:

git clone https://github.com/ismatorresgarcia/acherus.git
cd acherus
pip install -e .

📌 Have a bug, feature request, or suggestion? Open a GitHub Issue so the community can track it.

👥 Want to contribute? To merge your changes into main, create a Pull Request (PR) following this PR template.

Motivation

🚀 HASTUR Project - Harnessing Atmospheric Lasing: Towards Ultrasensitive Detection of Toxic Agents and Pathogens

🏢 ETSII-UPM. Instituto de Fusión Nuclear

🌱 This project is part of a research carried out during the academic years 2024–2026 at the Universidad Politécnica de Madrid.

🎯 The main goal of this thesis is to study the detection of toxic agents and pathogens in the upper layers of the atmosphere by exploiting the presence of molecular nitrogen. These nitrogen molecules can act as an active medium, which amplifies radiation of a specific frequency when interacting with nitrogen, generating laser emission. The interaction between laser light and surrounding matter in the atmosphere can be used to determine the hidden presence of undesired contaminants and to study their physical properties.

🤔 So, what are the main activities or tasks carried out in this project?

  • 💻 Developing Maxwell-Bloch numerical codes, as well as studying the propagation of intense infrared plasma lasers through plasma channels—using Particle-in-Cell codes (PIC)—and atomic processes in plasmas.
  • 📈 Developing preprocessing and postprocessing tools to study the data generated by the numerical codes.
  • 🧪 Using the previous numerical codes to study the amplification of ultraviolet (UV) radiation in nitrogen plasma filaments.

Citing acherus

🔖 All acherus releases are linked automatically to a Zenodo publication under a unique DOI. If you use acherus in your work, please star this repository so we can track adoption and improve the project. Additionally, if you use acherus in a scientific publication, please consider citing this work:

[1] I. Torres García and E. Oliva Gonzalo, "Acherus". Zenodo, 2026. https://doi.org/10.5281/zenodo.18864577


Tests badges

Tests Python 3-11 Tests Python 3-12 Tests Python 3-13 Tests Python 3-14

Metadata

Release files for acherus 0.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for acherus 0.8.1
File Size Uploaded
acherus-0.8.1.tar.gz 52.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for acherus 0.8.1
File Interpreter ABI Platform
acherus-0.8.1-py3-none-any.whl Python 3 none any Details

Total release size: 103.6 kB

Release files / acherus-0.8.1.tar.gz

Download URL acherus-0.8.1.tar.gz
Size 52.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a8b5c7df18ef76890a4513e599219445729967432da27d154a93ff5f36896e91
BLAKE2b-256 checksum
How to use checksums
2a4724ba91a5cf3ba9194e1c5348fee5303cd1a50faca0d78782fe70ef0a306c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 23, 2026.

Transparency log

Release files / acherus-0.8.1-py3-none-any.whl

Download URL acherus-0.8.1-py3-none-any.whl
Size 51.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0fabca3227fff23464071118fdeb2af640dbb45b0319a9434ea3b9ebfccae4e2
BLAKE2b-256 checksum
How to use checksums
2dfd4ad2228959f4c2512c2295c9ae6ba5e98eebf1ae9875e9a1464783c17e26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.8.1 This release

2 release files

0.8.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page