@essrt/physics 17.0.0 → 18.0.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 +1 -1
- package/src/model.js +26 -7
- package/types/model.d.ts +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@essrt/physics",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "18.0.0",
|
|
4
4
|
"description": "ESSRT (Expanding Solar System Resonance Theory) physics core — 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": "v21.0",
|
package/src/model.js
CHANGED
|
@@ -646,11 +646,30 @@ export function assembleModel(C, F, laws = {}, secularSeriesArtifact = /** @type
|
|
|
646
646
|
/** @param {number} year @returns {number} */
|
|
647
647
|
const tropicalYearDirectDays = (year) => evalYearFourier(year, tropicalYearDaysBase(year), F.TROPICAL_YEAR_HARMONICS);
|
|
648
648
|
|
|
649
|
-
/**
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
649
|
+
/** Layer-4 solar day of date in SI seconds — LOD_real, the shipped
|
|
650
|
+
* observable (the tweakpane Solar Day row, the registry's lodRealPhysical,
|
|
651
|
+
* the Framework Verification panel's day): the kinematic day of date + the
|
|
652
|
+
* ecliptic missing-motion term on the nodal period + the calibrated ΔT
|
|
653
|
+
* cycle stack incl. the core-mantle swing. Twin of tools/lib
|
|
654
|
+
* computeLodRealSecondsAtEpoch and the browser's _vfpSolarDaySecondsOfDate
|
|
655
|
+
* (86,400.001780 s at 2000). @param {number} year @returns {number} */
|
|
656
|
+
const lodRealSeconds = (year) =>
|
|
657
|
+
dayLengthSeconds(year)
|
|
658
|
+
+ (deepLod.eclipticLodCorrectionSecondsAtAge(yearToTMa(year)) ?? 0)
|
|
659
|
+
+ dtCycleLodCorrectionSum(year);
|
|
660
|
+
/** Mean sidereal day of date in SI seconds — on LOD_real (plan 08 storyline
|
|
661
|
+
* sweep, 2026-10-09: the published day bases are the SI day of exactly
|
|
662
|
+
* 86,400 s, the IAU constants, and LOD_real; this rode the KINEMATIC day
|
|
663
|
+
* before, 1.7 ms below the simulator's readout at J2000). One rotation
|
|
664
|
+
* more against the equinox than there are solar days in a year.
|
|
665
|
+
* @param {number} year @returns {number} */
|
|
666
|
+
const siderealDaySeconds = (year) => {
|
|
667
|
+
const Y = tropicalYearDays(year);
|
|
668
|
+
return (lodRealSeconds(year) * Y) / (Y + 1);
|
|
669
|
+
};
|
|
670
|
+
/** Mean stellar day of date in SI seconds — the sidereal day plus the
|
|
671
|
+
* equinox's daily regression projected onto the equator (on LOD_real, like
|
|
672
|
+
* the sidereal day). @param {number} year @returns {number} */
|
|
654
673
|
const stellarDaySeconds = (year) => {
|
|
655
674
|
const tMa = yearToTMa(year);
|
|
656
675
|
// S5 (plan 06): one equinox turn per T_p(t) — the composed lunisolar
|
|
@@ -658,13 +677,12 @@ export function assembleModel(C, F, laws = {}, secularSeriesArtifact = /** @type
|
|
|
658
677
|
// unit's counter H(t)/13 (0.086 % slow; 7 µs on the 8.37 ms offset).
|
|
659
678
|
const TpRaw = deepLod.lunisolarPrecessionPeriodYearsAtAge(tMa);
|
|
660
679
|
const Tp = TpRaw === null ? certifiedAxialPrecessionJ2000Years() : TpRaw;
|
|
661
|
-
const syS = solarYearSeconds(year);
|
|
662
680
|
const syD = tropicalYearDays(year);
|
|
663
681
|
const sidDay = siderealDaySeconds(year);
|
|
664
682
|
// Layer A (plan 06): the RA projection reads the published ε (the one-source
|
|
665
683
|
// hybrid), not the K comb — the browser's _sceneEpsTargetDeg twin; 1e-8 s.
|
|
666
684
|
const raProjection = Math.cos((oneSourceM.epsAt(year) * Math.PI) / 180);
|
|
667
|
-
return (
|
|
685
|
+
return (sidDay / Tp / (syD + 1)) * raProjection + sidDay;
|
|
668
686
|
};
|
|
669
687
|
/** @param {number} year @returns {number} */
|
|
670
688
|
const measuredSolarDaySeconds = (year) => dayLengthSeconds(year) + raDayOffsetMs(year) / 1000;
|
|
@@ -1600,6 +1618,7 @@ export function assembleModel(C, F, laws = {}, secularSeriesArtifact = /** @type
|
|
|
1600
1618
|
siderealYearDays,
|
|
1601
1619
|
anomalisticYearDays,
|
|
1602
1620
|
dayLengthSeconds,
|
|
1621
|
+
lodRealSeconds,
|
|
1603
1622
|
siderealDaySeconds,
|
|
1604
1623
|
stellarDaySeconds,
|
|
1605
1624
|
measuredSolarDaySeconds,
|
package/types/model.d.ts
CHANGED
|
@@ -86,6 +86,7 @@ export function assembleModel(C: Readonly<Record<string, any>>, F: Readonly<Reco
|
|
|
86
86
|
siderealYearDays: (year: number) => number;
|
|
87
87
|
anomalisticYearDays: (year: number) => number;
|
|
88
88
|
dayLengthSeconds: (year: number) => number;
|
|
89
|
+
lodRealSeconds: (year: number) => number;
|
|
89
90
|
siderealDaySeconds: (year: number) => number;
|
|
90
91
|
stellarDaySeconds: (year: number) => number;
|
|
91
92
|
measuredSolarDaySeconds: (year: number) => number;
|