TiltedDipole
Defined in: dipole.rs:23
pub struct TiltedDipoleTilted dipole geomagnetic field model with ECEF-fixed axis.
Approximates Earth’s magnetic field as a tilted dipole, suitable for B-dot detumbling simulations in LEO. The dipole axis is stored in ECEF coordinates and rotated to ECI using the epoch’s GMST, correctly accounting for Earth rotation.
The dipole field at position r is:
B = (dipole_strength / r^3) [3(m_hat . r_hat) r_hat - m_hat]
where m_hat is the dipole axis unit vector and r is in metres.
Methods
Section titled “Methods”fn new(dipole_strength: f64, axis_ecef: Vector3<f64>) -> Self
Create a tilted dipole with the given strength and axis in ECEF coordinates.
Panics
Section titled “Panics”Panics if axis_ecef is zero-length.
earth()
Section titled “earth()”fn earth() -> Self
Earth’s tilted dipole (IGRF approximate).
- Dipole strength: ~7.94e15 Tm^3 (= mu_0/(4pi) * 7.94e22 A*m^2)
- Geomagnetic pole tilted ~11.5 deg from geographic north (simplified: tilt in the x-z plane in ECEF)
The dipole moment points roughly geographic south, i.e. opposite
the geomagnetic north pole — that is what makes field lines enter the
Earth in the northern hemisphere. IGRF says the same thing through
g_1^0 < 0. Concretely, with m_hat pointing south:
- at the equator
m_hat . r_hat = 0, soB ~ -m_hatpoints north; - at the north pole
r_hat = +Zandm_hat . r_hat = -1, so3(m_hat . r_hat) r_hat - m_hat = +2 m_hat, which points into the Earth.
Both match the real field; using +Z here inverts the whole vector.
The axis is stored in ECEF coordinates and will be rotated to ECI using the epoch’s GMST when computing the field.