@essrt/physics 1.15.0 → 1.17.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.
|
|
3
|
+
"version": "1.17.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,8 +764,8 @@ export const REFERENCE_DATA = Object.freeze({
|
|
|
764
764
|
"sunModelTrueErrorDeg": 0.003,
|
|
765
765
|
"sunTropicalYearDiffSeconds": 0.1,
|
|
766
766
|
"sunSiderealYearDiffSeconds": 0.02,
|
|
767
|
-
"frameworkSunVsJplRmsArcsec": 0.
|
|
768
|
-
"meeusCh25SunVsJplRmsArcsec": 1.
|
|
767
|
+
"frameworkSunVsJplRmsArcsec": 0.8,
|
|
768
|
+
"meeusCh25SunVsJplRmsArcsec": 1.22,
|
|
769
769
|
"moonSeriesLonVsJplRmsArcsec": 2.84,
|
|
770
770
|
"moonSeriesLatVsJplRmsArcsec": 0.35,
|
|
771
771
|
"mercuryNewtonianArcsecCy": 532,
|
|
@@ -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)
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
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 };
|
package/src/model.js
CHANGED
|
@@ -860,11 +860,28 @@ export function assembleModel(C, F) {
|
|
|
860
860
|
// D2 completion table is unchanged (residual 2lE re-fit ≈ 0.1″ — noise).
|
|
861
861
|
const sunL0Deg = C.earthOrbital.sunMeanLongitudeJ2000_deg;
|
|
862
862
|
const sunTropicalRateDegPerCy = 360 * julianCenturyDays / meanSolarYearDays;
|
|
863
|
+
// FQ-7-Sun option C-small — ONE eccentricity law for Sun and Moon in the
|
|
864
|
+
// eclipse chain. Eccentricity is frame-invariant (e = |z|, z = e·e^{iϖ}),
|
|
865
|
+
// so it may carry only FIXED-FRAME lattice content: the H/3 line the Moon's
|
|
866
|
+
// E-factor already rides (moon/ecc-channel.cjs). H/16 is the OF-DATE
|
|
867
|
+
// perihelion period (13 + 3 = 16: the H/3 apsidal rotation seen from the
|
|
868
|
+
// H/13 equinox) — it belongs to ϖ_of-date, not to e. The previous form
|
|
869
|
+
// added the H/16 law's own slope (−0.84e-5/cy) on top of the H/3 line,
|
|
870
|
+
// and that slope WAS the measured Sun-side ė tension (annual channel
|
|
871
|
+
// T·sinM −3.7″/cy; JPL sides with the H/3 line: fq7s-ecc-consistency.mjs).
|
|
872
|
+
// Anchor: the H/16 law's J2000 value (the observed e, anchored by design),
|
|
873
|
+
// evaluated once — an explicit law change, not a hidden freeze; the
|
|
874
|
+
// cardinal-point path keeps the H/16 law (eccentricityAt) unchanged.
|
|
875
|
+
// Measured at the swap: JPL Sun 2.123 → 1.487″ (1900–2100), registry
|
|
876
|
+
// window 0.93 → 0.80″, syzygy fleet 3.756 → 3.719″, T·sinM −3.65 → −0.19″/cy,
|
|
877
|
+
// curvature term unchanged in size; the H/16 term at the corpus epochs
|
|
878
|
+
// detrends to 0.174 min — below the ancient corpus's discrimination.
|
|
879
|
+
const sunEccentricityJ2000 = eccentricityAt(2000);
|
|
863
880
|
/** @param {number} year @returns {number} */
|
|
864
881
|
const sunEccentricityAt = (year) => {
|
|
865
882
|
const cos3 = -Math.cos(phaseRadians(balancedYear, year, 3));
|
|
866
883
|
const cos3J2000 = -Math.cos(phaseRadians(balancedYear, 2000, 3));
|
|
867
|
-
return
|
|
884
|
+
return sunEccentricityJ2000 + (eccentricityBase / 2) * (cos3 - cos3J2000);
|
|
868
885
|
};
|
|
869
886
|
const sunMeanLongitudeDegAt = (() => {
|
|
870
887
|
// SW PHASE B — the CLOSED FORM on the integrated lattice phase
|