Skip to content

feat(DDR): add Damour-Deruelle-Regular binary delay model - #2041

Draft
vhaasteren wants to merge 8 commits into
nanograv:masterfrom
vhaasteren:feat/ddr-model
Draft

vhaasteren wants to merge 8 commits into
nanograv:masterfrom
vhaasteren:feat/ddr-model

Conversation

@vhaasteren

@vhaasteren vhaasteren commented Sep 11, 2026 •

Copy link
Copy Markdown
Member

Summary

Adds BINARY DDR: one Damour-Deruelle delay, regularized over the full coordinate space (through e=0)

  • Default PK coordinate chart is GR (DDRPK Y): Einstein delay and ω-dot from the masses, not free GAMMA/OMDOT.
  • DDRKINE / DDRGEO are the physical 3D-motion terms (Shklovskii, Galactic P-dot, Cartesian Kopeikin projector with KOM, PX, frozen TGEO). This is the Kopeikin physics that DDK linearizes; it is not a straightforward DDGR+K combination. So, there's only one inclination angle for Kopeikin and Shapiro: COSI
  • Messy / spider orbits use the FBX chart (FB0–FBK, to general order).
  • convert_binary maps ELL1/ELL1H/DD/DDS/DDH/DDK/BT <--> DDR. (optional drop_edot= on import from other binary models).
  • DDR uses (M2, COSI) for Shapiro delay. The FW10 orthometric parameters are not natively fittable on purpose. However, through a tool like nltiming the transformation could be implemented and orthometric parameters could be sampled. Out of scope for this PR

After conversion of all NG15 binaries to DDR I get <1ns differences in residuals compared to the original par files.

This is an implementation preview for discussion.

Test plan

  • tests/test_ddr.py, tests/test_ddr_kernel.py, tests/test_binconvert.py
  • Reviewers: load a nearby wide binary with DDRGEO Y and a spider with FBX

One Damour-Deruelle delay, regularized over the full coordinate space,
with convert_binary maps and general-order FBX parameters.
@vhaasteren
vhaasteren marked this pull request as draft September 11, 2026 04:48
@vhaasteren
vhaasteren marked this pull request as ready for review September 13, 2026 17:53
Fingerprint the cache in float64 and loosen wrap-level FD slop so x87 longdouble ulp jitter does not miss the batch or fail Dual-vs-FD checks.
80-bit CI failed at a DECJ:d_I_au zero-crossing because a 1e-8 deg step sits at the longdouble ulp.
@vhaasteren
vhaasteren marked this pull request as draft September 17, 2026 12:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant