Sidereon.Drag (Sidereon v3.0.0)

Copy Markdown View Source

Atmospheric drag parameters, acceleration, and decay estimates.

Summary

Functions

acceleration(params, state)

@spec acceleration(Sidereon.Drag.Parameters.t(), Sidereon.Astro.Relative.State.t()) ::
  {:ok, {float(), float(), float()}}
  | {:error, atom() | Sidereon.argument_error()}

acceleration!(params, state)

default_space_weather()

@spec default_space_weather() :: Sidereon.Drag.SpaceWeather.t()

estimate_decay(state, params, opts \\ [])

Estimate the time until the state decays to the reentry altitude.

Options: :force_model (default :twobody), :abs_tol, :rel_tol, :reentry_altitude_km, :scan_step_s, :crossing_tolerance_s, :max_duration_s, :max_scan_samples, :space_weather_table (a Sidereon.SpaceWeather table the drag inputs are read from along the arc) and :space_weather_policy (a Sidereon.SpaceWeather.Policy or keyword list the table is read under; without it the table is read under the default policy, which refuses Ap values the file does not state and rows with no flux observation).

estimate_decay!(state, params, opts \\ [])

from_area_mass(cd, area_m2, mass_kg, opts \\ [])

@spec from_area_mass(number(), number(), number(), keyword()) ::
  {:ok, Sidereon.Drag.Parameters.t()}
  | {:error, atom() | Sidereon.argument_error()}

from_area_mass!(cd, area_m2, mass_kg, opts \\ [])

from_ballistic_coefficient(bc_kg_m2, opts \\ [])

@spec from_ballistic_coefficient(
  number(),
  keyword()
) ::
  {:ok, Sidereon.Drag.Parameters.t()}
  | {:error, atom() | Sidereon.argument_error()}

from_ballistic_coefficient!(bc_kg_m2, opts \\ [])

from_bc_factor(bc_factor_m2_kg, opts \\ [])

@spec from_bc_factor(
  number(),
  keyword()
) ::
  {:ok, Sidereon.Drag.Parameters.t()}
  | {:error, atom() | Sidereon.argument_error()}

from_bc_factor!(bc_factor_m2_kg, opts \\ [])