Metadata-Version: 2.3
Name: siegert-scatter
Version: 1.0.0
Summary: Compute radial (partial-wave) Schrödinger scattering using the Siegert pseudostate (SPS) method, producing S-matrices, cross sections, Wigner time delays, and scattering lengths for user-defined potentials.
Keywords: scattering,quantum mechanics,Siegert pseudostates,S-matrix,cross section,Wigner time delay,scattering length,partial-wave expansion
Author: Anatoli Tsinovoy
Author-email: Anatoli Tsinovoy <anatoli.tsinovoy@gmail.com>
License: MIT License
         
         Copyright (c) 2026 Anatoli Tsinovoy
         
         Permission is hereby granted, free of charge, to any person obtaining a copy
         of this software and associated documentation files (the "Software"), to deal
         in the Software without restriction, including without limitation the rights
         to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
         copies of the Software, and to permit persons to whom the Software is
         furnished to do so, subject to the following conditions:
         
         The above copyright notice and this permission notice shall be included in all
         copies or substantial portions of the Software.
         
         THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
         AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
         SOFTWARE.
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Requires-Dist: numpy>=2.4.0
Requires-Dist: scipy>=1.16.3
Requires-Python: >=3.13
Project-URL: Repository, https://github.com/anatoli-tsinovoy/siegert-scatter
Project-URL: Issues, https://github.com/anatoli-tsinovoy/siegert-scatter/issues
Project-URL: Changelog, https://github.com/anatoli-tsinovoy/siegert-scatter/releases
Project-URL: DOI, https://doi.org/10.5281/zenodo.18190655
Project-URL: Zenodo, https://doi.org/10.5281/zenodo.18190655
Description-Content-Type: text/markdown

# Siegert Scatter

Compute radial (partial-wave) Schrödinger scattering using the Siegert pseudostate (SPS) method. This library produces S-matrices, cross sections, Wigner time delays, and scattering lengths for user-defined potentials.

**This library is an implementation of the Siegert pseudostate method for quantum scattering as described in:**

> Batishchev, P. A. & Tolstikhin, O. I. (2007). *Siegert pseudostate formulation of scattering theory: Nonzero angular momenta in the one-channel case.* Physical Review A, 75, 062704.  
> [https://doi.org/10.1103/PhysRevA.75.062704](https://journals.aps.org/pra/abstract/10.1103/PhysRevA.75.062704)

## Installation

```bash
pip install siegert-scatter
```

## Usage

See the [K-He example](#example-k-he-spin-exchange-scattering) below for a complete real-world use case.

## Command-Line Interface

The package provides a CLI for computing scattering from tabular potential files.

### Basic Usage

```bash
siegert-scatter --help
siegert-scatter scatter --help

siegert-scatter scatter potential.dat

siegert-scatter scatter potential.dat -N 100 -a 15 -l 10 --e-max 5.0 -v
```

### Input Format

The potential file should contain two columns: r (Bohr) and V (Hartree).
Lines starting with `#` are treated as comments.

```
# r(Bohr)  V(Hartree)
0.5        -10.0
1.0        -5.0
2.0        -1.0
```

### Output Files

The CLI produces two output files:
- `{prefix}.npz`: NumPy archive with S-matrix, cross sections, time delays, etc.
- `{prefix}.json`: Summary metadata with parameters, version, and timestamp

## Example: K-He Spin-Exchange Scattering

For a complete real-world example, see [`scripts/KHe-example/run_everything.py`](scripts/KHe-example/run_everything.py), which computes spin-exchange cross-sections for potassium–helium (K-He) collisions.

> **Note**: The K-He example is a specialized workflow that is not part of the packaged CLI. It requires additional dependencies and input data. See the [example README](scripts/KHe-example/README.md) for details.

This example demonstrates the library's capabilities in the context of the following work:

> Tsinovoy, A., Katz, O., Landau, A. & Moiseyev, N. (2022). *Enhanced Coupling of Electron and Nuclear Spins by Quantum Tunneling Resonances.* Physical Review Letters, 128, 013401.  
> [https://doi.org/10.1103/PhysRevLett.128.013401](https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.128.013401)

## How to cite

If you use this software in your research, please cite it.

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18190655.svg)](https://doi.org/10.5281/zenodo.18190655)

See the [`CITATION.cff`](CITATION.cff) file for citation metadata compatible with GitHub's citation feature.

## License

MIT License. See [LICENSE](LICENSE) for details.
