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

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.0
File Size Uploaded
xreticolo-0.1.0.tar.gz 3.0 MB Details

Built distribution (wheel)

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

Total release size: 6.1 MB

Release files / xreticolo-0.1.0.tar.gz

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

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

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

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

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