# Potential (galpy.potential)¶

## 3D potentials¶

### General instance routines¶

Use as Potential-instance.method(...)

In addition to these, the NFWPotential also has methods to calculate virial quantities

### General 3D potential routines¶

Use as method(...)

In addition to these, the following methods are available to compute expansion coefficients for the SCFPotential class for a given density

### Specific potentials¶

All of the following potentials can also be modified by the specific WrapperPotentials listed below.

#### Triaxial, spiral, and bar potentials¶

All galpy potentials can also be made to rotate using the SolidBodyRotationWrapperPotential listed in the section on wrapper potentials below.

#### General Poisson solvers for disks and halos¶

In addition to these classes, a simple Milky-Way-like potential fit to data on the Milky Way is included as galpy.potential.MWPotential2014 (see the galpy paper for details). Note that this potential assumes a circular velocity of 220 km/s at the solar radius at 8 kpc; see arXiv/1412.3451 for full information on how this potential was fit. This potential is defined as

>>> bp= PowerSphericalPotentialwCutoff(alpha=1.8,rc=1.9/8.,normalize=0.05)
>>> mp= MiyamotoNagaiPotential(a=3./8.,b=0.28/8.,normalize=.6)
>>> np= NFWPotential(a=16/8.,normalize=.35)
>>> MWPotential2014= [bp,mp,np]


and can thus be used like any list of Potentials. If one wants to add the supermassive black hole at the Galactic center, this can be done by

>>> from galpy.potential import KeplerPotential
>>> from galpy.util import bovy_conversion
>>> MWPotential2014wBH= [MWPotential2014,KeplerPotential(amp=4*10**6./bovy_conversion.mass_in_msol(220.,8.))]


for a black hole with a mass of $$4\times10^6\,M_{\odot}$$ (this works because a list of Potential instances can contain a nested list of Potential instances in versions>=1.4).

As explained in this section, without this black hole MWPotential2014 can be used with Dehnen’s gyrfalcON code using accname=PowSphwCut+MiyamotoNagai+NFW and accpars=0,1001.79126907,1.8,1.9#0,306770.418682,3.0,0.28#0,16.0,162.958241887.

An older version galpy.potential.MWPotential of a similar potential that was not fit to data on the Milky Way is defined as

>>> mp= MiyamotoNagaiPotential(a=0.5,b=0.0375,normalize=.6)
>>> np= NFWPotential(a=4.5,normalize=.35)
>>> hp= HernquistPotential(a=0.6/8,normalize=0.05)
>>> MWPotential= [mp,np,hp]


galpy.potential.MWPotential2014 supersedes galpy.potential.MWPotential.

## 2D potentials¶

### General instance routines¶

Use as Potential-instance.method(...)

### General axisymmetric potential instance routines¶

Use as Potential-instance.method(...)

### General 2D potential routines¶

Use as method(...)

### Specific potentials¶

All of the 3D potentials above can be used as two-dimensional potentials in the mid-plane.

In addition, a two-dimensional bar potential, two spiral potentials, the Henon & Heiles (1964) potential, and some static non-axisymmetric perturbations are included

## 1D potentials¶

### General instance routines¶

Use as Potential-instance.method(...)

### General 1D potential routines¶

Use as method(...)

### Specific potentials¶

One-dimensional potentials can also be derived from 3D axisymmetric potentials as the vertical potential at a certain Galactocentric radius

## Potential wrappers¶

Gravitational potentials in galpy can also be modified using wrappers, for example, to change their amplitude as a function of time. These wrappers can be applied to any galpy potential (although whether they can be used in C depends on whether the wrapper and all of the potentials that it wraps are implemented in C). Multiple wrappers can be applied to the same potential.