compute_coeffs¶
-
gala.potential.scf.
compute_coeffs
(density_func, nmax, lmax, M, r_s, args=(), skip_odd=False, skip_even=False, skip_m=False, S_only=False, progress=False, **nquad_opts)[source]¶ Compute the expansion coefficients for representing the input density function using a basis function expansion.
Computing the coefficients involves computing triple integrals which are computationally expensive. For an example of how to parallelize the computation of the coefficients, see
examples/parallel_compute_Anlm.py
.Parameters: - density_func : function, callable
A function or callable object that evaluates the density at a given position. The call format must be of the form:
density_func(x, y, z, M, r_s, args)
wherex,y,z
are cartesian coordinates,M
is a scale mass,r_s
a scale radius, andargs
is an iterable containing any other arguments needed by the density function.- nmax : int
Maximum value of
n
for the radial expansion.- lmax : int
Maximum value of
l
for the spherical harmonics.- M : numeric
Scale mass.
- r_s : numeric
Scale radius.
- args : iterable (optional)
A list or iterable of any other arguments needed by the density function.
- skip_odd : bool (optional)
Skip the odd terms in the angular portion of the expansion. For example, only take \(l=0,2,4,...\)
- skip_even : bool (optional)
Skip the even terms in the angular portion of the expansion. For example, only take \(l=1,3,5,...\)
- skip_m : bool (optional)
Ignore terms with \(m > 0\).
- S_only : bool (optional)
Only compute the S coefficients.
- progress : bool (optional)
If
tqdm
is installed, display a progress bar.- **nquad_opts
Any additional keyword arguments are passed through to
nquad
as options,opts
.
Returns: - Snlm : float,
ndarray
The value of the cosine expansion coefficient.
- Snlm_err : ,
ndarray
An estimate of the uncertainty in the coefficient value (from
nquad
).- Tnlm : ,
ndarray
The value of the sine expansion coefficient.
- Tnlm_err : ,
ndarray
An estimate of the uncertainty in the coefficient value. (from
nquad
).