@essrt/physics 1.16.0 → 2.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 +2 -2
- package/src/cardinal/index.cjs +7 -6
- package/src/constants/coefficients.js +20 -20
- package/src/constants/generated.d.ts +2 -2
- package/src/constants/generated.js +18 -18
- package/src/eclipse/sun-planetary-completion.cjs +72 -68
- package/src/model.js +54 -25
- package/src/moon/ecc-channel.cjs +37 -7
- package/src/planets/predict.cjs +1 -1
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@essrt/physics",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.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
|
-
"modelVersion": "
|
|
6
|
+
"modelVersion": "v12.0",
|
|
7
7
|
"_note": "The model identity this package version ships (IP-unified-architecture \u00a710: package semver tracks the API axis; the model version + CONSTANTS_HASH/COEFFICIENTS_HASH in src/constants/ carry the scientific identity). The version-pinning gate enforces this pairing against public/input/model-version.json."
|
|
8
8
|
},
|
|
9
9
|
"type": "module",
|
package/src/cardinal/index.cjs
CHANGED
|
@@ -60,8 +60,6 @@ const DRIFT_SIMPSON_N_MIN = 64;
|
|
|
60
60
|
* balancedYear: number,
|
|
61
61
|
* meanSolarYearDays: number,
|
|
62
62
|
* hJ2000: number,
|
|
63
|
-
* eccentricityBase: number,
|
|
64
|
-
* eccentricityAmplitude: number,
|
|
65
63
|
* tiltMeanDeg: number,
|
|
66
64
|
* raAngleDeg: number,
|
|
67
65
|
* inclAmplitudeDeg: number,
|
|
@@ -72,6 +70,7 @@ const DRIFT_SIMPSON_N_MIN = 64;
|
|
|
72
70
|
* meanHAtAgeMa: (tMa: number) => (number | null),
|
|
73
71
|
* meanYearRealLodDays: (tMa: number) => (number | null),
|
|
74
72
|
* eccentricityAt: (year: number) => number,
|
|
73
|
+
* eccentricityRateAt: (year: number) => number,
|
|
75
74
|
* },
|
|
76
75
|
* }} deps
|
|
77
76
|
*/
|
|
@@ -86,8 +85,6 @@ function createCardinalModel({ isDeepTime, constants, fns }) {
|
|
|
86
85
|
balancedYear,
|
|
87
86
|
meanSolarYearDays,
|
|
88
87
|
hJ2000,
|
|
89
|
-
eccentricityBase,
|
|
90
|
-
eccentricityAmplitude,
|
|
91
88
|
tiltMeanDeg, // for RA
|
|
92
89
|
raAngleDeg,
|
|
93
90
|
inclAmplitudeDeg,
|
|
@@ -97,7 +94,8 @@ function createCardinalModel({ isDeepTime, constants, fns }) {
|
|
|
97
94
|
analyticTropicalDays, // (year) => SI days | null — the drift integrand base
|
|
98
95
|
meanHAtAgeMa, // (t_Ma) => H | null — the derivative's dc/dY
|
|
99
96
|
meanYearRealLodDays, // (t_Ma) => days | null — real-LOD drift convention
|
|
100
|
-
eccentricityAt, // (year) => e(t)
|
|
97
|
+
eccentricityAt, // (year) => e(t) — the model's ONE eccentricity law (H/3 vector sum, plan IP-eccentricity-unification)
|
|
98
|
+
eccentricityRateAt, // (year) => de/dyear of the same law — the braid's EoC derivative rides it
|
|
101
99
|
} = fns;
|
|
102
100
|
|
|
103
101
|
/** @param {number} year */
|
|
@@ -272,7 +270,10 @@ function createCardinalModel({ isDeepTime, constants, fns }) {
|
|
|
272
270
|
const th16 = 2 * Math.PI * 16 * cY;
|
|
273
271
|
const thp = 2 * Math.PI * 16 * dcdY;
|
|
274
272
|
const e = eccentricityAt(year);
|
|
275
|
-
|
|
273
|
+
// de/dyear from the one law (formerly the H/16 law-of-cosines derivative).
|
|
274
|
+
// The braid's own phase θ16 stays: it is the perihelion-OF-DATE phase the
|
|
275
|
+
// equation of centre is seen through — an H/16 quantity by nature.
|
|
276
|
+
const de = eccentricityRateAt(year);
|
|
276
277
|
for (const t of ecc) {
|
|
277
278
|
const n = t.order, nth = n * th16;
|
|
278
279
|
const eN = Math.pow(e, n), eN1 = Math.pow(e, n - 1);
|