Skip to content

External waveform data

This workflow keeps downloaded waveform datasets outside TorchWave's source tree, wheels, and source distributions. TorchWave's code license remains MIT; external datasets retain their own upstream terms.

SEOBNR_ROM and SEOBNRv4_ROM require the upstream authors' ROM tables. The evaluator is native Torch/JAX code, while the bases and interpolation coefficients are third-party data, not numbers generated by diffgw. Direct SEOBNR_ROM class construction also selects this official evaluator. The former unvalidated bundled surrogate and seobnrv5rom alias have been removed.

The SEOBNRv4ROM v3 dataset is available from Zenodo record 14999310. The data keeps its upstream terms; this project does not make a legal clearance claim. Install the optional rom-official dependency (h5py) when using it. The torchwave-data CLI reports, verifies, and fetches datasets only when explicitly requested. Its search order is an explicit path, TORCHWAVE_DATA_PATH, LAL_DATA_PATH, and the user cache ($XDG_CACHE_HOME/torchwave/waveform-data, or ~/.cache/torchwave/waveform-data when XDG_CACHE_HOME is unset):

# Using the console script entrypoint
torchwave-data list
torchwave-data info seobnrv4-rom-v3
torchwave-data verify seobnrv4-rom-v3
torchwave-data fetch seobnrv4-rom-v3

# Or via the Python module
python -m torchwave.external_data list

The default fetch location is discovered automatically during waveform loading. For a custom external directory, download there and configure lookup:

torchwave-data fetch seobnrv4-rom-v3 --directory /path/to/cache
export TORCHWAVE_DATA_PATH=/path/to/cache
torchwave-data verify seobnrv4-rom-v3

Alternatively, pass the downloaded file or its directory explicitly to OfficialSEOBNRv4ROM(model_path=...). Production loading checks the pinned SHA-256 before reading the ROM tables. A missing or corrupt file produces an error.

Fetch requires the explicit fetch command and a writable external directory; no dataset is downloaded during installation or normal waveform evaluation. No complete standalone XHM 122022 supplementary dataset is registered, so this workflow cannot yet supply its missing calibration data. Download support does not change the numerical parity results or replace missing waveform drivers. The paper-era arXiv v2 archive inventory and the absence of an authoritative 122022 release mapping are recorded in the XHM/XPHM release-qualification receipt.

The optional independent IMRPhenomHM physical holdout uses the official SXS:BBH:2265v3.0 record. Its six exact source-file identities, conditioning, and fixed gates are in the precommitted protocol. The scripts/prepare_imrphenomhm_sxs_nr_holdout.py script downloads and verifies Lev3/Lev2 N2 strain to a user-selected directory outside the repository, then writes a derived fixture beside the raw files. It is not a runtime dependency and no SXS waveform array is packaged with diffgw. The independent second case uses SXS:BBH:3631v3.0, with its own precommitted protocol, red receipt, scripts/prepare_imrphenomhm_sxs_3631_nr_holdout.py, and strict external-data test. Both cases currently fail physical six-mode gates. The separate SXS:BBH:3619v3.0 projected-strain holdout has a frozen protocol, red receipt, external-data preparation script, and strict test. Its model matches pass, but its predeclared Lev2–Lev3 resolution screen fails, so it supplies no physical qualification. Its raw and derived SXS arrays also remain outside Git. The later SXS:BBH:3630v3.0 projection holdout has its own frozen protocol, red receipt, preparation script, and strict test. Its predeclared common time/orbital-phase Lev2–Lev3 screen passes, but one model/NR amplitude gate fails. Its raw and derived arrays also remain outside Git.