@essrt/physics 23.0.0 → 23.2.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 +7 -2
- package/src/constants/generated.d.ts +4 -3
- package/src/constants/generated.js +5 -4
- package/src/constants/units.cjs +20 -0
- package/src/deltat/deep-time-chain.js +457 -0
- package/src/deltat/deep-time.cjs +42 -13
- package/src/deltat/moon-distance-artifact.cjs +6 -3
- package/src/earth/deep-orbital-history.cjs +44 -15
- package/src/earth/mass-chain.cjs +95 -0
- package/src/earth/mean-obliquity-history.cjs +94 -0
- package/src/earth/precession-composed.cjs +49 -3
- package/src/index.js +17 -0
- package/src/layer0/index.js +20 -6
- package/src/math/angles.cjs +38 -0
- package/src/model.js +76 -227
- package/src/moon/arguments.cjs +5 -31
- package/src/planets/chain-artifact.js +2 -2
- package/src/time/calendar.cjs +165 -0
- package/types/constants/generated.d.ts +4 -3
- package/types/constants/units.d.cts +8 -0
- package/types/deltat/deep-time-chain.d.ts +266 -0
- package/types/deltat/deep-time.d.cts +14 -0
- package/types/deltat/moon-distance-artifact.d.cts +3 -0
- package/types/earth/deep-orbital-history.d.cts +5 -3
- package/types/earth/mass-chain.d.cts +78 -0
- package/types/earth/mean-obliquity-history.d.cts +32 -0
- package/types/earth/precession-composed.d.cts +11 -1
- package/types/index.d.ts +6 -0
- package/types/layer0/index.d.ts +3 -2
- package/types/math/angles.d.cts +18 -0
- package/types/model.d.ts +21 -3
- package/types/moon/arguments.d.cts +2 -6
- package/types/time/calendar.d.cts +78 -0
package/src/deltat/deep-time.cjs
CHANGED
|
@@ -81,6 +81,10 @@ const { createComposedPrecession } = require('../earth/precession-composed.cjs')
|
|
|
81
81
|
* OPTIONAL analytic slope of the distance history (metres per Ma, positive
|
|
82
82
|
* into the past means a growing a... sign as da/dt_Ma); absent → a central
|
|
83
83
|
* difference on moonDistanceMetresAtAge (the LOD-rate decomposition's tidal term).
|
|
84
|
+
* @property {(tMa: number) => number|null} [meanObliquityCosRatioAtAge] -
|
|
85
|
+
* OPTIONAL cos ε̄(t)/cos ε̄(0) of the cited mean obliquity (earth/mean-
|
|
86
|
+
* obliquity-history) — the factor the precession RATE of date carries on the
|
|
87
|
+
* constant (plan 12 §8 option (a)); absent → 1, the constant alone, bit-identical.
|
|
84
88
|
*/
|
|
85
89
|
|
|
86
90
|
/** @param {DeepTimeLodDeps} deps */
|
|
@@ -126,13 +130,13 @@ function createDeepTimeLod(deps) {
|
|
|
126
130
|
// year with the model's ΔT memo). Same operations, same inputs — every
|
|
127
131
|
// value bit-identical (11,958-value sweep, 0 differences).
|
|
128
132
|
|
|
129
|
-
// The composed lunisolar precession
|
|
130
|
-
//
|
|
131
|
-
//
|
|
132
|
-
//
|
|
133
|
-
//
|
|
134
|
-
//
|
|
135
|
-
//
|
|
133
|
+
// The composed lunisolar precession (plan 06 D6 → Phase 3 → S5; plan 12 §8):
|
|
134
|
+
// the CONSTANT's scaling [ω(t)/ω₀]·p₀·[f_S + (1 − f_S)(a₀/a_M(t))³] and the
|
|
135
|
+
// RATE of date, that × cos ε̄(t)/cos ε̄(0) on the cited mean obliquity; p₀ the
|
|
136
|
+
// model's J2000 rate 1,296,000/axial0 (the IAU 2006 general precession since
|
|
137
|
+
// plan 09). ONE formula home: earth/precession-composed, built here on this
|
|
138
|
+
// factory's own LOD, recession and obliquity histories; the anchor resolves
|
|
139
|
+
// lazily on the first rate use.
|
|
136
140
|
const composed = createComposedPrecession({
|
|
137
141
|
p0ArcsecPerYr: () => 1296000 / deps.precessionPeriodJ2000YearsFn(),
|
|
138
142
|
solarShare: K.precessionSolarShareJ2000,
|
|
@@ -141,23 +145,44 @@ function createDeepTimeLod(deps) {
|
|
|
141
145
|
moonDistanceMetresAtAge: deps.moonDistanceMetresAtAge,
|
|
142
146
|
moonDistanceJ2000Metres: K.aMoonNowMetres,
|
|
143
147
|
yearToTMa: /** @param {number} year */ (year) => (2000 - year) / 1e6,
|
|
148
|
+
meanObliquityCosRatioAtAge: deps.meanObliquityCosRatioAtAge,
|
|
144
149
|
});
|
|
145
150
|
|
|
146
151
|
|
|
147
|
-
/**
|
|
148
|
-
* (a₀/a_M)³]
|
|
152
|
+
/** THE PRECESSION RATE OF DATE ψ̇(t), ″/yr — the constant's scaling
|
|
153
|
+
* p₀·[ω/ω₀]·[f_S + (1 − f_S)(a₀/a_M)³] × cos ε̄(t)/cos ε̄(0), ε̄ the cited mean
|
|
154
|
+
* obliquity (plan 12 §8 option (a); the chain held cos ε̄ at J2000 before —
|
|
155
|
+
* 2.5 % of rate at 2.46 Ga, 2e-7 at 10 kyr). p₀ the J2000 anchor (S5).
|
|
149
156
|
* @param {number} t_Ma @returns {number|null} */
|
|
150
157
|
function lunisolarPrecessionRateArcsecPerYrAtAge(t_Ma) {
|
|
151
158
|
return composed.composedRateArcsecPerYrAtAge(t_Ma);
|
|
152
159
|
}
|
|
153
160
|
|
|
154
|
-
/** The mean lunisolar precession period T_p(t), years — 1,296,000/ψ̇(t)
|
|
155
|
-
* 25,771.
|
|
161
|
+
/** The mean lunisolar precession period T_p(t), years — 1,296,000/ψ̇(t) on
|
|
162
|
+
* the rate of date; 25,771.6 at J2000 (the model's one J2000 precession
|
|
163
|
+
* reading, S5). THE published deep-time clock.
|
|
156
164
|
* @param {number} t_Ma @returns {number|null} */
|
|
157
165
|
function lunisolarPrecessionPeriodYearsAtAge(t_Ma) {
|
|
158
166
|
return composed.composedPeriodYearsAtAge(t_Ma);
|
|
159
167
|
}
|
|
160
168
|
|
|
169
|
+
/** THE PRECESSION CONSTANT OF DATE as a rate on the J2000 obliquity, ″/yr —
|
|
170
|
+
* the spin and torque scaling alone, α(t)·cos ε̄₀. The hybrid obliquity
|
|
171
|
+
* integration takes this one: its own ŝ·n̂ carries the cosine.
|
|
172
|
+
* @param {number} t_Ma @returns {number|null} */
|
|
173
|
+
function lunisolarTorqueRateArcsecPerYrAtAge(t_Ma) {
|
|
174
|
+
return composed.torqueRateArcsecPerYrAtAge(t_Ma);
|
|
175
|
+
}
|
|
176
|
+
/** 1,296,000/the torque rate, years. @param {number} t_Ma @returns {number|null} */
|
|
177
|
+
function lunisolarTorquePeriodYearsAtAge(t_Ma) {
|
|
178
|
+
return composed.torquePeriodYearsAtAge(t_Ma);
|
|
179
|
+
}
|
|
180
|
+
/** cos ε̄(t)/cos ε̄(0) — the rate's obliquity factor (1 at J2000; 1 when no
|
|
181
|
+
* history is injected). @param {number} t_Ma @returns {number|null} */
|
|
182
|
+
function precessionObliquityFactorAtAge(t_Ma) {
|
|
183
|
+
return composed.obliquityFactorAtAge(t_Ma);
|
|
184
|
+
}
|
|
185
|
+
|
|
161
186
|
/** Sidereal year seconds (Kepler under linear mass loss, dT/T = −2 dM/M).
|
|
162
187
|
* @param {number} t_Ma @returns {number} */
|
|
163
188
|
function siderealYearSecondsAtAge(t_Ma) {
|
|
@@ -176,7 +201,8 @@ function createDeepTimeLod(deps) {
|
|
|
176
201
|
|
|
177
202
|
/** Tropical year of date, seconds — the sidereal year less the equinox's
|
|
178
203
|
* own motion over one year: one turn per the composed lunisolar precession
|
|
179
|
-
* period T_p(t), 1/T_trop = 1/T_sid + ψ̇(t)/(1,296,000″ · Julian-year s)
|
|
204
|
+
* period T_p(t), 1/T_trop = 1/T_sid + ψ̇(t)/(1,296,000″ · Julian-year s),
|
|
205
|
+
* ψ̇(t) the RATE of date (with the cited mean obliquity's cosine, plan 12 §8).
|
|
180
206
|
* Plan 09 step 5d: it was the unit's calendar convention sid·(1 − 13/H(t))
|
|
181
207
|
* — plan 06 D2 had kept it as a named device — 0.086 % slow on the equinox
|
|
182
208
|
* term (1.0 s of year at J2000), and the deep JD↔year calendar integrates
|
|
@@ -191,7 +217,8 @@ function createDeepTimeLod(deps) {
|
|
|
191
217
|
const sidSec = siderealYearSecondsAtAge(t_Ma);
|
|
192
218
|
const term = composed.torqueTermAtAge(t_Ma);
|
|
193
219
|
const p0 = composed.p0ArcsecPerYr;
|
|
194
|
-
const
|
|
220
|
+
const f = composed.obliquityFactorAtAge(t_Ma);
|
|
221
|
+
const rate = (LOD_s === null || !(LOD_s > 0) || term === null || f === null) ? p0 : (K.lodNowH13Seconds / LOD_s) * p0 * term * f;
|
|
195
222
|
return 1 / (1 / sidSec + rate / (1296000 * 365.25 * 86400));
|
|
196
223
|
}
|
|
197
224
|
|
|
@@ -360,6 +387,8 @@ function createDeepTimeLod(deps) {
|
|
|
360
387
|
return {
|
|
361
388
|
lodSecondsAtAge, lodSecondsAtAgeWithAlpha, lodHoursAtAge,
|
|
362
389
|
lunisolarPrecessionRateArcsecPerYrAtAge, lunisolarPrecessionPeriodYearsAtAge,
|
|
390
|
+
// the constant's scaling alone (the hybrid's integrand) and the rate's obliquity factor (plan 12 §8)
|
|
391
|
+
lunisolarTorqueRateArcsecPerYrAtAge, lunisolarTorquePeriodYearsAtAge, precessionObliquityFactorAtAge,
|
|
363
392
|
// the composition's terms (plan 06 Phase 3 S3, the lunisolar surface): (a₀/a_M)³ and f_S + (1 − f_S)(a₀/a_M)³
|
|
364
393
|
lunarTorqueFactorAtAge: composed.lunarTorqueFactorAtAge,
|
|
365
394
|
precessionTorqueTermAtAge: composed.torqueTermAtAge,
|