galpy.df.pericenter_stripping_pdf

galpy.df.pericenter_stripping_pdf(progenitor, pot, tdisrupt, sigma, ngrid=10001, ro=None, vo=None)[source]

Build a stripping-time PDF from a progenitor’s pericenter passages.

The returned PDF is an equal-height sum of Gaussians centered on every pericenter passage of the progenitor over the interval [-tdisrupt, 0] (t=0 is the present day, t<0 the past) and truncated to that same interval. Useful for stripping_pdf= of galpy.df.streamspraydf.basestreamspraydf subclasses, capturing the well-known enhancement of tidal stripping at pericenter passages.

Parameters:
  • progenitor (galpy.orbit.Orbit) – Progenitor orbit. Will be copied and re-integrated internally.

  • pot (galpy.potential.Potential or a combined potential) – Potential used to integrate the progenitor.

  • tdisrupt (float or Quantity) – Time since start of disruption. Pericenter passages over [-tdisrupt, 0] are located.

  • sigma (float or Quantity) – Width (standard deviation) of each Gaussian.

  • ngrid (int, optional) – Number of grid points used to integrate the progenitor and locate pericenter passages. Default 10001.

  • ro (float or Quantity, optional) – Distance scale (defaults to progenitor’s ro).

  • vo (float or Quantity, optional) – Velocity scale (defaults to progenitor’s vo).

Returns:

pdf – Function pdf(t) returning the PDF at t. When sigma is a Quantity, the returned PDF expects t as a Quantity and returns Quantity values with units 1/Gyr; otherwise it works in internal units. The callable carries an attribute pdf.pericenter_times (1D array, internal units) listing the pericenter times.

Return type:

callable

Raises:

ValueError – If ro/vo are explicitly given but disagree with the progenitor’s, or if no pericenter passages are found on [-tdisrupt, 0] (e.g. a nearly circular orbit) — in the latter case, supply a custom stripping_pdf instead.