@interstellar-tools/equations 1.2.0 → 1.4.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/dist/categories/entry/ballistic-coefficient.d.ts +44 -0
- package/dist/categories/entry/ballistic-coefficient.d.ts.map +1 -0
- package/dist/categories/entry/ballistic-coefficient.js +54 -0
- package/dist/categories/entry/ballistic-coefficient.js.map +1 -0
- package/dist/categories/entry/ballistic-entry-speed.d.ts +52 -0
- package/dist/categories/entry/ballistic-entry-speed.d.ts.map +1 -0
- package/dist/categories/entry/ballistic-entry-speed.js +71 -0
- package/dist/categories/entry/ballistic-entry-speed.js.map +1 -0
- package/dist/categories/entry/ballistic-peak-deceleration-altitude.d.ts +47 -0
- package/dist/categories/entry/ballistic-peak-deceleration-altitude.d.ts.map +1 -0
- package/dist/categories/entry/ballistic-peak-deceleration-altitude.js +62 -0
- package/dist/categories/entry/ballistic-peak-deceleration-altitude.js.map +1 -0
- package/dist/categories/entry/ballistic-peak-deceleration.d.ts +63 -0
- package/dist/categories/entry/ballistic-peak-deceleration.d.ts.map +1 -0
- package/dist/categories/entry/ballistic-peak-deceleration.js +76 -0
- package/dist/categories/entry/ballistic-peak-deceleration.js.map +1 -0
- package/dist/categories/entry/stagnation-heat-flux.d.ts +46 -0
- package/dist/categories/entry/stagnation-heat-flux.d.ts.map +1 -0
- package/dist/categories/entry/stagnation-heat-flux.js +57 -0
- package/dist/categories/entry/stagnation-heat-flux.js.map +1 -0
- package/dist/categories/entry/terminal-velocity.d.ts +48 -0
- package/dist/categories/entry/terminal-velocity.d.ts.map +1 -0
- package/dist/categories/entry/terminal-velocity.js +60 -0
- package/dist/categories/entry/terminal-velocity.js.map +1 -0
- package/dist/categories/entry/validate.d.ts +7 -0
- package/dist/categories/entry/validate.d.ts.map +1 -0
- package/dist/categories/entry/validate.js +20 -0
- package/dist/categories/entry/validate.js.map +1 -0
- package/dist/categories/manoeuvres/cw-two-impulse-transfer.d.ts +58 -0
- package/dist/categories/manoeuvres/cw-two-impulse-transfer.d.ts.map +1 -0
- package/dist/categories/manoeuvres/cw-two-impulse-transfer.js +104 -0
- package/dist/categories/manoeuvres/cw-two-impulse-transfer.js.map +1 -0
- package/dist/categories/manoeuvres/phasing-wait-time.d.ts +55 -0
- package/dist/categories/manoeuvres/phasing-wait-time.d.ts.map +1 -0
- package/dist/categories/manoeuvres/phasing-wait-time.js +77 -0
- package/dist/categories/manoeuvres/phasing-wait-time.js.map +1 -0
- package/dist/categories/orbits/cw-propagate.d.ts +48 -0
- package/dist/categories/orbits/cw-propagate.d.ts.map +1 -0
- package/dist/categories/orbits/cw-propagate.js +68 -0
- package/dist/categories/orbits/cw-propagate.js.map +1 -0
- package/dist/categories/orbits/cw-state-transition.d.ts +65 -0
- package/dist/categories/orbits/cw-state-transition.d.ts.map +1 -0
- package/dist/categories/orbits/cw-state-transition.js +83 -0
- package/dist/categories/orbits/cw-state-transition.js.map +1 -0
- package/dist/categories/orbits/synodic-period.d.ts +59 -0
- package/dist/categories/orbits/synodic-period.d.ts.map +1 -0
- package/dist/categories/orbits/synodic-period.js +72 -0
- package/dist/categories/orbits/synodic-period.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { Matrix3x3Type } from '@interstellar-tools/types';
|
|
2
|
+
/**
|
|
3
|
+
* The Clohessy–Wiltshire state transition matrix $ \Phi(t) $, split into its four 3×3 blocks:
|
|
4
|
+
* $ \mathbf r(t) = \Phi_{rr}\mathbf r_0 + \Phi_{rv}\mathbf v_0 $ and $ \mathbf v(t) = \Phi_{vr}\mathbf r_0 + \Phi_{vv}\mathbf v_0 $.
|
|
5
|
+
*
|
|
6
|
+
* @group Orbits
|
|
7
|
+
*/
|
|
8
|
+
export interface CwStateTransitionInterface {
|
|
9
|
+
/** Position from initial position. */
|
|
10
|
+
rr: Matrix3x3Type;
|
|
11
|
+
/** Position from initial velocity (s). */
|
|
12
|
+
rv: Matrix3x3Type;
|
|
13
|
+
/** Velocity from initial position (1/s). */
|
|
14
|
+
vr: Matrix3x3Type;
|
|
15
|
+
/** Velocity from initial velocity. */
|
|
16
|
+
vv: Matrix3x3Type;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Compute the **Clohessy–Wiltshire state transition matrix**: the closed-form solution of the CW / Hill equations.
|
|
20
|
+
*
|
|
21
|
+
* With $ s = \sin nt $ and $ c = \cos nt $, in the LVLH frame of {@link cwHillDerivatives}
|
|
22
|
+
* ($ x $ radial, $ y $ along-track, $ z $ cross-track):
|
|
23
|
+
*
|
|
24
|
+
* $$
|
|
25
|
+
* \Phi_{rr} = \begin{bmatrix} 4 - 3c & 0 & 0 \\ 6(s - nt) & 1 & 0 \\ 0 & 0 & c \end{bmatrix}, \quad
|
|
26
|
+
* \Phi_{rv} = \frac{1}{n}\begin{bmatrix} s & 2(1 - c) & 0 \\ -2(1 - c) & 4s - 3nt & 0 \\ 0 & 0 & s \end{bmatrix}
|
|
27
|
+
* $$
|
|
28
|
+
*
|
|
29
|
+
* $$
|
|
30
|
+
* \Phi_{vr} = \begin{bmatrix} 3ns & 0 & 0 \\ 6n(c - 1) & 0 & 0 \\ 0 & 0 & -ns \end{bmatrix}, \quad
|
|
31
|
+
* \Phi_{vv} = \begin{bmatrix} c & 2s & 0 \\ -2s & 4c - 3 & 0 \\ 0 & 0 & c \end{bmatrix}
|
|
32
|
+
* $$
|
|
33
|
+
*
|
|
34
|
+
* **Units**
|
|
35
|
+
* - Inputs: `n` in **rad/s**, `t` in **s**.
|
|
36
|
+
* - Output: dimensionless blocks, except $ \Phi_{rv} $ in **s** and $ \Phi_{vr} $ in **1/s**.
|
|
37
|
+
*
|
|
38
|
+
* ::: info Notes
|
|
39
|
+
*
|
|
40
|
+
* - Valid near a **circular** reference orbit, for separations small compared with its radius. Elliptic reference orbits need other solutions (e.g. Yamanaka–Ankersen).
|
|
41
|
+
* - The $ -3nt $ terms grow without bound: a deputy slightly lower than the chief drifts ahead every orbit.
|
|
42
|
+
* - $ \Phi(0) $ is the identity, and $ \Phi(t_1 + t_2) = \Phi(t_2)\,\Phi(t_1) $.
|
|
43
|
+
* - Negative `t` propagates backwards.
|
|
44
|
+
*
|
|
45
|
+
* :::
|
|
46
|
+
*
|
|
47
|
+
* @param n - Mean motion of the circular reference orbit $ n $ in **rad/s** (finite, > 0).
|
|
48
|
+
* @param t - Time since the initial state $ t $ in **s** (finite).
|
|
49
|
+
* @returns The four 3×3 blocks of $ \Phi(t) $.
|
|
50
|
+
* @throws {TypeError} If any input is not a finite number.
|
|
51
|
+
* @throws {RangeError} If `n <= 0`.
|
|
52
|
+
* @group Orbits
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* // ISS-like orbit: n ≈ 0.00113 rad/s, a quarter of an orbit later
|
|
57
|
+
* const { rr, rv } = cwStateTransition(0.00113, (Math.PI / 2) / 0.00113);
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @see {@link cwPropagate}
|
|
61
|
+
* @see {@link cwTwoImpulseTransfer}
|
|
62
|
+
* @see https://en.wikipedia.org/wiki/Clohessy%E2%80%93Wiltshire_equations Clohessy–Wiltshire equations
|
|
63
|
+
*/
|
|
64
|
+
export declare const cwStateTransition: (n: number, t: number) => CwStateTransitionInterface;
|
|
65
|
+
//# sourceMappingURL=cw-state-transition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cw-state-transition.d.ts","sourceRoot":"","sources":["../../../src/categories/orbits/cw-state-transition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,sCAAsC;IACtC,EAAE,EAAE,aAAa,CAAC;IAClB,0CAA0C;IAC1C,EAAE,EAAE,aAAa,CAAC;IAClB,4CAA4C;IAC5C,EAAE,EAAE,aAAa,CAAC;IAClB,sCAAsC;IACtC,EAAE,EAAE,aAAa,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,iBAAiB,GAC5B,GAAG,MAAM,EACT,GAAG,MAAM,KACR,0BAqCF,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compute the **Clohessy–Wiltshire state transition matrix**: the closed-form solution of the CW / Hill equations.
|
|
3
|
+
*
|
|
4
|
+
* With $ s = \sin nt $ and $ c = \cos nt $, in the LVLH frame of {@link cwHillDerivatives}
|
|
5
|
+
* ($ x $ radial, $ y $ along-track, $ z $ cross-track):
|
|
6
|
+
*
|
|
7
|
+
* $$
|
|
8
|
+
* \Phi_{rr} = \begin{bmatrix} 4 - 3c & 0 & 0 \\ 6(s - nt) & 1 & 0 \\ 0 & 0 & c \end{bmatrix}, \quad
|
|
9
|
+
* \Phi_{rv} = \frac{1}{n}\begin{bmatrix} s & 2(1 - c) & 0 \\ -2(1 - c) & 4s - 3nt & 0 \\ 0 & 0 & s \end{bmatrix}
|
|
10
|
+
* $$
|
|
11
|
+
*
|
|
12
|
+
* $$
|
|
13
|
+
* \Phi_{vr} = \begin{bmatrix} 3ns & 0 & 0 \\ 6n(c - 1) & 0 & 0 \\ 0 & 0 & -ns \end{bmatrix}, \quad
|
|
14
|
+
* \Phi_{vv} = \begin{bmatrix} c & 2s & 0 \\ -2s & 4c - 3 & 0 \\ 0 & 0 & c \end{bmatrix}
|
|
15
|
+
* $$
|
|
16
|
+
*
|
|
17
|
+
* **Units**
|
|
18
|
+
* - Inputs: `n` in **rad/s**, `t` in **s**.
|
|
19
|
+
* - Output: dimensionless blocks, except $ \Phi_{rv} $ in **s** and $ \Phi_{vr} $ in **1/s**.
|
|
20
|
+
*
|
|
21
|
+
* ::: info Notes
|
|
22
|
+
*
|
|
23
|
+
* - Valid near a **circular** reference orbit, for separations small compared with its radius. Elliptic reference orbits need other solutions (e.g. Yamanaka–Ankersen).
|
|
24
|
+
* - The $ -3nt $ terms grow without bound: a deputy slightly lower than the chief drifts ahead every orbit.
|
|
25
|
+
* - $ \Phi(0) $ is the identity, and $ \Phi(t_1 + t_2) = \Phi(t_2)\,\Phi(t_1) $.
|
|
26
|
+
* - Negative `t` propagates backwards.
|
|
27
|
+
*
|
|
28
|
+
* :::
|
|
29
|
+
*
|
|
30
|
+
* @param n - Mean motion of the circular reference orbit $ n $ in **rad/s** (finite, > 0).
|
|
31
|
+
* @param t - Time since the initial state $ t $ in **s** (finite).
|
|
32
|
+
* @returns The four 3×3 blocks of $ \Phi(t) $.
|
|
33
|
+
* @throws {TypeError} If any input is not a finite number.
|
|
34
|
+
* @throws {RangeError} If `n <= 0`.
|
|
35
|
+
* @group Orbits
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* // ISS-like orbit: n ≈ 0.00113 rad/s, a quarter of an orbit later
|
|
40
|
+
* const { rr, rv } = cwStateTransition(0.00113, (Math.PI / 2) / 0.00113);
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @see {@link cwPropagate}
|
|
44
|
+
* @see {@link cwTwoImpulseTransfer}
|
|
45
|
+
* @see https://en.wikipedia.org/wiki/Clohessy%E2%80%93Wiltshire_equations Clohessy–Wiltshire equations
|
|
46
|
+
*/
|
|
47
|
+
export const cwStateTransition = (n, t) => {
|
|
48
|
+
for (const [name, x] of [
|
|
49
|
+
['n', n],
|
|
50
|
+
['t', t]
|
|
51
|
+
]) {
|
|
52
|
+
if (!Number.isFinite(x))
|
|
53
|
+
throw new TypeError(`${name} must be a finite number. Received: ${x}`);
|
|
54
|
+
}
|
|
55
|
+
if (n <= 0)
|
|
56
|
+
throw new RangeError(`n must be > 0. Received: ${n}`);
|
|
57
|
+
const nt = n * t;
|
|
58
|
+
const s = Math.sin(nt);
|
|
59
|
+
const c = Math.cos(nt);
|
|
60
|
+
return {
|
|
61
|
+
rr: [
|
|
62
|
+
[4 - 3 * c, 0, 0],
|
|
63
|
+
[6 * (s - nt), 1, 0],
|
|
64
|
+
[0, 0, c]
|
|
65
|
+
],
|
|
66
|
+
rv: [
|
|
67
|
+
[s / n, (2 * (1 - c)) / n, 0],
|
|
68
|
+
[(-2 * (1 - c)) / n, (4 * s - 3 * nt) / n, 0],
|
|
69
|
+
[0, 0, s / n]
|
|
70
|
+
],
|
|
71
|
+
vr: [
|
|
72
|
+
[3 * n * s, 0, 0],
|
|
73
|
+
[6 * n * (c - 1), 0, 0],
|
|
74
|
+
[0, 0, -n * s]
|
|
75
|
+
],
|
|
76
|
+
vv: [
|
|
77
|
+
[c, 2 * s, 0],
|
|
78
|
+
[-2 * s, 4 * c - 3, 0],
|
|
79
|
+
[0, 0, c]
|
|
80
|
+
]
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=cw-state-transition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cw-state-transition.js","sourceRoot":"","sources":["../../../src/categories/orbits/cw-state-transition.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,CAAS,EACT,CAAS,EACmB,EAAE;IAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI;QACtB,CAAC,GAAG,EAAE,CAAC,CAAC;QACR,CAAC,GAAG,EAAE,CAAC,CAAC;KACA,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,uCAAuC,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;IAElE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEvB,OAAO;QACL,EAAE,EAAE;YACF,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACV;QACD,EAAE,EAAE;YACF,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;SACd;QACD,EAAE,EAAE;YACF,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACvB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SACf;QACD,EAAE,EAAE;YACF,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACV;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compute the **synodic period** of two bodies on circular orbits: the time between two alignments.
|
|
3
|
+
*
|
|
4
|
+
* $$
|
|
5
|
+
* T_\text{syn} = \frac{2\pi}{\lvert n_1 - n_2 \rvert}
|
|
6
|
+
* $$
|
|
7
|
+
*
|
|
8
|
+
* Where:
|
|
9
|
+
* - $ n_1 $, $ n_2 $ are the two mean motions (rad/s)
|
|
10
|
+
*
|
|
11
|
+
* **Units**
|
|
12
|
+
* - Inputs: `n1`, `n2` in **rad/s**.
|
|
13
|
+
* - Output: $ T_\text{syn} $ in **s**.
|
|
14
|
+
*
|
|
15
|
+
* ::: info Notes
|
|
16
|
+
*
|
|
17
|
+
* - The faster body gains $ 2\pi $ on the slower one every synodic period.
|
|
18
|
+
* - The closer the two orbits, the longer it takes: a chaser that's slightly lower gains only a little each orbit.
|
|
19
|
+
* - For planets, the same formula gives the time between launch windows, e.g. about 26 months for Earth and Mars.
|
|
20
|
+
*
|
|
21
|
+
* :::
|
|
22
|
+
*
|
|
23
|
+
* ::: practice Apollo 11, after lunar liftoff
|
|
24
|
+
*
|
|
25
|
+
* **41.8 h**
|
|
26
|
+
*
|
|
27
|
+
* _The LM in its 9.4 × 48.0 n mi orbit against the CSM in 56 × 62 n mi_
|
|
28
|
+
*
|
|
29
|
+
* The LM gained only about 16° on the CSM each orbit, so it had to lift off at the right moment: the whole rendezvous took 3 h 41 min.
|
|
30
|
+
*
|
|
31
|
+
* ```ts
|
|
32
|
+
* const nLM = meanMotion(1_790_552, 4.902800118e12);
|
|
33
|
+
* const nCSM = meanMotion(1_846_668, 4.902800118e12);
|
|
34
|
+
* synodicPeriod(nLM, nCSM) / 3600; // ≈ 41.8 h
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* :::
|
|
38
|
+
*
|
|
39
|
+
* @param n1 - Mean motion of the first body in **rad/s** (finite, > 0).
|
|
40
|
+
* @param n2 - Mean motion of the second body in **rad/s** (finite, > 0, not equal to `n1`).
|
|
41
|
+
* @returns Synodic period in **s**.
|
|
42
|
+
* @throws {TypeError} If any input is not a finite number.
|
|
43
|
+
* @throws {RangeError} If `n1 <= 0`, `n2 <= 0`, or `n1 = n2` (the bodies never realign).
|
|
44
|
+
* @group Orbits
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* // Earth and Mars, from their periods in days
|
|
49
|
+
* const day = 86_400;
|
|
50
|
+
* const t = synodicPeriod((2 * Math.PI) / (365.256 * day), (2 * Math.PI) / (686.98 * day));
|
|
51
|
+
* // t / day ≈ 780 days
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @see {@link phasingWaitTime}
|
|
55
|
+
* @see {@link meanMotion}
|
|
56
|
+
* @see https://en.wikipedia.org/wiki/Orbital_period#Synodic_period Synodic period
|
|
57
|
+
*/
|
|
58
|
+
export declare const synodicPeriod: (n1: number, n2: number) => number;
|
|
59
|
+
//# sourceMappingURL=synodic-period.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synodic-period.d.ts","sourceRoot":"","sources":["../../../src/categories/orbits/synodic-period.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,EAAE,IAAI,MAAM,KAAG,MAiBtD,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compute the **synodic period** of two bodies on circular orbits: the time between two alignments.
|
|
3
|
+
*
|
|
4
|
+
* $$
|
|
5
|
+
* T_\text{syn} = \frac{2\pi}{\lvert n_1 - n_2 \rvert}
|
|
6
|
+
* $$
|
|
7
|
+
*
|
|
8
|
+
* Where:
|
|
9
|
+
* - $ n_1 $, $ n_2 $ are the two mean motions (rad/s)
|
|
10
|
+
*
|
|
11
|
+
* **Units**
|
|
12
|
+
* - Inputs: `n1`, `n2` in **rad/s**.
|
|
13
|
+
* - Output: $ T_\text{syn} $ in **s**.
|
|
14
|
+
*
|
|
15
|
+
* ::: info Notes
|
|
16
|
+
*
|
|
17
|
+
* - The faster body gains $ 2\pi $ on the slower one every synodic period.
|
|
18
|
+
* - The closer the two orbits, the longer it takes: a chaser that's slightly lower gains only a little each orbit.
|
|
19
|
+
* - For planets, the same formula gives the time between launch windows, e.g. about 26 months for Earth and Mars.
|
|
20
|
+
*
|
|
21
|
+
* :::
|
|
22
|
+
*
|
|
23
|
+
* ::: practice Apollo 11, after lunar liftoff
|
|
24
|
+
*
|
|
25
|
+
* **41.8 h**
|
|
26
|
+
*
|
|
27
|
+
* _The LM in its 9.4 × 48.0 n mi orbit against the CSM in 56 × 62 n mi_
|
|
28
|
+
*
|
|
29
|
+
* The LM gained only about 16° on the CSM each orbit, so it had to lift off at the right moment: the whole rendezvous took 3 h 41 min.
|
|
30
|
+
*
|
|
31
|
+
* ```ts
|
|
32
|
+
* const nLM = meanMotion(1_790_552, 4.902800118e12);
|
|
33
|
+
* const nCSM = meanMotion(1_846_668, 4.902800118e12);
|
|
34
|
+
* synodicPeriod(nLM, nCSM) / 3600; // ≈ 41.8 h
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* :::
|
|
38
|
+
*
|
|
39
|
+
* @param n1 - Mean motion of the first body in **rad/s** (finite, > 0).
|
|
40
|
+
* @param n2 - Mean motion of the second body in **rad/s** (finite, > 0, not equal to `n1`).
|
|
41
|
+
* @returns Synodic period in **s**.
|
|
42
|
+
* @throws {TypeError} If any input is not a finite number.
|
|
43
|
+
* @throws {RangeError} If `n1 <= 0`, `n2 <= 0`, or `n1 = n2` (the bodies never realign).
|
|
44
|
+
* @group Orbits
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* // Earth and Mars, from their periods in days
|
|
49
|
+
* const day = 86_400;
|
|
50
|
+
* const t = synodicPeriod((2 * Math.PI) / (365.256 * day), (2 * Math.PI) / (686.98 * day));
|
|
51
|
+
* // t / day ≈ 780 days
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @see {@link phasingWaitTime}
|
|
55
|
+
* @see {@link meanMotion}
|
|
56
|
+
* @see https://en.wikipedia.org/wiki/Orbital_period#Synodic_period Synodic period
|
|
57
|
+
*/
|
|
58
|
+
export const synodicPeriod = (n1, n2) => {
|
|
59
|
+
for (const [name, x] of [
|
|
60
|
+
['n1', n1],
|
|
61
|
+
['n2', n2]
|
|
62
|
+
]) {
|
|
63
|
+
if (!Number.isFinite(x))
|
|
64
|
+
throw new TypeError(`${name} must be a finite number. Received: ${x}`);
|
|
65
|
+
if (x <= 0)
|
|
66
|
+
throw new RangeError(`${name} must be > 0. Received: ${x}`);
|
|
67
|
+
}
|
|
68
|
+
if (n1 === n2)
|
|
69
|
+
throw new RangeError(`n1 and n2 must differ: equal mean motions never realign. Received: ${n1}`);
|
|
70
|
+
return (2 * Math.PI) / Math.abs(n1 - n2);
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=synodic-period.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synodic-period.js","sourceRoot":"","sources":["../../../src/categories/orbits/synodic-period.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAU,EAAE,EAAU,EAAU,EAAE;IAC9D,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI;QACtB,CAAC,IAAI,EAAE,EAAE,CAAC;QACV,CAAC,IAAI,EAAE,EAAE,CAAC;KACF,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,uCAAuC,CAAC,EAAE,CAAC,CAAC;QAEzE,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,2BAA2B,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,EAAE,KAAK,EAAE;QACX,MAAM,IAAI,UAAU,CAClB,sEAAsE,EAAE,EAAE,CAC3E,CAAC;IAEJ,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,12 @@ export * from './categories/cartography/flattening-oblate-spheroid.js';
|
|
|
11
11
|
export * from './categories/cartography/is-on-triaxial-ellipsoid-surface.js';
|
|
12
12
|
export * from './categories/cartography/planetocentric-latitude.js';
|
|
13
13
|
export * from './categories/cartography/planetographic-latitude-oblate.js';
|
|
14
|
+
export * from './categories/entry/ballistic-coefficient.js';
|
|
15
|
+
export * from './categories/entry/ballistic-entry-speed.js';
|
|
16
|
+
export * from './categories/entry/ballistic-peak-deceleration-altitude.js';
|
|
17
|
+
export * from './categories/entry/ballistic-peak-deceleration.js';
|
|
18
|
+
export * from './categories/entry/stagnation-heat-flux.js';
|
|
19
|
+
export * from './categories/entry/terminal-velocity.js';
|
|
14
20
|
export * from './categories/helpers/apply-matrix-3.js';
|
|
15
21
|
export * from './categories/helpers/convert-distance-unit.js';
|
|
16
22
|
export * from './categories/helpers/det-3.js';
|
|
@@ -41,6 +47,8 @@ export * from './categories/orbits/atmospheric-drag-acceleration.js';
|
|
|
41
47
|
export * from './categories/orbits/characteristic-energy-c3.js';
|
|
42
48
|
export * from './categories/orbits/circular-speed.js';
|
|
43
49
|
export * from './categories/orbits/cw-hill-derivatives.js';
|
|
50
|
+
export * from './categories/orbits/cw-propagate.js';
|
|
51
|
+
export * from './categories/orbits/cw-state-transition.js';
|
|
44
52
|
export * from './categories/orbits/elements-to-state.js';
|
|
45
53
|
export * from './categories/orbits/escape-speed.js';
|
|
46
54
|
export * from './categories/orbits/flight-path-angle-from-true-anomaly.js';
|
|
@@ -62,15 +70,18 @@ export * from './categories/orbits/specific-mechanical-energy.js';
|
|
|
62
70
|
export * from './categories/orbits/sphere-of-influence-radius.js';
|
|
63
71
|
export * from './categories/orbits/state-to-elements.js';
|
|
64
72
|
export * from './categories/orbits/surface-rotation-speed.js';
|
|
73
|
+
export * from './categories/orbits/synodic-period.js';
|
|
65
74
|
export * from './categories/orbits/vis-viva-speed.js';
|
|
66
75
|
export * from './categories/manoeuvres/burn-time.js';
|
|
67
76
|
export * from './categories/manoeuvres/combine-burns-delta-v.js';
|
|
77
|
+
export * from './categories/manoeuvres/cw-two-impulse-transfer.js';
|
|
68
78
|
export * from './categories/manoeuvres/gravity-assist-turning-angle.js';
|
|
69
79
|
export * from './categories/manoeuvres/gravity-loss.js';
|
|
70
80
|
export * from './categories/manoeuvres/hohmann-transfer.js';
|
|
71
81
|
export * from './categories/manoeuvres/initial-mass-for-delta-v.js';
|
|
72
82
|
export * from './categories/manoeuvres/mass-flow-rate.js';
|
|
73
83
|
export * from './categories/manoeuvres/oberth-energy-gain.js';
|
|
84
|
+
export * from './categories/manoeuvres/phasing-wait-time.js';
|
|
74
85
|
export * from './categories/manoeuvres/plane-change-delta-v.js';
|
|
75
86
|
export * from './categories/manoeuvres/rocket-delta-v-from-isp.js';
|
|
76
87
|
export * from './categories/manoeuvres/rocket-delta-v-from-ve.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,qCAAqC,CAAC;AAEpD,cAAc,kCAAkC,CAAC;AAIjD,cAAc,8DAA8D,CAAC;AAE7E,cAAc,kEAAkE,CAAC;AAEjF,cAAc,wDAAwD,CAAC;AAEvE,cAAc,8DAA8D,CAAC;AAE7E,cAAc,qDAAqD,CAAC;AAEpE,cAAc,4DAA4D,CAAC;AAI3E,cAAc,wCAAwC,CAAC;AAEvD,cAAc,+CAA+C,CAAC;AAE9D,cAAc,+BAA+B,CAAC;AAE9C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,8BAA8B,CAAC;AAE7C,cAAc,iDAAiD,CAAC;AAEhE,cAAc,iCAAiC,CAAC;AAEhD,cAAc,+BAA+B,CAAC;AAE9C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,qCAAqC,CAAC;AAIpD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,sCAAsC,CAAC;AAErD,cAAc,kDAAkD,CAAC;AAEjE,cAAc,qDAAqD,CAAC;AAEpE,cAAc,sDAAsD,CAAC;AAErE,cAAc,gDAAgD,CAAC;AAE/D,cAAc,sDAAsD,CAAC;AAIrE,cAAc,+CAA+C,CAAC;AAE9D,cAAc,uDAAuD,CAAC;AAEtE,cAAc,gDAAgD,CAAC;AAE/D,cAAc,oDAAoD,CAAC;AAEnE,cAAc,qCAAqC,CAAC;AAIpD,cAAc,8CAA8C,CAAC;AAE7D,cAAc,uCAAuC,CAAC;AAEtD,cAAc,6CAA6C,CAAC;AAE5D,cAAc,iDAAiD,CAAC;AAIhE,cAAc,sDAAsD,CAAC;AAErE,cAAc,iDAAiD,CAAC;AAEhE,cAAc,uCAAuC,CAAC;AAEtD,cAAc,4CAA4C,CAAC;AAE3D,cAAc,0CAA0C,CAAC;AAEzD,cAAc,qCAAqC,CAAC;AAEpD,cAAc,4DAA4D,CAAC;AAE3E,cAAc,gDAAgD,CAAC;AAE/D,cAAc,mDAAmD,CAAC;AAElE,cAAc,mDAAmD,CAAC;AAElE,cAAc,kDAAkD,CAAC;AAEjE,cAAc,wDAAwD,CAAC;AAEvE,cAAc,oDAAoD,CAAC;AAEnE,cAAc,iDAAiD,CAAC;AAEhE,cAAc,sCAAsC,CAAC;AAErD,cAAc,uDAAuD,CAAC;AAEtE,cAAc,oCAAoC,CAAC;AAEnD,cAAc,4CAA4C,CAAC;AAE3D,cAAc,gDAAgD,CAAC;AAE/D,cAAc,gEAAgE,CAAC;AAE/E,cAAc,kDAAkD,CAAC;AAEjE,cAAc,mDAAmD,CAAC;AAElE,cAAc,mDAAmD,CAAC;AAElE,cAAc,0CAA0C,CAAC;AAEzD,cAAc,+CAA+C,CAAC;AAE9D,cAAc,uCAAuC,CAAC;AAItD,cAAc,sCAAsC,CAAC;AAErD,cAAc,kDAAkD,CAAC;AAEjE,cAAc,yDAAyD,CAAC;AAExE,cAAc,yCAAyC,CAAC;AAExD,cAAc,6CAA6C,CAAC;AAE5D,cAAc,qDAAqD,CAAC;AAEpE,cAAc,2CAA2C,CAAC;AAE1D,cAAc,+CAA+C,CAAC;AAE9D,cAAc,iDAAiD,CAAC;AAEhE,cAAc,oDAAoD,CAAC;AAEnE,cAAc,mDAAmD,CAAC;AAElE,cAAc,0CAA0C,CAAC;AAEzD,cAAc,6CAA6C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,qCAAqC,CAAC;AAEpD,cAAc,kCAAkC,CAAC;AAIjD,cAAc,8DAA8D,CAAC;AAE7E,cAAc,kEAAkE,CAAC;AAEjF,cAAc,wDAAwD,CAAC;AAEvE,cAAc,8DAA8D,CAAC;AAE7E,cAAc,qDAAqD,CAAC;AAEpE,cAAc,4DAA4D,CAAC;AAI3E,cAAc,6CAA6C,CAAC;AAE5D,cAAc,6CAA6C,CAAC;AAE5D,cAAc,4DAA4D,CAAC;AAE3E,cAAc,mDAAmD,CAAC;AAElE,cAAc,4CAA4C,CAAC;AAE3D,cAAc,yCAAyC,CAAC;AAIxD,cAAc,wCAAwC,CAAC;AAEvD,cAAc,+CAA+C,CAAC;AAE9D,cAAc,+BAA+B,CAAC;AAE9C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,8BAA8B,CAAC;AAE7C,cAAc,iDAAiD,CAAC;AAEhE,cAAc,iCAAiC,CAAC;AAEhD,cAAc,+BAA+B,CAAC;AAE9C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,qCAAqC,CAAC;AAIpD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,sCAAsC,CAAC;AAErD,cAAc,kDAAkD,CAAC;AAEjE,cAAc,qDAAqD,CAAC;AAEpE,cAAc,sDAAsD,CAAC;AAErE,cAAc,gDAAgD,CAAC;AAE/D,cAAc,sDAAsD,CAAC;AAIrE,cAAc,+CAA+C,CAAC;AAE9D,cAAc,uDAAuD,CAAC;AAEtE,cAAc,gDAAgD,CAAC;AAE/D,cAAc,oDAAoD,CAAC;AAEnE,cAAc,qCAAqC,CAAC;AAIpD,cAAc,8CAA8C,CAAC;AAE7D,cAAc,uCAAuC,CAAC;AAEtD,cAAc,6CAA6C,CAAC;AAE5D,cAAc,iDAAiD,CAAC;AAIhE,cAAc,sDAAsD,CAAC;AAErE,cAAc,iDAAiD,CAAC;AAEhE,cAAc,uCAAuC,CAAC;AAEtD,cAAc,4CAA4C,CAAC;AAE3D,cAAc,qCAAqC,CAAC;AAEpD,cAAc,4CAA4C,CAAC;AAE3D,cAAc,0CAA0C,CAAC;AAEzD,cAAc,qCAAqC,CAAC;AAEpD,cAAc,4DAA4D,CAAC;AAE3E,cAAc,gDAAgD,CAAC;AAE/D,cAAc,mDAAmD,CAAC;AAElE,cAAc,mDAAmD,CAAC;AAElE,cAAc,kDAAkD,CAAC;AAEjE,cAAc,wDAAwD,CAAC;AAEvE,cAAc,oDAAoD,CAAC;AAEnE,cAAc,iDAAiD,CAAC;AAEhE,cAAc,sCAAsC,CAAC;AAErD,cAAc,uDAAuD,CAAC;AAEtE,cAAc,oCAAoC,CAAC;AAEnD,cAAc,4CAA4C,CAAC;AAE3D,cAAc,gDAAgD,CAAC;AAE/D,cAAc,gEAAgE,CAAC;AAE/E,cAAc,kDAAkD,CAAC;AAEjE,cAAc,mDAAmD,CAAC;AAElE,cAAc,mDAAmD,CAAC;AAElE,cAAc,0CAA0C,CAAC;AAEzD,cAAc,+CAA+C,CAAC;AAE9D,cAAc,uCAAuC,CAAC;AAEtD,cAAc,uCAAuC,CAAC;AAItD,cAAc,sCAAsC,CAAC;AAErD,cAAc,kDAAkD,CAAC;AAEjE,cAAc,oDAAoD,CAAC;AAEnE,cAAc,yDAAyD,CAAC;AAExE,cAAc,yCAAyC,CAAC;AAExD,cAAc,6CAA6C,CAAC;AAE5D,cAAc,qDAAqD,CAAC;AAEpE,cAAc,2CAA2C,CAAC;AAE1D,cAAc,+CAA+C,CAAC;AAE9D,cAAc,8CAA8C,CAAC;AAE7D,cAAc,iDAAiD,CAAC;AAEhE,cAAc,oDAAoD,CAAC;AAEnE,cAAc,mDAAmD,CAAC;AAElE,cAAc,0CAA0C,CAAC;AAEzD,cAAc,6CAA6C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,13 @@ export * from './categories/cartography/flattening-oblate-spheroid.js';
|
|
|
13
13
|
export * from './categories/cartography/is-on-triaxial-ellipsoid-surface.js';
|
|
14
14
|
export * from './categories/cartography/planetocentric-latitude.js';
|
|
15
15
|
export * from './categories/cartography/planetographic-latitude-oblate.js';
|
|
16
|
+
// categories/entry
|
|
17
|
+
export * from './categories/entry/ballistic-coefficient.js';
|
|
18
|
+
export * from './categories/entry/ballistic-entry-speed.js';
|
|
19
|
+
export * from './categories/entry/ballistic-peak-deceleration-altitude.js';
|
|
20
|
+
export * from './categories/entry/ballistic-peak-deceleration.js';
|
|
21
|
+
export * from './categories/entry/stagnation-heat-flux.js';
|
|
22
|
+
export * from './categories/entry/terminal-velocity.js';
|
|
16
23
|
// categories/helpers
|
|
17
24
|
export * from './categories/helpers/apply-matrix-3.js';
|
|
18
25
|
export * from './categories/helpers/convert-distance-unit.js';
|
|
@@ -48,6 +55,8 @@ export * from './categories/orbits/atmospheric-drag-acceleration.js';
|
|
|
48
55
|
export * from './categories/orbits/characteristic-energy-c3.js';
|
|
49
56
|
export * from './categories/orbits/circular-speed.js';
|
|
50
57
|
export * from './categories/orbits/cw-hill-derivatives.js';
|
|
58
|
+
export * from './categories/orbits/cw-propagate.js';
|
|
59
|
+
export * from './categories/orbits/cw-state-transition.js';
|
|
51
60
|
export * from './categories/orbits/elements-to-state.js';
|
|
52
61
|
export * from './categories/orbits/escape-speed.js';
|
|
53
62
|
export * from './categories/orbits/flight-path-angle-from-true-anomaly.js';
|
|
@@ -69,16 +78,19 @@ export * from './categories/orbits/specific-mechanical-energy.js';
|
|
|
69
78
|
export * from './categories/orbits/sphere-of-influence-radius.js';
|
|
70
79
|
export * from './categories/orbits/state-to-elements.js';
|
|
71
80
|
export * from './categories/orbits/surface-rotation-speed.js';
|
|
81
|
+
export * from './categories/orbits/synodic-period.js';
|
|
72
82
|
export * from './categories/orbits/vis-viva-speed.js';
|
|
73
83
|
// categories/manoeuvres
|
|
74
84
|
export * from './categories/manoeuvres/burn-time.js';
|
|
75
85
|
export * from './categories/manoeuvres/combine-burns-delta-v.js';
|
|
86
|
+
export * from './categories/manoeuvres/cw-two-impulse-transfer.js';
|
|
76
87
|
export * from './categories/manoeuvres/gravity-assist-turning-angle.js';
|
|
77
88
|
export * from './categories/manoeuvres/gravity-loss.js';
|
|
78
89
|
export * from './categories/manoeuvres/hohmann-transfer.js';
|
|
79
90
|
export * from './categories/manoeuvres/initial-mass-for-delta-v.js';
|
|
80
91
|
export * from './categories/manoeuvres/mass-flow-rate.js';
|
|
81
92
|
export * from './categories/manoeuvres/oberth-energy-gain.js';
|
|
93
|
+
export * from './categories/manoeuvres/phasing-wait-time.js';
|
|
82
94
|
export * from './categories/manoeuvres/plane-change-delta-v.js';
|
|
83
95
|
export * from './categories/manoeuvres/rocket-delta-v-from-isp.js';
|
|
84
96
|
export * from './categories/manoeuvres/rocket-delta-v-from-ve.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mBAAmB;AACnB,cAAc,qCAAqC,CAAC;AAEpD,cAAc,kCAAkC,CAAC;AAEjD,yBAAyB;AAEzB,cAAc,8DAA8D,CAAC;AAE7E,cAAc,kEAAkE,CAAC;AAEjF,cAAc,wDAAwD,CAAC;AAEvE,cAAc,8DAA8D,CAAC;AAE7E,cAAc,qDAAqD,CAAC;AAEpE,cAAc,4DAA4D,CAAC;AAE3E,qBAAqB;AAErB,cAAc,wCAAwC,CAAC;AAEvD,cAAc,+CAA+C,CAAC;AAE9D,cAAc,+BAA+B,CAAC;AAE9C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,8BAA8B,CAAC;AAE7C,cAAc,iDAAiD,CAAC;AAEhE,cAAc,iCAAiC,CAAC;AAEhD,cAAc,+BAA+B,CAAC;AAE9C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,qCAAqC,CAAC;AAEpD,uBAAuB;AAEvB,cAAc,gDAAgD,CAAC;AAE/D,cAAc,sCAAsC,CAAC;AAErD,cAAc,kDAAkD,CAAC;AAEjE,cAAc,qDAAqD,CAAC;AAEpE,cAAc,sDAAsD,CAAC;AAErE,cAAc,gDAAgD,CAAC;AAE/D,cAAc,sDAAsD,CAAC;AAErE,8BAA8B;AAE9B,cAAc,+CAA+C,CAAC;AAE9D,cAAc,uDAAuD,CAAC;AAEtE,cAAc,gDAAgD,CAAC;AAE/D,cAAc,oDAAoD,CAAC;AAEnE,cAAc,qCAAqC,CAAC;AAEpD,qBAAqB;AAErB,cAAc,8CAA8C,CAAC;AAE7D,cAAc,uCAAuC,CAAC;AAEtD,cAAc,6CAA6C,CAAC;AAE5D,cAAc,iDAAiD,CAAC;AAEhE,oBAAoB;AAEpB,cAAc,sDAAsD,CAAC;AAErE,cAAc,iDAAiD,CAAC;AAEhE,cAAc,uCAAuC,CAAC;AAEtD,cAAc,4CAA4C,CAAC;AAE3D,cAAc,0CAA0C,CAAC;AAEzD,cAAc,qCAAqC,CAAC;AAEpD,cAAc,4DAA4D,CAAC;AAE3E,cAAc,gDAAgD,CAAC;AAE/D,cAAc,mDAAmD,CAAC;AAElE,cAAc,mDAAmD,CAAC;AAElE,cAAc,kDAAkD,CAAC;AAEjE,cAAc,wDAAwD,CAAC;AAEvE,cAAc,oDAAoD,CAAC;AAEnE,cAAc,iDAAiD,CAAC;AAEhE,cAAc,sCAAsC,CAAC;AAErD,cAAc,uDAAuD,CAAC;AAEtE,cAAc,oCAAoC,CAAC;AAEnD,cAAc,4CAA4C,CAAC;AAE3D,cAAc,gDAAgD,CAAC;AAE/D,cAAc,gEAAgE,CAAC;AAE/E,cAAc,kDAAkD,CAAC;AAEjE,cAAc,mDAAmD,CAAC;AAElE,cAAc,mDAAmD,CAAC;AAElE,cAAc,0CAA0C,CAAC;AAEzD,cAAc,+CAA+C,CAAC;AAE9D,cAAc,uCAAuC,CAAC;AAEtD,wBAAwB;AAExB,cAAc,sCAAsC,CAAC;AAErD,cAAc,kDAAkD,CAAC;AAEjE,cAAc,yDAAyD,CAAC;AAExE,cAAc,yCAAyC,CAAC;AAExD,cAAc,6CAA6C,CAAC;AAE5D,cAAc,qDAAqD,CAAC;AAEpE,cAAc,2CAA2C,CAAC;AAE1D,cAAc,+CAA+C,CAAC;AAE9D,cAAc,iDAAiD,CAAC;AAEhE,cAAc,oDAAoD,CAAC;AAEnE,cAAc,mDAAmD,CAAC;AAElE,cAAc,0CAA0C,CAAC;AAEzD,cAAc,6CAA6C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interstellar-tools/equations",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Curated, well-tested orbital mechanics and dynamics formulas (e.g., Newtonian gravity, vis-viva, Kepler's 3rd law, escape/circular speeds, specific energy, specific angular momentum, peri/apoapsis radii).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"interstellar",
|