ConstantAnisotropyModel#

jeanspy.model_jax.ConstantAnisotropyModel

See methods and properties for individual lookup pages, or the alphabetical API dictionary to search all classes. The full class contract and existing member anchors are retained below.

class jeanspy.model_jax.ConstantAnisotropyModel(submodels=None)[source]#

Bases: jeanspy.model_jax.AnisotropyModel

JAX constant spherical anisotropy, beta(r) = params["beta_ani"].

beta_ani is dimensionless; physical tangential dispersion requires beta_ani < 1. beta(r_pc) follows the radius shape and f(r_pc) returns r**(2*beta_ani), an arbitrarily normalized Jeans integrating factor. Radii are in pc; the dimensionless kernel uses u=r/R >= 1 and is independent of its R_pc argument.

kernel_backend="jax" uses differentiable quadrature with n_kernel nodes. kernel_backend="scipy" selects a hypergeometric callback reference without general physical-parameter autodiff. Invalid backend names or quadrature orders raise ValueError; elementary physical-domain errors may produce nonfinite results. Check convergence near anisotropy limits. Runtime JAX precision/platform configuration applies. See examples/docs_jax_spherical.py.

Parameters:

submodels (Dict[str, jeanspy.model_jax.Model])

required_param_names: tuple[str, ...] = ('beta_ani',)#
beta(r_pc, *, params)[source]#

Return constant beta_ani with the same shape as r_pc.

Parameters:
Return type:

jax.Array

f(r_pc, *, params)[source]#

Return f(r)=r^(2 beta_ani) from the note definition.

Parameters:
Return type:

jax.Array

kernel(u, R_pc, *, params, kernel_backend='jax', n_kernel=None)[source]#

LOSVD kernel K(u) for constant anisotropy.

Uses the transformed hypergeometric representation

K(u) = sqrt(1-u^{-2}) * ((3/2-beta) * 2F1(1,beta;3/2;1-u^{-2}) - 1/2)

which is algebraically equivalent to the original form in model.py and numerically stable for large u.

Parameters:
  • u (jax.Array) – Dimensionless radius ratio u=r/R (typically u>1).

  • R_pc (jax.Array) – Accepted by the shared anisotropy interface; K(u) is independent of R.

  • kernel_backend (str) – 'jax' uses the direct JAX quadrature kernel. 'scipy' uses the SciPy hypergeometric formulation.

  • n_kernel (int | None) – Quadrature order for the direct JAX kernel implementation.

  • params (Mapping[str, Any])

Return type:

jax.Array

required_models: Mapping[str, type[jeanspy.model_jax.Model]] = {}#
sampling_identity()#

Model configuration without the derived compilation cache.

submodels: Dict[str, jeanspy.model_jax.Model]#