Ferrers potential

class galpy.potential.FerrersPotential(amp=1.0, a=1.0, n=2, b=0.35, c=0.2375, omegab=0.0, pa=0.0, normalize=False, ro=None, vo=None)[source]

Class that implements triaxial Ferrers potential for the ellipsoidal density profile with the short axis along the z-direction

\[\rho(x,y,z) = \frac{\mathrm{amp}}{\pi^{1.5} a^3 b c} \frac{\Gamma(n+\frac{5}{2})}{\Gamma(n+1)}\,(1-(m/a)^2)^n\]

with

\[m^2 = x'^2 + \frac{y'^2}{b^2}+\frac{z'^2}{c^2}\]

and \((x',y',z')\) is a rotated frame wrt \((x,y,z)\) so that the major axis is aligned with \(x'\).

Note that this potential has not yet been optimized for speed and has no C implementation, so orbit integration is currently slow.

__init__(amp=1.0, a=1.0, n=2, b=0.35, c=0.2375, omegab=0.0, pa=0.0, normalize=False, ro=None, vo=None)[source]

Initialize a Ferrers potential.

Parameters:
  • amp (float or Quantity, optional) – Total mass of the ellipsoid determines the amplitude of the potential.

  • a (float or Quantity, optional) – Scale radius.

  • n (int, optional) – Power of Ferrers density (n > 0).

  • b (float, optional) – y-to-x axis ratio of the density.

  • c (float, optional) – z-to-x axis ratio of the density.

  • omegab (float or Quantity, optional) – Rotation speed of the ellipsoid.

  • pa (float or Quantity, optional) – If set, the position angle of the x axis (rad or Quantity).

  • normalize (bool or float, optional) – If True, normalize such that vc(1.,0.)=1., or, if given as a number, such that the force is this fraction of the force necessary to make vc(1.,0.)=1.

  • ro (float, optional) – Distance scale for translation into internal units (default from configuration file).

  • vo (float, optional) – Velocity scale for translation into internal units (default from configuration file).

Notes

  • 2011-02-23: Written - Bovy (NYU)