Skip to main content

xReticolo

Python bindings for Blazr.m, a grating-monochromator diffraction-efficiency tool built on top of RETICOLO (RCWA solver by J.P. Hugonin and P. Lalanne). Calculations run in GNU Octave — no MATLAB license required.

Requirements

  • Python >= 3.9
  • Octave on PATH (tested with 10.3.0): brew install octave (macOS) / apt install octave (Debian/Ubuntu)

Install

pip install xreticolo

Quickstart

import xreticolo as xr

# blazed grating, +1 order efficiency at 806 eV
alpha_rad, beta_rad, theta_rad = xr.vls_trajectory(
    E_eV=806, E0_eV=806, g_lpm=287.44e3, p_m=24.301, q_m=7.573, cff=1.577
)
eta = xr.efficiency_blazedx(
    g_lpm=287.44e3, blazed_angle_deg=0.40, E_eV=806,
    grazing_angle_rad=1.5707963267948966 - alpha_rad, material="Au", order=1,
)
print(eta)

xr.call(method, *args, nargout=1) invokes any Blazr.<method> static method directly, so it keeps working as Blazr.m gains new methods:

eta = xr.call("efficiency_lamellar", pitch_m, thickness_m, wavelength_m,
              grazing_angle_rad, "Au")

See examples/ for full worked notebooks (blazed and lamellar gratings, efficiency vs. photon energy).

What's bundled

  • Blazr.m — the grating efficiency/trajectory wrapper.
  • The RETICOLO V7 RCWA engine (reticolo_allege), by J.P. Hugonin and P. Lalanne, CC-BY-4.0 — see arXiv:2101.00901 and zenodo.org/records/14631951. If you use this package for published work, please cite that paper.
  • A handful of tabulated optical constants (Au, Ni, Rh, SiC, C) used by Blazr.m's efficiency functions.

Development

pip install -e ".[examples,test]"
pytest

License

BSD-3-Clause (see LICENSE) for the Python bindings and Blazr.m. The bundled RETICOLO engine is distributed under its original CC-BY-4.0 license from the authors.

Metadata

Release files for xreticolo 0.1.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 xreticolo 0.1.1
File Size Uploaded
xreticolo-0.1.1.tar.gz 3.0 MB Details

Built distribution (wheel)

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

Total release size: 6.1 MB

Release files / xreticolo-0.1.1.tar.gz

Download URL xreticolo-0.1.1.tar.gz
Size 3.0 MB
Tags Source
SHA-256 checksum
How to use checksums
df2bc4ff81d39e71b1efffd190c8aca2e9fc273f699d63bce39f712ce0b20c1b
BLAKE2b-256 checksum
How to use checksums
dd896a73c3ba9742b7c20ff8f29cd21c52dfbe59cff287d5c3da22561c56316c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release files / xreticolo-0.1.1-py3-none-any.whl

Download URL xreticolo-0.1.1-py3-none-any.whl
Size 3.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4dc4b58fffa638b7bff8a5ea90108fa5173b5774737fd8cc5e410bbbb7ddc719
BLAKE2b-256 checksum
How to use checksums
a78bcfc20260e6f94982d5785bb818d97790a5daf675a8b536def853da214db5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.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