Skip to main content

SolRaT

Documentation Homepage License PyPi Version Language Supported Platforms Coverage Status

SolRaT (Solar Radiative Transfer) is a forward-modeling code for the polarized, non-LTE transfer of spectral-line radiation in magnetized stellar atmospheres. It is built on the density-matrix formalism of [LL04] and written so that each statistical-equilibrium and radiative-transfer expression reads close to the equation it implements. The aim is a model that is transparent enough to inspect and verify, and flexible enough to adapt to a specific line or context rather than used as a black box.

Manuscript figure and benchmark demos are mapped in README_MANUSCRIPT.md.

Physical model

  • Density-matrix formalism in the irreducible spherical statistical tensors $\rho^K_Q$, with atomic level polarization fully included [LL04].
  • Interchangeable atomic models in a single pipeline: multi-term, multi-level, and LTE variants of both descriptions, selectable without rewriting the surrounding code.
  • Magnetic fields of arbitrary strength: Zeeman, Hanle, and the Paschen-Back regime by exact diagonalization of the atomic Hamiltonian (multi-term atom; Zeeman and Hanle for the multi-level atom).
  • Radiation field $J^K_Q$ either prescribed (LTE Planck, or Allen/ATL08-style anisotropic ${n, w}$ values for coronal/chromospheric lines) or solved self-consistently for the non-LTE scattering problem [TM99].

Atmospheres and synthesis

  • Constant-property slabs, optionally stacked into a multi-slab stratification under anisotropic illumination.
  • Height-stratified atmospheres in which temperature, absorber number density, the magnetic-field vector, microturbulence, Voigt damping, and the vector macroscopic velocity vary continuously with geometric height. The radiation tensor $J^K_Q$ can be prescribed on the depth grid or solved self-consistently by $\Lambda$-iteration, with the Stokes transfer solved by the DELO method.
  • Emergent Stokes profiles for a chosen line of sight at arbitrary spectral resolution.

Design

SolRaT is organized in three layers:

  • a public API to run the built-in models;
  • a modeling API to extend a model or build a new one by analogy with the shipped ones;
  • the SolRaT engine, a vectorized meta-language in which the angular algebra and rate expressions are written close to their mathematical form, with the bookkeeping and optimization handled underneath.

Pre-configured lines: He I D3, Mn I 5432.5 Å, Ni I 5435.9 Å, Fe I 5434.523 Å.

Scope and limitations

SolRaT is a forward model. Its non-LTE solution is collisionless (pure scattering) by default, so scattering-polarization amplitudes are then upper limits; an optional parametrized-collision extension (for both the multi-level and the multi-term atom) adds inelastic (transfer) and elastic (depolarizing) rates that bridge the scattering limit to LTE. Line formation assumes complete frequency redistribution (CRD). Physical collisional rates from cross-sections, partial frequency redistribution, and 3D geometry are out of scope for the current version.

Installation

Install SolRaT directly from PyPi by running pip install solrat.

Documentation

Detailed documentation is available at https://solrat.readthedocs.io/. A quick-start example is available at https://solrat.readthedocs.io/latest/quickstart.html. Additional demos and validation against [LL04] and [HAZEL2] are available in demos.

Citing

A journal article is in preparation. In the meantime, if SolRaT has found use in your research, please cite it as

Yakovkin I. I. SolRaT (2023) [computer software]. Retrieved from https://www.yakovkinii.com/solrat/

References

[LL04] Landi Degl’Innocenti, E., & Landolfi, M. 2004, Polarization in Spectral Lines (Dordrecht: Kluwer)

[ATL08] Asensio Ramos, A., Trujillo Bueno, J., & Landi Degl’Innocenti, E. (2008). Advanced Forward Modeling and Inversion of Stokes Profiles Resulting from the Joint Action of the Hanle and Zeeman Effects. The Astrophysical Journal, 683(1), 542–565.

[TM99] Trujillo Bueno, J., & Manso Sainz, R. (1999). Iterative Methods for the Non-LTE Transfer of Polarized Radiation: Resonance Line Polarization in One-dimensional Atmospheres. The Astrophysical Journal, 516(1), 436–450.

[HAZEL2] Link

Keywords:

Non-LTE, Stokes Profiles, Synthesis, Paschen-Back, Hanle, Zeeman, Magnetic Fields, Sun, Solar Atmosphere, Radiative Transfer, Spectral Line Polarization, Spectral Lines, Multi-Term Atom Model, Multi-Level Atom Model, Atomic Polarization.

Copyright (2023) Ivan I. Yakovkin

Metadata

Release files for solrat 1.4.2

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

Source distribution (sdist)

Source distribution for solrat 1.4.2
File Size Uploaded
solrat-1.4.2.tar.gz 700.5 kB Details

Built distribution (wheel)

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

Total release size: 1.5 MB

Release files / solrat-1.4.2.tar.gz

Download URL solrat-1.4.2.tar.gz
Size 700.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4bca19b4e375805061cb24550095201f81dff95d6e26056d4bab7f9ff98d9b24
BLAKE2b-256 checksum
How to use checksums
0a28bbbe64fdbcbe35930ca9da48e34fcc787a54b203956780738611a018dccf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 26, 2026.

Transparency log

Release files / solrat-1.4.2-py3-none-any.whl

Download URL solrat-1.4.2-py3-none-any.whl
Size 780.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b5b61b9ce6dfe970ebe65931dc4590c3d080d5c57459aba6a393afcc95868a6
BLAKE2b-256 checksum
How to use checksums
06e27e5074c7e96a2c6e38505e7b2085c3381bc42e8048751a2ed5767f9db0bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 26, 2026.

Transparency log

Release history Release notifications | RSS feed

1.4.4

2 release files

1.4.3

2 release files

This release

1.4.2 This release

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.9.11

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

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