Skip to content

Port JL advanced-physics compatibility to rift_O4d - #175

Open
oshaughnessy-junior wants to merge 6 commits into
rift_O4dfrom
codex/rift_O4d_JL_compat_to_merge
Open

Port JL advanced-physics compatibility to rift_O4d#175
oshaughnessy-junior wants to merge 6 commits into
rift_O4dfrom
codex/rift_O4d_JL_compat_to_merge

Conversation

@oshaughnessy-junior

@oshaughnessy-junior oshaughnessy-junior commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Summary

This is a conflict-resolved port of the core advanced-physics functionality from oshaughn/rift_O4d_JL (355c3f9f) onto oshaughnessy-junior/rift_O4d (4c1da52c). It preserves the newer rift_O4d calibration, interpolation, GPU, and pipeline behavior while adding:

  • eccentricity and mean-anomaly propagation through ILE, CIP, pseudo-pipe, conversion, injection, and frame utilities;
  • TEOBResumS a6c and hyperbolic E0/p_phi0 sampling, output, grid filtering, and waveform handling;
  • generalized hyperpipeline column-layout detection for combinations of tides, EOS index, EOB, hyperbolic, eccentric, and distance fields;
  • a TEOBResumS compatibility adapter with auto (default), dali, default, and legacy profiles, safe schema preflight, explicit overrides, and runtime fingerprinting;
  • distance-invariant hyperbolic outcome classification using TEOBResumS radial dynamics rather than an absolute strain threshold;
  • focused regression tests for the compatibility adapter and advanced-parameter data paths.

The old integrate_likelihood_extrinsic_batchmode_error full-script duplicate is intentionally not ported: it had diverged into a maintenance fork and does not add a distinct supported entry point.

Compatibility behavior

auto is the default. Known DALI interfaces receive their string-valued enum/boolean schema; other or future-looking interfaces conservatively receive the established default schema. An operator can pin RIFT_TEOBRESUMS_PROFILE=default|dali|legacy. The first schema is probed in a subprocess, preventing an incompatible extension from taking down the parent RIFT process.

Validation

  • 31 passed across test_teobresums_compat.py, test_advanced_parameter_ports.py, and test_hyperpipeline_io.py.
  • 154 passed for those suites plus the CI integrator-accounting, CIP-prior, and cosmology-source tests; the three new advanced EOB priors now have explicit support and normalization coverage.
  • Full LISA gate: 266 passed, 1 skipped; the three ground-based external-TEOB options are explicitly classified as not applicable to the current LISA waveform path in the generated drift ledger.
  • pyflakes clean for the new helper and tests; staged diff whitespace check clean.
  • Local current DALI (9c4482d9) generated a finite hyperbolic waveform and classified the test point as zoom-whirl.
  • CIT Jake environment (/home/jacob.lange/.conda/envs/20260204-Ecc-Tides-container-mylalsuite-env, DALI extension SHA-256 bade0374...) passed both hyperbolic generation and a combined eccentric + precessing + tidal + a6c waveform (3,353 finite samples).
  • CIT legacy TEOBResumS (26f2343e) passed profile detection and finite waveform generation.
  • CLI import/help gates passed for ILE, pseudo-pipe, CIP, converters, and frame utilities.

No files under RIFT/integrators/ change, so the posterior shape-recovery gate is not triggered.

Remaining follow-up

  • Add CI environments containing representative real TEOBResumS binaries; dependency-free CI exercises the adapter logic, while real-backend tests currently require provisioned runtimes.
  • Record the exposed TEOBResumS runtime fingerprint in durable run provenance, not only diagnostics.
  • Run a full scheduler/DAG analysis with representative data before promoting from draft; waveform generation and parameter/file plumbing are covered here, but not a production-scale PE run.
  • Decide and document the scientifically supported TEOBResumS commit set. Interface compatibility prevents crashes, but it cannot make distinct backend revisions scientifically identical.

@oshaughnessy-junior
oshaughnessy-junior deployed to private-review-dispatch-rift August 20, 2026 16:04 — with GitHub Actions Active
@oshaughnessy-junior
oshaughnessy-junior deployed to private-review-dispatch-rift August 20, 2026 16:09 — with GitHub Actions Active
@oshaughnessy-junior
oshaughnessy-junior deployed to private-review-dispatch-rift August 20, 2026 16:11 — with GitHub Actions Active
@oshaughnessy-junior
oshaughnessy-junior deployed to private-review-dispatch-rift August 20, 2026 16:19 — with GitHub Actions Active
@oshaughnessy-junior
oshaughnessy-junior deployed to private-review-dispatch-rift August 20, 2026 18:32 — with GitHub Actions Active
@oshaughnessy-junior
oshaughnessy-junior deployed to private-review-dispatch-rift August 20, 2026 18:45 — with GitHub Actions Active
@oshaughnessy-junior
oshaughnessy-junior marked this pull request as ready for review August 20, 2026 19:27
@oshaughnessy-junior
oshaughnessy-junior deployed to private-review-dispatch-rift August 20, 2026 19:27 — with GitHub Actions Active

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent automated review completed at the recorded exact commit. Detailed findings were withheld from public output by the private-context egress policy and require private human declassification.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants