# Self-consistent field (SCF)¶

`gala.scf`

contains utilities for evaluating basis function expansions of mass
densities and gravitational potentials with the Self-Consistent Field (SCF)
method of Hernquist & Ostriker (1992; [HO92]). SCF uses Hernquist radial
functions and spherical harmonics for angular functions. This implementation is
based on the formalism described in the original paper but using the notation of
Lowing et al. (2011; [L11]).

## Introduction¶

The two main ways to use `gala.potential.scf`

are:

- to compute the expansion coefficients given a continuous density distribution or discrete samples from a density distribution, then
- to evaluate the density, potential, and gradients of a basis function expansion representation of a density distribution given this set of coefficients.

To compute expansion coefficients, the relevant functions are
`compute_coeffs`

and
`compute_coeffs_discrete`

. This implementation uses the
notation from [L11]: all expansion coefficients are real, \(S_{nlm}\) are
the cosine coefficients, and \(T_{nlm}\) are the sine coefficients.

Once you have coefficients, there are two ways to evaluate properties of the
potential or the density of the expansion representation. `gala`

provides a
class-based interface `SCFPotential`

that utilizes
the gravitational potential machinery implemented in `gala.potential`

(and
supports all of the standard potential functionality, such as orbit integration
and plotting). The examples below use this interface.

## Examples¶

- Computing expansion coefficients from particle positions
- Computing expansion coefficients for an analytic density
- Using SCFPotential to evaluate the density, potential, gradient

## API¶

## gala.potential.scf Package¶

Implementation of the Self-Consistent Field (SCF) expansion method.

### Functions¶

`compute_coeffs` (density_func, nmax, lmax, M, r_s) |
Compute the expansion coefficients for representing the input density function using a basis function expansion. |

`compute_coeffs_discrete` (xyz, mass, nmax, …) |
Compute the expansion coefficients for representing the density distribution of input points as a basis function expansion. |

### Classes¶

`SCFPotential` (m, r_s, Snlm, Tnlm[, units]) |
A gravitational potential represented as a basis function expansion. |