SynGenerator

class sbpy.dynamics.syndynes.SynGenerator(source: State, betas: Iterable | Quantity, ages: Quantity, observer: State | None = None, solver: DynamicalModel | None = None)[source] [edit on github]

Bases: object

Syndyne / synchrone generator for cometary dust.

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).

Parameters:
sourceState

State vector (i.e., position and velocity at time) of the object producing dust at the time of the observation. Must be with respect to the central mass (e.g., the Sun).

betasndarray

Array of beta-parameters to be simulated (dimensionless).

agesQuantity

Array of particle ages (time).

observerState, optional

State vector of the observer in the same reference frame as source.

solverDynamicalModel, optional

Solve the equations of motion with this object. The default solver is SolarGravityAndRadiationPressure.

Methods Summary

at_epochs(source, betas, epochs, **kwargs)

An alternative constructor that ejects dust at specific times.

initialize_states()

Generate the initial particle states.

solve()

Generate test particle positions by solving the equations of motion.

source_orbit(dt)

Calculate and observe the orbit of the dust source.

synchrone(i)

Get a single synchrone.

synchrones()

Get a collection of all synchrones.

syndyne(i)

Get a single syndyne.

syndynes()

Get a collection of all syndynes.

Methods Documentation

classmethod at_epochs(source: State, betas: Iterable | Quantity, epochs: Time, **kwargs: dict) SynGeneratorType[source] [edit on github]

An alternative constructor that ejects dust at specific times.

Parameters:
sourceState

State vector (i.e., position and velocity at time) of the object producing dust at the time of the observation. Must be with respect to the central mass (e.g., the Sun).

betasndarray

Array of beta-parameters to be simulated (dimensionless).

epochsTime

Specific times to produce dust test particles. The times will be converted to particle ages.

**kwargsdict

Any other SynGenerator keyword argument.

initialize_states() None[source] [edit on github]

Generate the initial particle states.

This method is automatically run on initialization.

solve() None[source] [edit on github]

Generate test particle positions by solving the equations of motion.

This method is automatically run on initialization.

source_orbit(dt: Quantity) State | tuple[State, SkyCoord][source] [edit on github]

Calculate and observe the orbit of the dust source.

Parameters:
dtastropy.units.Quantity

The times at which to calculate the orbit, relative to the observation time.

Returns:
orbitSourceOrbit

The orbital states.

synchrone(i: int) Synchrone[source] [edit on github]

Get a single synchrone.

Parameters:
iint

Index of the synchrone (same index as the ages array).

Returns:
synchroneSynchrone
synchrones() Synchrones[source] [edit on github]

Get a collection of all synchrones.

Returns:
synchronesSynchrones
syndyne(i: int) Syndyne[source] [edit on github]

Get a single syndyne.

Parameters:
iint

Index of the syndyne (same index as the betas array).

Returns:
syndyneSyndyne
syndynes() Syndynes[source] [edit on github]

Get a collection of all syndynes.

Returns:
syndynesSyndynes