Tracers, halos and anisotropy#
This reference covers profile-specific scale, deprojection and cutoff conventions. Use the model tutorial to compose or extend components and the spherical API catalogue for available classes in each backend. Shared units and parameter interfaces are defined in the model contract.
Tracer scales and three-dimensional support#
The NumPy/SciPy Plummer, projected exponential and Sersic profiles have
three-dimensional deprojections. Uniform2dModel supplies only a projected
disk and cannot be passed to a three-dimensional Jeans calculation.
ProjectedExponentialModel(r_exp_pc=...) uses the scale inside
exp(-R/r_exp_pc). Its read-only re_pc property returns the projected
half-light radius, 1.67834699001666 * r_exp_pc. This profile is a projected
exponential with a Bessel-K0 three-dimensional deprojection, not a pure
three-dimensional exponential. Plummer and Sersic still accept re_pc directly.
Sersic deprojection domains#
density_3d() selects the deprojection explicitly.
The lgm selection uses the Lima Neto–Gerbal–Márquez approximation for
\(0.5\le n\le10\); its normalization is lgm_norm_3d, independently of auto.
The VM20 approximation is restricted to \(0.5\le n\le10\) and
\(10^{-3}\le r/r_e\le10^3\); VM20bis uses \(0.5\le n\le3.4\) and
\(10^{-4}\le r/r_e\le10^3\). The default auto route selects VM20bis inside
its domain, the SP04 approximation for \(3.4<n\le10\) over that radius range,
and numerical Abel integration outside these domains. Explicit approximation
VM20/VM20bis methods reject unsupported values instead of extrapolating them silently.
See that method’s API entry for the quadrature controls of numerical.
Anisotropy families#
The spherical implementations include
ConstantAnisotropyModel,
OsipkovMerrittModel and
BaesAnisotropyModel; consult their API entries for
parameters and supported kernels. The theory page
defines spherical and cylindrical anisotropy.
For JAX BaesEta2AnisotropyModel, solver="auto" uses Abel integration.
Select solver="kernel" to activate its specialized Appell-F1 kernel, controlled
by n_kernel. The eta=2 specialization alone does not change solver selection. The restriction \(\beta<1\)
alone does not establish the existence of a nonnegative distribution function.
Halo cutoff conventions#
Spherical NFW and Zhao mass_density_3d methods return zero for r > r_t_pc
in both NumPy/SciPy and JAX; the boundary is included. Their enclosed mass is
constant outside the same cutoff. r_t_pc=np.inf gives an untruncated halo
at finite radii. Zhao uses alpha, beta, gamma for transition, outer and
inner slopes in both geometries.
The spheroidal AxisymmetricZhaoModel applies this convention to
m = sqrt(R**2 + z**2/Q**2). Its enclosed mass is inside that ellipsoid.
For annihilation factors, use the factor guide to select the
finite cone or an explicitly named approximation.