MagnetizedSphericalGalaxyClusterModel#

class pisces.models.galaxy_clusters.spherical.MagnetizedSphericalGalaxyClusterModel(filepath: str | Path, *args, **kwargs)[source]#

A spherically symmetric galaxy cluster model featuring a magnetic field.

This model extends the basic spherical galaxy cluster model to include magnetic field profiles and their effects on the cluster dynamics. In particular, the magnetic field strength is expressed via the \(\beta\) parameter defined such that

\[\beta = \frac{P_{\rm thermal}}{P_{\rm magnetic}}.\]

Fields#

The following physical fields are computed and stored in the model:

Magnetized Spherical Galaxy Cluster Model Fields#

Field Name

Description

Symbol

Notes

radii

Radial coordinate grid

\(r\)

gas_density

Gas density profile

\(\rho_{\mathrm{gas}}(r)\)

stellar_density

Stellar density profile

\(\rho_\star(r)\)

total_density

Total density profile

\(\rho_{\mathrm{tot}}(r)\)

dark_matter_density

Dark matter density profile

\(\rho_{\mathrm{DM}}(r)\)

gas_mass

Enclosed gas mass

\(M_{\mathrm{gas}}(<r)\)

stellar_mass

Enclosed stellar mass

\(M_\star(<r)\)

total_mass

Enclosed total mass

\(M_{\mathrm{tot}}(<r)\)

dark_matter_mass

Enclosed dark matter mass

\(M_{\mathrm{DM}}(<r)\)

gravitational_field

Gravitational acceleration

\(g(r)\)

gravitational_potential

Gravitational potential

\(\Phi(r)\)

pressure

Gas pressure profile

\(P(r)\)

pressure_thermal

Thermal gas pressure

\(P_{\rm thermal}(r)\)

pressure_magnetic

Magnetic pressure

\(P_{\rm magnetic}(r)\)

temperature

Gas temperature profile

\(T(r)\)

electron_density

Electron number density

\(n_e(r)\)

entropy

Entropy profile

\(K(r)\)

sound_speed

Adiabatic sound speed

\(c_s(r)\)

baryon_fraction

Baryonic mass fraction

\(M_{\rm bary} / M_{\rm tot}\)

magnetic_field

Magnetic field strength

\(B(r)\)

alfven_velocity

Alfvén velocity

\(v_A(r)\)

beta_parameter

Plasma beta (thermal / magnetic pressure)

\(\beta(r)\)

Methodology#

Note

In most respects, the methodology here mirrors that of SphericalGalaxyClusterModel with the addition of magnetic field profiles. For details on the various available pathways, see the documentation for that class.

For a profile with \(\beta(r)\), the effect is simply to offset the necessary thermal pressure. Thus, the hydrostatic equilibrium equation is modified to account for the magnetic pressure:

\[- \rho \nabla \Phi = \nabla P = \nabla P_{\rm thermal} + \nabla P_{\rm magnetic} = \nabla \left[\left(1+\frac{1}{\beta}\right) P_{\rm thermal}\right]\]

where \(P_{\rm magnetic}(r) = P_{\rm thermal}(r) / \beta(r)\). As such, the inclusion of the \(\beta\) parameter allows for a full treatment of the non-thermal pressure. The corresponding magnetic field strength is given by

\[B(r) = \sqrt{2 \beta(r) P_{\rm magnetic}(r)}.\]

Methods

__init__(filepath, *args, **kwargs)

Load a Pisces model from an existing HDF5 file.

add_field(name[, element_shape, units, ...])

Add a new physical field to the model.

add_profile(name, profile[, overwrite])

Add a new analytic profile to the model.

compute_df(species[, num_points, scale, ...])

Compute the isotropic Eddington distribution function for a given species.

copy_field(old_name, new_name)

Create a duplicate of an existing field under a new name.

copy_profile(old_name, new_name)

Create a duplicate of an existing profile under a new name.

from_components(filepath, grid, fields, ...)

Create and save a Pisces model from in-memory components.

from_density_and_total_density(...[, ...])

Generate a spherical cluster model from analytic density profiles.

from_entropy_and_density(density_profile, ...)

Generate a spherical cluster model from gas density and entropy profiles.

from_temperature_and_density(...[, ...])

Generate a spherical galaxy cluster model from gas density and temperature profiles.

generate_particles(filename, num_particles)

Convert this galaxy cluster model into a particle dataset.

get_active_hooks([names])

Return all active hook classes mixed into the model.

get_all_hooks([names])

Return all hook classes mixed into the model, regardless of activation status.

get_df(species)

Retrieve the distribution function and energy grid for a given species.

get_field(name)

Retrieve a physical field by name.

get_hook_class(hook_name)

Return the hook class associated with a given hook name.

get_hook_description(hook_cls)

Return the human-readable description for a given hook class.

get_hook_name(hook_cls)

Return the symbolic name for a given hook class.

get_profile(name)

Retrieve an analytic profile by name.

has_hook(hook)

Check if a given hook is mixed into the model (regardless of activation status).

list_fields()

List all physical fields currently stored in the model.

list_profiles()

List all analytic profiles currently stored in the model.

remove_field(name)

Remove a physical field from the model.

remove_profile(name)

Remove an analytic profile from the model.

rename_field(old_name, new_name)

Rename an existing field in the model.

rename_profile(old_name, new_name)

Rename an existing profile in the model.

Attributes

active_grid_axes

List of active axes in the model's grid.

config

Model-specific configuration settings.

coordinate_system

The coordinate system of the model's grid.

dark_matter_df

Return (E, DF) for the dark matter component.

fields

Model field buffers.

grid

The spatial grid of the model.

handle

The open HDF5 file handle.

has_dark_matter_df

Check whether the dark matter DF is stored in the model file.

has_stellar_df

Check whether the stellar DF is stored in the model file.

logger

Logger interface for this model.

metadata

Model metadata dictionary.

path

The path to the model's HDF5 file.

profiles

Model profile objects.

stellar_df

Return (E, DF) for the stellar component.