JupiterRadiationConfig

Struct JupiterRadiationConfig 

Source
pub struct JupiterRadiationConfig {
    pub regions: Vec<RadiationRegion>,
    pub magnetopause_rj: f64,
    pub latitude_factor: f64,
    pub plasma_sheet_factor: f64,
    pub storm_factor: f64,
}
Expand description

Configuration for the Jupiter radiation dose model.

Fields§

§regions: Vec<RadiationRegion>

Piecewise regions from inner to outer. Must be sorted by r_min_rj and contiguous.

§magnetopause_rj: f64

Magnetopause distance in RJ. Beyond this, trapped radiation is zero.

§latitude_factor: f64

Geometry/variability multipliers

§plasma_sheet_factor: f64

Plasma sheet crossing factor (1.0 = in sheet, typically 0.3-0.5 outside)

§storm_factor: f64

Storm/quiet multiplier (1.0 = nominal, 2-5 for storm)

Implementations§

Source§

impl JupiterRadiationConfig

Source

pub fn default_model() -> Self

Create the default model calibrated to Galileo-era data.

Dose rates in krad(Si)/hour behind 100 mil Al:

  • Europa (~9.4 RJ): ~0.616 krad/h (= 5,400 krad/year)
  • Ganymede (~15 RJ): ~0.0616 krad/h (= 540 krad/year)
  • Callisto (~26 RJ): ~0.000114 krad/h (= 1 krad/year)
Source

pub fn dose_rate_krad_h(&self, r_rj: f64) -> f64

Instantaneous dose rate at distance r (in RJ) in krad/hour.

Returns 0 if r is beyond the magnetopause.

Source

fn analytical_dose_segment( region: &RadiationRegion, r_start_rj: f64, r_end_rj: f64, v_radial_km_s: f64, ) -> f64

Analytical dose integral for a single power-law region.

For constant radial velocity v_r (km/s): Dose = ∫ D(r) dt = ∫ D(r) dr / v_r = (D0 * r0^alpha / v_r) * ∫[r1..r2] r^(-alpha) dr

For alpha ≠ 1: ∫ r^(-alpha) dr = r^(1-alpha) / (1-alpha)

Returns dose in krad. v_r in km/s, distances in RJ.

Source

pub fn transit_analysis( &self, r_start_rj: f64, r_end_rj: f64, v_radial_km_s: f64, shield_budget_krad: f64, ) -> JupiterTransitResult

Compute total accumulated dose along a radial transit.

Assumes constant radial velocity (reasonable for hyperbolic escape far from periapsis where gravity turn is small).

§Arguments
  • r_start_rj - Starting distance from Jupiter center (RJ)
  • r_end_rj - Ending distance (RJ). Must be > r_start for outward.
  • v_radial_km_s - Radial velocity component (km/s, positive = outward)
  • shield_budget_krad - Total dose budget of the radiation shield (krad)

Trait Implementations§

Source§

impl Clone for JupiterRadiationConfig

Source§

fn clone(&self) -> JupiterRadiationConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for JupiterRadiationConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.