SolarGravityAndRadiationPressure

class sbpy.dynamics.models.SolarGravityAndRadiationPressure(**kwargs)[source] [edit on github]

Bases: DynamicalModel

Equation of motion solver for a particle orbiting the Sun, including radiation force.

Dust is parameterized with beta, the ratio of the force from solar radiation pressure (\(F_r\)) to that from solar gravity (\(F_g\)):

\[\beta = \frac{{F_r}}{{F_g}}\]

For spherical dust grains, beta reduces to:

\[\beta = \frac{{0.57 Q_{{pr}}}}{{\rho a}}\]

where \(Q_{{pr}}\) is the radiation pressure efficiency averaged over the solar spectrum, \(\rho\) is the mass density of the grain (g/cm3), and \(a\) is the grain radius (μm) (Burns et al. 1979).

Only Newtonian gravity and radiation pressure are considered. Poynting-Roberston drag and general relativity are not included.

Parameters:
**kwargsdict

Arguments passed on to solve_ivp. Units are seconds, km, and km/s, e.g., max_step is a float value in units of seconds. For relative and absolute tolerance keywords, rtol and atol, 6-element arrays may be used, where the first three elements are for position, and the last three are for velocity.

Attributes Summary

GM

Gravitational constant times mass.

Methods Summary

df_drv(t, rv, beta, *args)

dx_dt(t, rv, beta, *args)

solve(initial, t_final, *args)

Solve the equations of motion for a single particle.

Attributes Documentation

GM

Gravitational constant times mass.

Methods Documentation

classmethod df_drv(t: float, rv: ndarray, beta: float, *args) ndarray[source] [edit on github]
classmethod dx_dt(t: float, rv: ndarray, beta: float, *args) ndarray[source] [edit on github]
solve(initial: State, t_final: Time, *args) State [edit on github]

Solve the equations of motion for a single particle.

The solution is calculated with scipy.integrate.solve_ivp.

Parameters:
initialState

Initial state (position and velocity at time) of the particle.

t_finalTime or Quantity

Time at which the solution is desired. Use of Time versus Quantity must match how time is defined in the initial state.

*args

Additional arguments passed to dx_dt and df_drv.

Returns:
finalState