Electron density models for the intra-cluster medium

The NelICM implements the typical electron density profiles found in clusters, whereas the NelICMFunction can be used to model an electron density profile derived from an arbitrary or interpolated function.

In the simplest case, the electron density in NelICM is modeled with the \(beta\) profile,

\[n_\mathrm{el}(r) = n_0 (1 + r^2/r^2_\mathrm{core})^{-3\beta / 2}.\]

If the attributes r_core2 and n2 are set to values > 0, the profile

\[n_\mathrm{el}(r) = \left(n_0^2 (1 + r^2/r^2_\mathrm{core})^{-3\beta} + n_2^2 (1 + r^2/r^2_\mathrm{core, 2})^{-3\beta}\right)^{\frac{1}{2}}\]

is used. If, additionally, also beta2 >0, then the profile is changed to

\[n_\mathrm{el}(r) = n_0 (1 + r^2/r^2_\mathrm{core})^{-3\beta / 2} + n_2 (1 + r^2/r^2_\mathrm{core, 2})^{-3\beta_2 / 2},\]

which is used, for instance, to model the electron density in the Perseus cluster [Churazov2003].

Furthermore, the classes provide the method Bscale(), which can be used to rescale the intra-cluster magnetic fields (see Magnetic fields with cell-like structure and Magnetic field of Galaxy clusters with Gaussian Turbulence) to follow the radial dependence of the electron density according to

\[B(r) = B_0\left( \frac{n_\mathrm{el}(r)}{n_\mathrm{el}(r=0)}\right)^\eta.\]

Reference / API

class gammaALPs.nel.icm.NelICM(**kwargs)[source]

Bases: object

Class to set characteristics of electron density of intracluster medium

Bscale(r)[source]

Calculate the scaling of the B field with electron density as function from cluster center

Parameters:

r (array-like) – n-dim array with distance from cluster center in kpc

Returns:

nel – n-dim array with scaling of B field with electron density

Return type:

ndarray

__call__(r)[source]

Calculate the electron density as function from cluster center

Parameters:

r (array) – n-dim array with distance from cluster center in kpc

Returns:

nel – n-dim array with electron density in 10**-3 cm**-3

Return type:

ndarray

__init__(**kwargs)[source]

Initialize the class

Parameters:
  • n0 (float) – electron density in cm**-3 (default 1e-3)

  • r_core (float) – core radius in kpc (default 10.)

  • beta (float) – exponent of density profile (default: 2. / 3.)

  • eta (float) – exponent for scaling of B field with electron density (default = 1.)

  • n2 (float) – if > 0., use profile with this second density component

  • r_core2 (float) – if > 0., use profile with this second r_core value

  • beta2 (float) – if > 0., use profile with this second beta value as for NGC1275

property beta
property beta2
constant(r)[source]

return constant electron density

Parameters:

r (array) – n-dim array with distance from cluster center in kpc

Returns:

nel – n-dim array with electron density in 10**-3 cm**-3

Return type:

ndarray

property eta
property n0
property n2
property r_core
property r_core2
class gammaALPs.nel.icm.NelICMFunction(func, eta=1.0)[source]

Bases: object

Class to set characteristics of electron density of intracluster medium, where electron density is provided by a function

Bscale(r, r0=0.0)[source]

Calculate the scaling of the B field with electron density as function from cluster center

Parameters:
  • r (array-like) – n-dim array with distance from cluster center in kpc

  • r0 (float) – Normalization for scale factor in kpc. Default: 0.

Returns:

nel – n-dim array with scaling of B field with electron density

Return type:

ndarray

__call__(r)[source]

Calculate the electron density as function from cluster center

Parameters:

r (array-like) – n-dim array with distance from cluster center in kpc

Returns:

nel – n-dim array with electron density in 10**-3 cm**-3

Return type:

ndarray

__init__(func, eta=1.0)[source]

Initialize the class

Parameters:
  • func (function pointer) – function that takes radius in kpc and returns electron density in cm^-3

  • eta (float) – exponent for scaling of B field with electron density (default = 1.)

property eta
property func