SynGenerator

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

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

betas~numpy.ndarray

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

ages~astropy.units.Quantity

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) Self[source]

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

betas~numpy.ndarray

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

epochs~astropy.units.Time

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

**kwargs

Any other SynGenerator keyword argument.

initialize_states() None[source]

Generate the initial particle states.

This method is automatically run on initialization.

solve() None[source]

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]

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:
orbitState

The orbital states.

coordsSkyCoord, optional

The observed coordinates. Only returned when .observer is defined.

synchrone(i: int) Synchrone[source]

Get a single synchrone.

Parameters:
iint

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

Returns:
synchroneSynchrone
synchrones() Synchrones[source]

Get a collection of all synchrones.

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

Get a single syndyne.

Parameters:
iint

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

Returns:
syndyneSyndyne
syndynes() Syndynes[source]

Get a collection of all syndynes.

Returns:
syndynesSyndynes