Virial Orbits

Class providing orbital parameters of satellite halos at the time when they first enter the virial radius of their host.

Default implementation: virialOrbitBenson2005

Methods

orbittype(keplerOrbit)

Returns a Kepler orbit object describing the orbital parameters (energy, angular momentum, radial and tangential velocities) of a satellite halo at the time it first crosses the virial radius of its host halo.

  • type(treeNode), intent(inout) :: node , host

  • logical , intent(in ) :: acceptUnboundOrbits

velocityDistributionFunctiondouble precision

Returns the distribution function of orbital velocity \(\mathrm{d}^2p/\mathrm{d}v_r/\mathrm{d}v_\theta(v_r,v_\theta)\).

  • type (treeNode), intent(inout) :: node , host

  • double precision , intent(in ) :: velocityRadial, velocityTangential

isAngularlyResolvedlogical

Returns true if this orbit class provides resolution of the orbital angular coordinates (\(\theta\),\(\phi\)) when setting orbits, false otherwise.

densityContrastDefinitionclass(virialDensityContrastClass)

Returns a virialDensityContrast object describing the virial density contrast used to define this orbit class.

velocityTangentialMagnitudeMeandouble precision

Returns the mean of the magnitude of tangential velocity averaged over all orbits.

  • type(treeNode), intent(inout) :: node, host

velocityTangentialVectorMeandouble precision, dimension(3)

Returns the mean vector of the vector tangential velocity averaged over all orbits.

  • type(treeNode), intent(inout) :: node, host

angularMomentumMagnitudeMeandouble precision

Returns the mean of the magnitude of the angular momentum averaged over all orbits.

  • type(treeNode), intent(inout) :: node, host

angularMomentumVectorMeandouble precision, dimension(3)

Returns the mean vector of the angular momentum averaged over all orbits.

  • type(treeNode), intent(inout) :: node, host

velocityTotalRootMeanSquareddouble precision

Returns the square root of the mean of the squared total velocity averaged over all orbits.

  • type(treeNode), intent(inout) :: node, host

energyMeandouble precision

Returns the square root of the mean of the energy averaged over all orbits.

  • type(treeNode), intent(inout) :: node, host

virialOrbitBenson2005

A virial orbits class which selects orbital parameters randomly from the distribution given by Benson (2005). If the virial density contrast definition differs from that used by Benson (2005) then the orbit is assigned based on Benson (2005)’s definition and then propagated to the virial radius relevant to the current definition of density contrast.

(Default implementation)

virialOrbitFixed

A virial orbit class that assigns all satellite infall orbits a single fixed set of orbital parameters, with radial velocity \(v_\mathrm{r}=\)[velocityRadial]\(V_\mathrm{virial}\) and tangential velocity \(v_\phi=\)[velocityTangential]\(V_\mathrm{virial}\) in units of the host halo virial velocity. Default values match the approximate peak in the distribution of Benson (2005).

Parameters

  • [mass] (default 100.0d0) — The fixed mass (in \(\mathrm{M}_\odot\)) assigned to all newly-formed seed black holes in this implementation, representing the initial black hole mass when a halo first forms a central black hole.

  • [spin] (default 0.0d0) — The dimensionless spin parameter (between \(-1\) and \(+1\)) assigned to all newly-formed seed black holes, where \(0\) corresponds to a non-rotating Schwarzschild black hole and \(\pm 1\) to a maximally rotating Kerr black hole.

  • [fraction] (default 0.01d0) — The fixed fraction \(f_\mathrm{outflow}\) of the stellar energy input rate (normalized to a canonical \(1\,\mathrm{M}_\odot\) population) that drives gas outflows, setting the mass loading factor for stellar feedback in the galaxy.

  • [escapeFraction] (default 0.006d0) — Escape fraction of ionizing photons from young HII regions.

  • [ageLimit] (default 0.03d0) — The age beyond which all ionizing photons are assumed to escape from HII regions.

  • [timescale] (default 1.0d0) — The timescale for star formation in the fixed timescale model.

  • [rateStarFormation] (default 1.0d9) — The rate of star formation in units of \(\mathrm{M}_\odot \hbox{Gyr}^{-1}\).

  • [proposalSize] — The fixed value of the proposal scaling parameter \(\gamma\) used to scale the vector difference between two randomly selected chain states when forming differential evolution proposals.

  • [exponentValue] — The fixed value of the temperature-scaling exponent \(\alpha\) by which the proposal size \(\gamma\) is scaled as \(\gamma \propto T^{\alpha}\) in tempered differential evolution runs.

  • [massResolution] (default 5.0d9) — The mass resolution to use when building merger trees.

  • [rootVariance] — The root variance of the random error distribution.

  • [velocityRadial] (default -0.90d0) — The radial velocity (in units of the host virial velocity) to used for the fixed virial orbits distribution. Default value matches approximate peak in the distribution of Benson (2005).

  • [velocityTangential] (default 0.75d0) — The tangential velocity (in units of the host virial velocity) to used for the fixed virial orbits distribution. Default value matches approximate peak in the distribution of Benson (2005).

  • [rateCoefficient] — The rate coefficient (in units of cm\(^3\) s\(^{-1}\)) for radiative recombination.

  • [gamma] (default 0.67d0) — The multiplicative factor, \(\gamma\), used to compute the cooling coefficient.

  • [fractionLossAngularMomentum] (default 0.3d0) — Specifies the fraction of angular momentum that is lost from cooling/infalling gas.

  • [concentration] — The fixed NFW concentration parameter \(c = r_\mathrm{virial}/r_\mathrm{scale}\) assigned to all halos regardless of mass or redshift, representing the ratio of the virial radius to the scale radius of the dark matter density profile.

  • [metallicity] — The metallicity (relative to Solar) of the IGM.

  • [factor] (default sqrt(0.5d0)) — The ratio of galaxy radius to \(\lambda r_\mathrm{vir}\) in the “fixed” galactic structure radius solver algorithm. This will be applied to any component for which no component-specific value is provided.

  • [factorDisk] (default sqrt(0.5d0)) — The ratio of galaxy radius to \(\lambda r_\mathrm{vir}\) in the “fixed” galactic structure radius solver algorithm for disks. This will override the generic value supplied by [factor] for disks.

  • [factorSpheroid] (default sqrt(0.5d0)) — The ratio of galaxy radius to \(\lambda r_\mathrm{vir}\) in the “fixed” galactic structure radius solver algorithm for spheroids. This will override the generic value supplied by [factor] for spheroids.

  • [radiusFixed] (default var_str('virial')) — The radius to use in the “fixed” galactic structure radius solver algorithm. Allowed options are “virial” and “turnaround”.

  • [overdensity] — The fixed linear overdensity \(\delta\) of the large-scale environment assigned uniformly to all halos; a positive value places halos in an overdense region, while negative values simulate voids.

  • [radiusEnvironment] (default 0.0d0) — The radius of the sphere used to determine the variance in the environmental density.

  • [massEnvironment] (default 1.0d15) — The mass within the sphere sphere used to determine the variance in the environmental density.

  • [densityContrastValue] (default 200.0d0) — The virial density contrast to use in the fixed value model.

  • [densityType] (default var_str('critical')) — The reference density to use in the fixed value virial density contrast model. Either of critical and mean are allowed.

  • [turnAroundOverVirialRadius] (default 2.0d0) — The ratio of the turnaround to virial radii in the fixed value model.

  • [criticalOverdensity] (default (3.0d0/20.0d0)*(12.0d0*Pi)**(2.0d0/3.0d0)) — The value to use for the critical overdensity for collapse of dark matter halos when using a fixed value.

virialOrbitIsotropic

Virial orbits which assumes an isotropic distribution of infall directions and tangential velocities applied to another virial orbit class.

virialOrbitJiang2014

A virial orbits class which selects orbital parameters randomly from the distribution given by Jiang et al. (2015), including the mass and mass-ratio dependence of the distributions. If the virial density contrast definition differs from that used by Jiang et al. (2015) then the orbit is assigned based on Jiang et al. (2015)’s definition and then propagated to the virial radius relevant to the current definition of density contrast.

Methods

  • parametersSelect — Select the parameter set to use for this satellite/host pairing.

Parameters

  • [bRatioLow] (default [+0.049d0,+0.548d0,+1.229d0]) — Values of the \(B\) parameter of the Jiang et al. (2015) orbital velocity distribution for the three host halo mass ranges, and the \(0.0001\)\(0.005\) mass ratio.

  • [bRatioIntermediate] (default [+1.044d0,+1.535d0,+3.396d0]) — Values of the \(B\) parameter of the Jiang et al. (2015) orbital velocity distribution for the three host halo mass ranges, and the \(0.005\)\(0.05\) mass ratio.

  • [bRatioHigh] (default [+2.878d0,+3.946d0,+2.982d0]) — Values of the \(B\) parameter of the Jiang et al. (2015) orbital velocity distribution for the three host halo mass ranges, and the \(0.05\)\(0.5\) mass ratio.

  • [gammaRatioLow] (default [+0.109d0,+0.114d0,+0.110d0]) — Values of the \(\gamma\) parameter of the Jiang et al. (2015) orbital velocity distribution for the three host halo mass ranges, and the \(0.0001\)\(0.005\) mass ratio.

  • [gammaRatioIntermediate] (default [+0.098d0,+0.087d0,+0.050d0]) — Values of the \(\gamma\) parameter of the Jiang et al. (2015) orbital velocity distribution for the three host halo mass ranges, and the \(0.005\)\(0.05\) mass ratio.

  • [gammaRatioHigh] (default [+0.071d0,+0.030d0,-0.012d0]) — Values of the \(\gamma\) parameter of the Jiang et al. (2015) orbital velocity distribution for the three host halo mass ranges, and the \(0.05\)\(0.5\) mass ratio.

  • [sigmaRatioLow] (default [+0.077d0,+0.094d0,+0.072d0]) — Values of the \(\sigma\) parameter of the Jiang et al. (2015) orbital velocity distribution for the three host halo mass ranges, and the \(0.0001\)\(0.005\) mass ratio.

  • [sigmaRatioIntermediate] (default [+0.073d0,+0.083d0,+0.118d0]) — Values of the \(\sigma\) parameter of the Jiang et al. (2015) orbital velocity distribution for the three host halo mass ranges, and the \(0.005\)\(0.05\) mass ratio.

  • [sigmaRatioHigh] (default [+0.091d0,+0.139d0,+0.187d0]) — Values of the \(\sigma\) parameter of the Jiang et al. (2015) orbital velocity distribution for the three host halo mass ranges, and the \(0.05\)\(0.5\) mass ratio.

  • [muRatioLow] (default [+1.220d0,+1.231d0,+1.254d0]) — Values of the \(\mu\) parameter of the Jiang et al. (2015) orbital velocity distribution for the three host halo mass ranges, and the \(0.0001\)\(0.005\) mass ratio.

  • [muRatioIntermediate] (default [+1.181d0,+1.201d0,+1.236d0]) — Values of the \(\mu\) parameter of the Jiang et al. (2015) orbital velocity distribution for the three host halo mass ranges, and the \(0.005\)\(0.05\) mass ratio.

  • [muRatioHigh] (default [+1.100d0,+1.100d0,+1.084d0]) — Values of the \(\mu\) parameter of the Jiang et al. (2015) orbital velocity distribution for the three host halo mass ranges, and the \(0.05\)\(0.5\) mass ratio.

virialOrbitLi2020

A virial orbit class that draws satellite infall orbital parameters from the bimodal velocity distribution of Li et al. (2020) calibrated from cosmological N-body simulations. The distribution shape parameters \(\mu_1\), \(\mu_2\), \(\sigma_1\), and \(a_0\) can be set to tabulated or custom values.

Methods

  • eta — Evaluate the \(\eta\) parameter of the Li et al. (2020) virial orbit distribution function.

Parameters

  • [mu1] (default 1.20d0) — Values of the \(\mu_1\) parameter of the Li et al. (2020) orbital velocity distribution.

  • [mu2] (default 1.04d0) — Values of the \(\mu_2\) parameter of the Li et al. (2020) orbital velocity distribution.

  • [sigma1] (default 0.20d0) — Values of the \(\sigma_1\) parameter of the Li et al. (2020) orbital velocity distribution.

  • [a0] (default 0.89d0) — Values of the \(a_0\) parameter of the Li et al. (2020) orbital velocity distribution.

  • [a1] (default 0.30d0) — Values of the \(a_1\) parameter of the Li et al. (2020) orbital velocity distribution.

  • [a2] (default -3.33d0) — Values of the \(a_2\) parameter of the Li et al. (2020) orbital velocity distribution.

  • [a3] (default 0.56d0) — Values of the \(a_3\) parameter of the Li et al. (2020) orbital velocity distribution.

  • [b1] (default -1.44d0) — Values of the \(b_1\) parameter of the Li et al. (2020) orbital velocity distribution.

  • [b2] (default 9.60d0) — Values of the \(b_2\) parameter of the Li et al. (2020) orbital velocity distribution.

  • [c] (default 0.43d0) — Values of the \(c\) parameter of the Li et al. (2020) orbital velocity distribution.

  • [propagateOrbits] (default .true.) — If true, orbits will be propagated to the virial radius of the host halo. Otherwise, no propagation is performed and orbital velocities will correspond to precisely those from the Li et al. (2020) orbital velocity distribution.

virialOrbitLossCone

A virial orbit class that draws satellite infall orbital parameters using a loss cone model, accounting for the depletion of nearly radial orbits due to merging. The velocity range and resolution of the orbital distribution grid are controlled by the [velocityMinimum], [velocityMaximum], [velocitiesPerUnit], and [massesPerDecade] parameters.

Methods

  • tabulate — Tabulate the orbital velocity distribution.

  • interpolants — Compute interpolating factors in the orbital velocity distribution tables.

  • restoreTable — Restore a tabulated solution from file.

  • storeTable — Store a tabulated solution to file.

Parameters

  • [velocityMinimum] — The minimum velocity (in units of the host virial velocity) for which to compute velocity distributions.

  • [velocityMaximum] — The maximum velocity (in units of the host virial velocity) for which to compute velocity distributions.

  • [countVelocitiesPerUnit] — The number of points per unit of velocity (in units of the host virial velocity) for which to compute velocity distributions.

  • [countMassesPerDecade] — The number of points per decade of mass for which to compute infall properties.

  • [includeInFlightGrowth] (default .true.) — If true, linear growth of the velocity field during the flight of the secondary halo to the primary is included.

  • [haloMassFunctionA] (default 0.707d0) — The parameter \(a\) of the Sheth et al. (2001) halo mass function used in averaging over environment.

  • [haloMassFunctionP] (default 0.300d0) — The parameter \(p\) of the Sheth et al. (2001) halo mass function used in averaging over environment.

  • [haloMassFunctionNormalization] (default 0.322d0) — The normalization parameter \(A\) of the Sheth et al. (2001) halo mass function used in averaging over environment.

  • [velocityDispersionMultiplier] (default 1.0d0) — A multiplier applied to the dispersion of the cosmological velocity field.

virialOrbitMassReduced

A virial orbit class that modifies another virialOrbitClass by accounting for any reduction in mass of the primary halo below its “dark matter-only universe” value.

virialOrbitSpinCorrelated

A virial orbit class which assigns infall directions and tangential velocities directions to an orbit return by another virial orbit class such that the orbital angular momentum of the satellite is correlated with the spin vector of the host. Specifically, the angle, \(\theta\), between the orbital angular momentum of the satellite and the spin of the host is assumed to be distributed such that \(P(\cos \theta) = (1 + \alpha | \lambda | \cos \theta)/2\), where \(|\lambda|\) is the magnitude of the host halo spin, and \(\alpha\) is a parameter.

Parameters

  • [alpha] (default 1.0d0) — The parameter \(\alpha\) which expresses the strength of the correlation between satellite orbital angular momentum and the spin of the host halo.

virialOrbitWetzel2010

A virial orbits class which selects orbital parameters randomly from the distribution given by Wetzel (2011), including the redshift and mass dependence of the distributions. Note that the parameter \(R_1\) can become negative (which is unphysical) for certain regimes of mass and redshift according to the fitting function for \(R_1\) given by Wetzel (2011). Therefore, we enforce \(R_1>0.05\). Similarly, the parameter \(C_1\) can become very large in some regimes which is probably an artifact of the fitting function used rather than physically meaningful (and which causes numerical difficulties in evaluating the distribution). We therefore prevent \(C_1\) from exceeding \(9.999999\)footnoteWe use this value rather than \(10\) since the GSL \(_2F_1\) hypergeometric function fails in some cases when \(C_1\ge 10\). If the virial density contrast definition differs from that used by Wetzel (2011) then the orbit is assigned based on Wetzel (2011)’s definition and then propagated to the virial radius relevant to the current definition of density contrast.