Metadata-Version: 2.1
Name: sweepx
Version: 0.1.0.post1
Summary: Install handle for the sweep engine: `pip install sweepx`, then `import sweep`.
Author-email: Shaowen Wang <shaowen.wang@kaust.edu.sa>
License: MIT
Project-URL: Homepage, https://github.com/DeepWave-KAUST/sweepx
Project-URL: Issues, https://github.com/DeepWave-KAUST/sweepx/issues
Keywords: fwi,geophysics,seismic,wave-equation,meta-package
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: sweep-solver<0.2,>=0.1

# sweepx

**One-line install for the [sweep](https://github.com/DeepWave-KAUST/sweep) wave-equation engine.**

`sweepx` is a thin umbrella package with no code of its own — installing it pulls
in the sweep engine so you can `import sweep`.

## Install

```bash
pip install sweepx
```

This currently pulls in a single package:

| Distribution   | Import name | What it does                                                       |
|----------------|-------------|-------------------------------------------------------------------|
| `sweep-solver` | `sweep`     | Wave-equation engine: equations, propagators, operators, FWI/LSRTM |

> **Solver-only release.** The companion packages (`sweep-io`, `sweep-nn`,
> `sweep-opt`, `sweep-loss`, `sweep-viz`, `sweep-preproc`, `sweep-tasks`,
> `sweep-runner`) are **not published yet**. When they ship, they'll be added to
> `sweepx`'s dependencies — you keep the same `pip install sweepx`.

## Import

After `pip install sweepx`, **import as `sweep`**, not `sweepx`:

```python
import sweep
from sweep.propagator.torch import PropTorch     # PyTorch propagator
from sweep import equations, propagator          # native submodules
```

> Same pattern as `pip install scikit-learn` → `import sklearn`: the import name
> `sweep` was already taken on PyPI, so the installable is named `sweepx`.

## CUDA backend

`sweep`'s GPU backend (`impl='c'`) is **JIT-compiled against your own PyTorch on
first use** — so a single wheel works with **any** torch version and any Python 3,
with no prebuilt CUDA/torch/Python matrix. It needs a CUDA GPU and `nvcc >= 12.4`
(a system toolkit, `module load cuda`, or `conda install -c nvidia cuda-toolkit`):

```python
import sweep
sweep.precompile()   # optional: build the CUDA backend now (~3-5 min, then cached)
```

Drop `precompile()` and the compile happens automatically on first use of
`impl='c'`, cached thereafter in `~/.cache/torch_extensions`. The pure-Python
eager / JAX backends need no nvcc.

Check what's available without triggering a compile:

```python
import sweep
print(sweep.is_torch_binding_available())              # torch + CUDA GPU + nvcc present?
print(sweep.backend.torch.binding.diagnostics())       # usable / reason / cuda_home / built
```

## License

MIT — see [LICENSE](LICENSE).
