Metadata-Version: 2.4
Name: starwave
Version: 7.0.0
Summary: Scalar, VRZ, VTI, elastic and independent 2D SLS viscoacoustic propagation for PyTorch
License-Expression: MIT AND LicenseRef-NVIDIA-CUDA-11.8 AND (GPL-3.0-or-later WITH GCC-exception-3.1)
Requires-Python: <3.13,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: LICENSE.NVIDIA-CUDA
License-File: LICENSE.GCC-RUNTIME
License-File: THIRD_PARTY_NOTICES.md
License-File: native/LICENSE.SWEEP
License-File: cpu_validation/reference/LICENSE
License-File: starwave/_deepwave/LICENSE.Deepwave.txt
Requires-Dist: torch<2.6,>=2.5
Requires-Dist: numpy>=1.23
Dynamic: license-file

# StarWave 7.0.0

Binary-only Linux x86-64 wheels for scalar, VRZ, VTI, elastic and independent 2D single-SLS viscoacoustic propagation with PyTorch autograd. The public package is built from separately frozen V14 source (`0.1.0.dev14`). Publication is complete only once the reviewed wheel is available from PyPI with its verified SHA-256.

## Installation and supported environment

Python 3.10–3.12, PyTorch `>=2.5,<2.6`, NumPy `>=1.23`, Linux x86-64 with glibc 2.35 or newer. CUDA runtime 11.8 is linked statically. Native CUDA images contain SASS for sm70, sm75, sm80, sm86, sm89 and sm90, plus compute80 PTX. The NVIDIA driver and CUDA-enabled PyTorch installation are supplied by the user. CPU-only PyTorch can use the explicit elastic/SLS CPU backends; it cannot execute CUDA kernels. Windows and macOS wheels are not provided.

```bash
python -m pip install starwave==7.0.0
```

Choose the appropriate official PyTorch 2.5.1 distribution for your environment before installing StarWave. CPU installation checks do not establish GPU numerical compatibility. The build/install workflow uses Torch 2.5.1 CPU with NumPy 1.26.4 on Python 3.10, 3.11 and 3.12, and repeats Python 3.12 SLS checks with NumPy 2.2.6. Those checks are gates, not claims that every listed environment has already passed.

## SLS interface

The new `starwave.visco_sls`, `starwave.prepare_visco_sls` and `starwave.visco_sls_native_status` APIs preserve the frozen source contract. The wheel includes separate precompiled SLS CPU and CUDA shared libraries. Select `backend='native_cpu'`, `backend='cuda'` or the explicit tiny reference `backend='torch'`; there is no automatic compiler execution or backend fallback.

SLS models are `[z,x]`; records are `[shot,receiver,time]`. Vp is phase velocity at `f_ref`, and Q is complex-modulus Q at that frequency, not broadband constant Q. Density is fixed. Vp, Q and source amplitudes support first-order gradients. Full-history 2D propagation supports float32/float64 and spatial accuracy 2/4/6/8. Native higher derivatives, density gradients, boundary-history reconstruction and 3D SLS are unsupported.

The SLS source is second-order forcing in Pa/m² with the frozen negative update sign and half-weight startup. Records sample before each update; the first record and final source-sample gradient are zero. Time steps are never automatically changed or resampled. PML replicate padding has its true transpose; trainable Vp/Q with nonzero PML requires a fixed explicit `max_vel` bounding unrelaxed speed. Unstable requested dt raises instead of being silently adjusted.

The wheel contains four main shared objects (core, elastic, SLS CPU and SLS CUDA), one isolated libgomp runtime, Python public wrappers and runtime helpers, sanitized integrity metadata, and licenses. C/CUDA/header sources, build tools, source asset trees, notebooks, tests and raw build receipts are excluded. The required `_visco_sls_reference.py` Python module remains included for coefficient/CPML helpers and the public explicit Torch reference backend; unrelated private elastic vp/vs/rho reference code remains excluded.

Hashes detect corruption or mixed revisions, not malicious replacement of code and metadata together. Source-commit/manifest bindings, actual ABI/export checks, fatbinary inspection, wheel-inventory checks and independent exact-artifact review precede publication. Host loading and CPU checks do not substitute for GPU execution. GPU acceptance supplied by the user remains separately scoped to their tested hardware and inputs.

## Licenses

Bundled attribution includes SWEEP and Deepwave MIT notices, NVIDIA CUDA 11.8 redistribution terms, and libgomp GPL-3.0-or-later with GCC Runtime Library Exception 3.1 and exact corresponding-source locations. The existing overall release license is retained unchanged from the prior approved public packaging.
