# Self-consistent field expansions (biff.scf)¶

## Introduction¶

The two main uses of biff.scf are:

1. to compute the expansion coefficients given a continuous density distribution or discrete samples from a density distribution, or
2. to evaluate the density, potential, and gradients of a basis function expansion representation of a density distribution given a 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. Biff provides a class-based interface SCFPotential that utilizes the gravitational potential machinery implemented in gala.potential (and supports all of the gala functionality, such as orbit integration and plotting). The examples below use this interface.

As an alternate, there is also a functional interface to each relevant function: density, potential, and gradient.

## API¶

### biff.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. density(xyz, Snlm, Tnlm[, M, r_s]) Compute the density of the basis function expansion at a set of positions given the expansion coefficients. gradient(xyz, Snlm, Tnlm[, G, M, r_s]) Compute the gradient of the gravitational potential of the basis function expansion at a set of positions given the expansion coefficients. potential(xyz, Snlm, Tnlm[, G, M, r_s]) Compute the gravitational potential of the basis function expansion at a set of positions given the expansion coefficients.

#### Classes¶

 SCFPotential(m, r_s, Snlm, Tnlm[, units]) An SCF / basis function expansion potential.