@essrt/physics 1.14.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@essrt/physics",
3
- "version": "1.14.0",
3
+ "version": "1.16.0",
4
4
  "description": "ESSRT (Expanding Solar System Resonance Theory) physics core \u2014 pure, injectable-constants, no I/O, no globals, no DOM. The complete model incl. fitted coefficients; every published version immutably ships one recorded model identity.",
5
5
  "essrt": {
6
6
  "modelVersion": "v11.0",
@@ -764,10 +764,10 @@ export const REFERENCE_DATA = Object.freeze({
764
764
  "sunModelTrueErrorDeg": 0.003,
765
765
  "sunTropicalYearDiffSeconds": 0.1,
766
766
  "sunSiderealYearDiffSeconds": 0.02,
767
- "frameworkSunVsJplRmsArcsec": 0.95,
768
- "meeusCh25SunVsJplRmsArcsec": 1.28,
769
- "moonSeriesLonVsJplRmsArcsec": 2.92,
770
- "moonSeriesLatVsJplRmsArcsec": 0.61,
767
+ "frameworkSunVsJplRmsArcsec": 0.93,
768
+ "meeusCh25SunVsJplRmsArcsec": 1.22,
769
+ "moonSeriesLonVsJplRmsArcsec": 2.84,
770
+ "moonSeriesLatVsJplRmsArcsec": 0.35,
771
771
  "mercuryNewtonianArcsecCy": 532,
772
772
  "mercuryObservedICRFArcsecCy": 575,
773
773
  "mercuryPark2017RateArcsecCy": 575.31,
@@ -41,10 +41,21 @@
41
41
  * (ii) the J2000 phase anchors ARG_L0 / PERI / D0 — epoch initial
42
42
  * conditions ("anchored by design" class; the RATES are now
43
43
  * framework-derived, injected);
44
- * (iii) the 2lE term (+1.42″ sin 2lE) DECLARED FITTED, not derived: a
45
- * finder-annual artifact, measured chain-independent at E4/E5
46
- * (re-fit noise −0.12″/−0.03″). Everything else in this file is
47
- * derived. The Earth-around-EMB wobble is DERIVED: amplitude
44
+ * (iii) RETIRED (FQ-7-Sun annual-channel attribution): the former
45
+ * declared-fitted +1.42″ sin 2lE term. It was fitted against a
46
+ * Sun-ALONE JPL comparison bridged by the leading nutation term
47
+ * only, and the attribution measured it as the semiannual
48
+ * nutation term −1.32″ sin(2F−2D+2Ω) ≡ −1.32″ sin 2lE in disguise
49
+ * (2M residual 0.13″ under that bridge, 1.43″ ≡ the term's
50
+ * negative under the fuller bridge). Nutation in longitude is a
51
+ * frame rotation common to Sun AND Moon — this chain keeps both
52
+ * bodies MEAN-of-date (mean obliquity, mean sidereal time; see
53
+ * besselian.cjs), so a Sun-only nutation term is a frame
54
+ * inconsistency for elongation. Removed: the nutation-free syzygy
55
+ * fleet improves 3.877 → 3.756″ and the fuller-bridged Sun
56
+ * comparison 2.344 → 2.123″ (fq7s-jpl-preview.mjs --no-2le;
57
+ * fq7s-annual-channel.mjs). This file now carries ZERO fitted
58
+ * constants. The Earth-around-EMB wobble is DERIVED: amplitude
48
59
  * a_M·μ/AU with μ = 1/(1+M_E/M_M), injected by the model wiring
49
60
  * from live package constants (6.4399″ at current constants), sign
50
61
  * negative in the subtract convention.
@@ -175,9 +186,6 @@ const TERMS = [
175
186
  [[0, 0, 1, -1, 0, 0], [0, 0, -1, 0, 0, 0], -0.0353, -0.0379],
176
187
  ];
177
188
 
178
- /** The declared-fitted semiannual leftover (header (iii)): +1.42″ sin 2lE. */
179
- const FITTED_2LE_ARCSEC = 1.42;
180
-
181
189
  const D2R = Math.PI / 180;
182
190
 
183
191
  /**
@@ -222,8 +230,7 @@ function createSunPlanetaryCompletion({ embWobbleArcsec, carrierRatesDegPerCy })
222
230
  table += cA * Math.cos(th) + sA * Math.sin(th);
223
231
  }
224
232
  const D = (ARG_D0 + D1 * T) * D2R;
225
- const arcsec = -table - embWobbleArcsec * Math.sin(D)
226
- + FITTED_2LE_ARCSEC * Math.sin(2 * l[2]);
233
+ const arcsec = -table - embWobbleArcsec * Math.sin(D);
227
234
  return arcsec / 3600;
228
235
  }
229
236
  return { sunPlanetaryCompletionDeg };
@@ -80,6 +80,29 @@
80
80
  * fq7-r3-ship.mjs · fq7-r3-preview.mjs. The Ω carrier polynomial is an
81
81
  * IAU-class instrument literal — the same DECLARED-INPUT status as the
82
82
  * Delaunay carriers above (Ω ≡ Lp − F of the same catalog class).
83
+ *
84
+ * THE FQ-7 DUST ROUND (plan §12i) — 43 λ + 33 β derived Delaunay terms
85
+ * appended to LON_TERMS/LAT_TERMS below. The broadband-dust census
86
+ * (fq7-dust-census.mjs, secular-guarded v2: cubic detrend + T/T²
87
+ * quadrature absorbers on the head arguments, without which the
88
+ * doctrine-blocked T-modulated parameter class masquerades as fake
89
+ * 184-yr sideband families) ranked the post-R3 capturable content; the
90
+ * dense-JPL arbitration (fq7-dust-arbitration.mjs) measured EVERY
91
+ * trusted leader REAL at ratio 0.9–1.1; the labels bit-match MPP02
92
+ * main-problem catalog rows below the Meeus ~0.4″ truncation cutoff, in
93
+ * argument classes no earlier extraction catalog enumerated (odd kD,
94
+ * |kM| = 3, |kF| = 4/5). Main-problem ⇒ the D1 3-body lab derives them:
95
+ * one 120-yr run, λ and β columns, head fidelity 0.51%/0.07%,
96
+ * dt-halving drift 0.000″, lab/census ratio ∈ [0.7, 1.4] required
97
+ * (4 λ census rows the lab does NOT fully produce stay unshipped —
98
+ * derive or don't ship). Lab signs match the MPP02 catalog signs row
99
+ * for row (the frame-consistency control). JPL out-of-sample: official
100
+ * all-phase λ 2.922 → 2.840″, β 0.606 → 0.353″ — the β endpoint AT the
101
+ * R1-measured MPP02-vs-JPL floor (~0.33″); dense 2-day λ 2.321 →
102
+ * 2.219″, β 0.601 → 0.384″; syzygy fleet improves; the sign-flip
103
+ * control degrades every gate. Instruments: fq7-dust-census.mjs ·
104
+ * fq7-dust-arbitration.mjs · fq7-dust-extraction.mjs ·
105
+ * fq7-dust-preview.mjs.
83
106
  */
84
107
 
85
108
  'use strict';
@@ -155,6 +178,52 @@ const LON_TERMS = [
155
178
  [4, 0, -2, 2, -0.169],
156
179
  [4, -2, -2, 0, 0.161],
157
180
  [0, 0, 5, 0, 0.112],
181
+ // FQ-7 DUST ROUND — the argument classes no earlier catalog enumerated
182
+ // (odd kD, |kM| = 3, |kF| = 4); lab-derived, MPP02-catalog-certified,
183
+ // JPL-arbitrated (see header note):
184
+ [0, 0, 0, 4, 0.422],
185
+ [3, 0, 0, 0, 0.402],
186
+ [2, -3, 0, 0, 0.341],
187
+ [3, 1, -1, 0, 0.275],
188
+ [3, 0, 0, -2, -0.250],
189
+ [2, -3, -1, 0, 0.240],
190
+ [3, -1, -1, 0, -0.233],
191
+ [3, 1, 0, 0, 0.147],
192
+ [0, 3, 0, 0, -0.096],
193
+ [4, -1, -3, 0, 0.096],
194
+ [2, -1, 3, 0, 0.094],
195
+ [2, 0, -3, -2, -0.093],
196
+ [0, 0, 1, 4, 0.092],
197
+ [6, -1, -2, 0, 0.091],
198
+ [1, 1, 2, 0, 0.090],
199
+ [4, 0, 0, 2, -0.084],
200
+ [3, -1, -2, 0, -0.082],
201
+ [0, 0, 1, -4, -0.081],
202
+ [2, 0, 4, 0, 0.078],
203
+ [2, 0, 0, -4, -0.078],
204
+ [0, 1, 0, -2, 0.074],
205
+ [2, -1, 1, 2, -0.073],
206
+ [2, -1, -1, -2, -0.073],
207
+ [6, -1, -1, 0, 0.072],
208
+ [2, 1, -1, 2, 0.068],
209
+ [2, 0, -5, 0, 0.067],
210
+ [2, 1, 0, 2, 0.066],
211
+ [4, 0, 1, -2, -0.065],
212
+ [2, -2, 2, 0, 0.065],
213
+ [2, -2, 0, -2, 0.065],
214
+ [3, -1, 0, 0, 0.063],
215
+ [0, 2, 2, 0, -0.062],
216
+ [5, 0, -2, 0, -0.059],
217
+ [0, 1, -2, -2, 0.050],
218
+ [4, 1, 1, 0, -0.050],
219
+ [0, 1, -4, 0, -0.048],
220
+ [0, 1, 2, 2, 0.045],
221
+ [1, 0, 1, 2, 0.044],
222
+ [3, 0, -3, 0, -0.043],
223
+ [1, 0, 3, 0, -0.042],
224
+ [1, 2, 0, 0, -0.041],
225
+ [0, 3, -1, 0, -0.038],
226
+ [1, -2, 0, 0, 0.037],
158
227
  ];
159
228
 
160
229
  /** Latitude tail: [kD, kM, kMp, kF, sin″] — 30 derived terms ≥ 0.1″
@@ -190,6 +259,41 @@ const LAT_TERMS = [
190
259
  [1, 0, -2, -1, -0.1093],
191
260
  [2, 2, -1, 1, -0.1044],
192
261
  [1, 1, 1, 1, 0.1014],
262
+ // FQ-7 DUST ROUND — lab-derived, MPP02-catalog-certified,
263
+ // JPL-arbitrated (see header note):
264
+ [3, 0, 0, -1, -0.352],
265
+ [3, 0, -1, -1, -0.305],
266
+ [4, -1, -2, 1, 0.214],
267
+ [3, 0, -1, 1, -0.206],
268
+ [0, 2, -1, 1, -0.094],
269
+ [6, 0, -1, -1, 0.094],
270
+ [0, 0, 4, -1, 0.091],
271
+ [2, -1, 0, -3, 0.087],
272
+ [6, 0, -2, -1, 0.081],
273
+ [1, 0, -2, 1, -0.078],
274
+ [0, 1, -3, -1, -0.075],
275
+ [2, 1, -2, -1, 0.073],
276
+ [2, -2, 1, -1, 0.069],
277
+ [2, 0, -2, 3, -0.065],
278
+ [1, 0, 2, 1, -0.064],
279
+ [2, -1, -2, 1, -0.064],
280
+ [2, 1, 2, -1, -0.063],
281
+ [4, 0, 0, -3, 0.062],
282
+ [0, 1, 3, 1, -0.062],
283
+ [6, 0, -2, 1, 0.060],
284
+ [2, -2, 1, 1, 0.059],
285
+ [2, 1, 0, -3, -0.059],
286
+ [4, -1, 1, -1, 0.057],
287
+ [0, 2, 0, 1, -0.055],
288
+ [0, 2, 1, 1, -0.054],
289
+ [2, -1, -3, -1, 0.054],
290
+ [4, -1, -2, -1, 0.052],
291
+ [4, 1, -1, 1, -0.051],
292
+ [1, 1, -1, 1, -0.051],
293
+ [2, 1, -2, 1, 0.049],
294
+ [3, 0, -2, 1, -0.048],
295
+ [4, 0, 2, -1, 0.048],
296
+ [6, 0, -1, 1, 0.042],
193
297
  ];
194
298
 
195
299
  /** Planetary mean-longitude polynomials, degrees per Julian century TT