Initializing the Satellite Galaxy#
The satellite galaxy comprises two key components: the galaxy potential as well as the particle distribution
which is actually what GalaRP uses to trace orbits.
The Satellite Galaxy Potential#
The satellite galaxy potential can be any combination of Gala potentials. For example:
import gala.potential as gp
dm = gp.BurkertPotential(rho=5.93e-25 * u.g / u.cm**3, r0=11.87 * u.kpc, units=galactic)
stars = gp.MiyamotoNagaiPotential(m=10**9.7 * u.Msun, a=2.5 * u.kpc, b=0.5 * u.kpc, units=galactic)
gas = gp.MiyamotoNagaiPotential(m=10**9.7 * u.Msun, a=3.75 * u.kpc, b=0.75 * u.kpc, units=galactic)
pot = gp.CompositePotential(dm=dm, stars=stars, gas=gas)
In this case we return an explicit composite potential, where you can access the components easily using pot["dm"],
for example.
GalaRP also has built-in potentials under the builtins.satellites module.
Note that a GalaRP-defined mass profile should be generated using the following:
mass_profile = grp.gen_mass_profile(pot)
Particle Initialization#
To run a GalaRP sim, the user needs to define some set of particles through which the RP orbits are calculated.
The main particle classes included are a uniform grid of equally spaced particles, as well as a particle distribution
matching the density distribtion of a double-exponential model:
For a uniform grid with a maximum radius of 10 kpc:
particles = grp.UniformGrid(n_particles=150, Rmax=10)
particles.generate(mass_profile=mass_profile)
This will create a uniform grid with 50 particles from -Rmax to Rmax. It will also automatically initialize the
particles with a velocity dispersion of 10 km/s along each axis.
