Metadata-Version: 2.4
Name: qshoot
Version: 0.1.0
Summary: Quantum mechanics eigenstate solver using the shooting method
Author: qshoot contributors
License-Expression: MIT
Keywords: quantum-mechanics,shooting-method,schrodinger,eigenvalue,numerical-methods
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.22
Requires-Dist: matplotlib>=3.5
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Dynamic: license-file

# qshoot

Quantum mechanics eigenstate solver using the shooting method.

Solves the 1D time-independent Schrödinger equation for four textbook potentials:

| Potential | Equation |
|---|---|
| Infinite Square Well | ψ'' = −Ẽψ |
| Harmonic Oscillator | ψ'' = (ξ² − E)ψ |
| Finite Square Well | ψ'' = (V(ξ) − E)ψ |
| Double-Well | ψ'' = λ[(ξ²−1)² − E]ψ |

Uses outward + inward integration with Wronskian matching at the classical turning point, achieving ~10⁻¹² relative accuracy.

## Install

```bash
pip install qshoot
```

## Usage

### GUI (tkinter)

```bash
qshoot
```

Select a potential, adjust parameters, click **Solve**.

### As a library

```python
from qshoot.solvers import make_harmonic_config, solve_problem

config = make_harmonic_config(n_levels=4)
states = solve_problem(config)

for s in states:
    print(f"n={s.index} ({s.parity}): E = {s.energy:.8f}")
```

## Requirements

- Python ≥ 3.10
- NumPy ≥ 1.22
- Matplotlib ≥ 3.5

## License

MIT
