VectorialModel

class sbpy.activity.gas.core.VectorialModel(base_q, parent, fragment, q_t=None, radial_points=50, radial_substeps=80, angular_points=30, parent_destruction_level=0.99, fragment_destruction_level=0.95, max_fragment_lifetimes=8.0, print_progress=False)[source]

Bases: GasComa

Vectorial model for fragments in a coma produced with a dissociative energy kick.

Parameters:
base_qQuantity

Base production rate, per time

parent: `~sbpy.data.Phys`
Object with the following physical property fields:
  • tau_T: total lifetime of the parent molecule

  • tau_d: photodissociative lifetime of the parent molecule

  • v_outflow: outflow velocity of the parent molecule

  • sigma: cross-sectional area of the parent molecule

fragment: `~sbpy.data.Phys`
Object with the following physical property fields:
  • tau_T: total lifetime of the fragment molecule

  • v_photo: velocity of fragment resulting from

    photodissociation of the parent

q_t: callable, optional

Calculates the parent production rate as a function of time: q_t(t). The argument t is the look-back time as a float in units of seconds. The return value is the production rate in units of inverse seconds. If provided, this value is added to base_q.

If no time-dependence function is given, the model will run with steady production at base_q stretching infinitely far into the past.

radial_points: int, optional

Number of radial grid points the model will use

radial_substeps: int, optional

Number of points along the outflow axis to integrate over

angular_points: int, optional

Number of angular grid points the model will use

parent_destruction_level: float, optional

Model will attempt to track parents until this percentage has dissociated

fragment_destruction_level: float, optional

Model will attempt to track fragments until this percentage has dissociated

max_fragment_lifetimes: float, optional

Fragments traveling through the coma will be ignored if they take longer than this to arrive and contribute to the density at any considered point.

print_progress: bool, optional

Print progress while calculating.

References

The density distribution of neutral compounds in cometary atmospheres. I - Models and equations, Festou, M. C. 1981, Astronomy and Astrophysics, vol. 95, no. 1, Feb. 1981, p. 69-79.

Methods Summary

binned_production(qs, fragment, parent, ts, ...)

Alternate constructor for vectorial model

production_at_time(t)

Get production rate at time t.

Methods Documentation

classmethod binned_production(qs, fragment, parent, ts, **kwargs)[source]

Alternate constructor for vectorial model

Parameters:
qsQuantity

List of steady production rates, per time, with length equal to that of ts.

parent: `~sbpy.data.Phys`

Same as __init__

fragment: `~sbpy.data.Phys`

Same as __init__

tsQuantity

List of times corresponding to when the production qs begin, with positive times indicating the past.

kwargs: variable, optional

Any additional parameters in kwargs are passed on to __init__, which are documented above and may be passed in here.

Returns:
VectorialModel

Instance of the VectorialModel class

Notes

Preserves Festou’s original fortran method of describing time dependence in the model - time bins of steady production at specified intervals.

The base production of the model is taken from the first element in the production array, which assumes the arrays are time-ordered from oldest to most recent. The base production extends backward in time to infinity, so take care when using this method for time dependence if that is not what is intended.

Examples

This specifies that from 30 days ago to 7 days ago, the production was 1.e27, changes to 3.e27 between 7 and 5 days ago, then falls to 2.e27 from 5 days ago until now: >>> q_example = [1.e27, 3.e27, 1.e27] * (1/u.s) >>> t_example = [30, 7, 5] * u.day

production_at_time(t: float64) float64[source]

Get production rate at time t.

Parameters:
tnumpy.float64

Time in seconds, with positive values representing the past

Returns:
numpy.float64

Production rate, unitless, at the specified time