-
Notifications
You must be signed in to change notification settings - Fork 18
Tutorial: Dark matter subhalo evolution
In this tutorial we'll use Galacticus to evolve populations of subhalos within a dark matter halo merger tree and output their properties. No baryonic physics (well, almost no baryonic physics) is included in this model.
If you haven't already installed Galacticus, you can find the installation instructions here.
For this tutorial we'll use the parameters/tutorials/darkMatterOnlySubHalos.xml
parameter file:
$ ./Galacticus.exe parameters/tutorials/darkMatterOnlySubHalos.xml
If everything is working you should see output which looks something like:
##
#### # #
# # # #
# ### # ### ### ### ## ### ## ## ##
# # # # # # # # # # # # # # #
# ### ### # ### # # # # # # #
# # # # # # # # # # # # # #
#### #### ### #### ### ## ### ### #### ##
© 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
2017, 2018, 2019, 2020, 2021
- Andrew Benson
M: Memory: code + nodes + misc = total
M: 22.246Mib + 1.000 b + 9.000 b = 22.246Mib
M: -> Begin multiple tasks
.
.
.
and a file darkMatterOnlySubHalos.hdf5
will have been created. Typically this model will take around XXXX to run, but it may be slower the first time you run it as various power spectra are computed and stored.
You can look at the entire parameter file for this tutorial here. Below we'll explore sections of the file to understand what they do. (Sections that have been explored in previous tutorials, e.g. cosmological parameters, will not be reexamined here.)
<!-- Task -->
<taskMethod value="multi" >
<taskMethod value="powerSpectra" >
<wavenumberMinimum value="1.0e-3"/>
<wavenumberMaximum value="1.0e+2"/>
<pointsPerDecade value="10" />
</taskMethod>
<taskMethod value="haloMassFunction" >
<haloMassMinimum value="1.0e06"/>
<haloMassMaximum value="1.0e15"/>
<pointsPerDecade value="10" />
</taskMethod>
<taskMethod value="evolveForests" />
</taskMethod>
<evolveForestsWorkShareMethod value="cyclic"/>
This block tells Galacticus what task we want it to perform - here we're just asking it to compute the power spectrum, the halo mass function, and then to evolve merger tree forests.
<!-- Structure formation options -->
<linearGrowthMethod value="baryonsDarkMatter" />
<criticalOverdensityMethod value="sphericalCollapseBrynsDrkMttrDrkEnrgy"/>
<virialDensityContrastMethod value="sphericalCollapseBrynsDrkMttrDrkEnrgy"/>
<haloMassFunctionMethod value="shethTormen" >
<a value="0.791"/> <!-- Best fit values from Benson, Ludlow, & Cole (2019). -->
<normalization value="0.302"/>
<p value="0.218"/>
</haloMassFunctionMethod>
<excursionSetBarrierMethod value="remapScale" >
<!-- Remap the barrier height by a constant factor to account for the difference in sigma(M) on large scales introduced by our
choice of using a sharp-in-k-space filter on the power spectrum. -->
<factor value="1.1965" />
<applyTo value="nonRates" />
<!-- Remap the barrier height according to the parameterization of Sheth, Mo, & Tormen (2001) to account for ellipsoidal
collapse. -->
<excursionSetBarrierMethod value="remapShethMoTormen" >
<a value="0.707" />
<b value="0.500" />
<c value="0.600" />
<applyTo value="nonRates" />
<!-- Use the critical overdensity as the barrier height in the excursion set problem. -->
<excursionSetBarrierMethod value="criticalOverdensity"/>
</excursionSetBarrierMethod>
</excursionSetBarrierMethod>
<excursionSetFirstCrossingMethod value="linearBarrier"/>
This block specifies various options related to large scale structure growth. The linear growth function is set to the baryonsDarkMatter
model of Benson (2020), in which the suppression of growth of large wavenumber modes due to baryon pressure is accounted for. Options for solving the excursion set problem are also included here, even though it is not used with the Sheth & Tormen (2002) mass function which we select. It is included since it is required if the mass function is switched to the [Press & Schechter (1974)[http://adsabs.harvard.edu/abs/1974ApJ...187..425P] form used for some non-CDM dark matter models.
<intergalacticMediumStateMethod value="instantReionization">
<reionizationRedshift value="8.0e0" />
<reionizationTemperature value="1.5e4" />
<presentDayTemperature value="1.0e3" />
<intergalacticMediumStateMethod value="recFast"/>
</intergalacticMediumStateMethod>
Here we select a simple model of the evolution of the IGM. The thermal history of the IGM is needed to solve for the growth of large wavenumber modes where baryon pressure delays the growth of structure. This IGM model assumes instant reionization at z=8, heating to a temperature of 15,000K, and cooling to 1,000K by the present day. Prior to reionization the IGM state is computed using the RecFast code.
<!-- Dark matter halo structure options -->
<darkMatterProfileDMOMethod value="heated" >
<darkMatterProfileDMOMethod value="NFW" />
<nonAnalyticSolver value="numerical"/>
</darkMatterProfileDMOMethod>
<darkMatterProfileHeatingMethod value="tidal" />
<darkMatterProfileScaleRadiusMethod value="ludlow2016" >
<C value="700.27000" /> <!-- Best fit values from Johnson, Benson, & Grin (2020). -->
<f value=" 0.07534" />
<timeFormationSeekDelta value=" 0.00000" />
<darkMatterProfileScaleRadiusMethod value="concentration" >
<correctForConcentrationDefinition value="true" />
<darkMatterProfileConcentrationMethod value="diemerKravtsov2014" >
<alpha value="1.12"/>
<beta value="1.69"/>
<eta0 value="6.82"/>
<eta1 value="1.42"/>
<kappa value="0.69"/>
<phi0 value="6.58"/>
<phi1 value="1.37"/>
<scatter value="0.00"/>
</darkMatterProfileConcentrationMethod>
</darkMatterProfileScaleRadiusMethod>
</darkMatterProfileScaleRadiusMethod>
<darkMatterProfileMinimumConcentration value=" 4.0"/>
<darkMatterProfileMaximumConcentration value="100.0"/>
<!-- Concentration model -->
<darkMatterProfileScaleVirialTheoremUnresolvedEnergy value="0.5500"/> <!-- Best fit value from Johnson, Benson, & Grin (2020) -->
<darkMatterProfileScaleVirialTheoremMassExponent value="1.5552"/>
<darkMatterProfileScaleVirialTheoremEnergyBoost value="0.6773"/>
Here we select our model for dark matter halo profiles - we use an NFW profile but allowing for "heating" of the profile as described in Pullen et al. (2016). We also define parameters of the concentration model. In this model scale radii of halos are computed using the random walk approach of Johnson, Benson & Grin (2021). The parameters of that model are given here, along with the parameters of the "fallback" model used for nodes in the merger tree for which the random walk model can not be applied.
<!-- Dark matter halo spin -->
<haloSpinDistributionMethod value="bett2007"> <!-- Values from Benson (2017) -->
<alpha value="1.7091800"/>
<lambda0 value="0.0420190"/>
</haloSpinDistributionMethod>
<spinVitvitskaMassExponent value="0.10475"/> <!-- Best fit value from Benson, Behrens, & Lu (2020) -->
Halo spin parameters are also modeled using a random walk approach Benson, Behrens & Lu (2020) - here we specify the parameters of that random walk model and a "fallback" spin distribution to be used for halos for which the random walk model can not be applied.
<!-- Halo accretion options -->
<accretionHaloMethod value="zero"/>
<!-- Hot halo gas model options -->
<hotHaloMassDistributionMethod value="null" />
<!-- Galactic structure solver options -->
<galacticStructureSolverMethod value="null" />
<darkMatterProfileMethod value="darkMatterOnly"/>
<!-- Galaxy mergers -->
<mergerRemnantSizeMethod value="null"/>
The preceeding block acts to switch off various baryonic physics which we want to exclude from this model.
<!-- Satellite orbit options -->
<virialOrbitMethod value="spinCorrelated">
<alpha value="0.47263" /> <!-- Best fit value from Benson, Behrens, & Lu (2020) -->
<virialOrbitMethod value="jiang2014" >
<!-- Best fit value from Benson, Behrens, & Lu (2020) -->
<bRatioHigh value="+2.88333 +4.06371 +3.86726"/>
<bRatioIntermediate value="+1.05361 +1.56868 +2.89027"/>
<bRatioLow value="+0.07432 +0.54554 +1.04721"/>
<gammaRatioHigh value="+0.07124 +0.04737 -0.01913"/>
<gammaRatioIntermediate value="+0.10069 +0.07821 +0.04231"/>
<gammaRatioLow value="+0.10866 +0.11260 +0.11698"/>
<muRatioHigh value="+1.10168 +1.09639 +1.09819"/>
<muRatioIntermediate value="+1.18205 +1.19573 +1.24581"/>
<muRatioLow value="+1.22053 +1.22992 +1.25528"/>
<sigmaRatioHigh value="+0.09244 +0.14335 +0.21079"/>
<sigmaRatioIntermediate value="+0.07397 +0.09590 +0.10941"/>
<sigmaRatioLow value="+0.07458 +0.09040 +0.06981"/>
</virialOrbitMethod>
</virialOrbitMethod>
<satelliteOrbitStoreOrbitalParameters value="true"/>
When halos first become subhalos they are assigned orbital parameters. The above defines the distribution of those parameters, using the Jiang et al. (2015) model for the distribution of radial and tangential velocities, plus the model of Benson, Behrens & Lu (2020) for the anisotropy of the distribution of orbits.
<!-- Orbiting model of satellites -->
<!-- Values taken from Yang et al. (2020) for their gamma=0 case using the Caterpillar simulations as calibration target -->
<satelliteDynamicalFrictionMethod value="chandrasekhar1943">
<logarithmCoulomb value="1.53"/>
</satelliteDynamicalFrictionMethod>
<satelliteTidalHeatingRateMethod value="gnedin1999" >
<epsilon value="0.33"/>
<gamma value="0.00"/>
</satelliteTidalHeatingRateMethod>
<satelliteTidalStrippingMethod value="zentner2005" >
<efficiency value="2.86"/>
</satelliteTidalStrippingMethod>
Here we define parameters of the various physics models applied to the evolution of subhalos, as outlined in Yang et al. (2020).
<!-- Node evolution and physics -->
<nodeOperatorMethod value="multi">
<!-- Subhalo hierarchy -->
<nodeOperatorMethod value="subsubhaloPromotion" />
<!-- Subhalo orbits -->
<nodeOperatorMethod value="satelliteOrbit" />
<nodeOperatorMethod value="satelliteDynamicalFriction" />
<nodeOperatorMethod value="satelliteTidalMassLoss" />
<nodeOperatorMethod value="satelliteTidalHeating" />
<nodeOperatorMethod value="satelliteMergingRadiusTrigger" >
<radiusVirialFraction value="0.01"/>
</nodeOperatorMethod>
<nodeOperatorMethod value="satelliteDestructionMassThreshold" >
<massDestruction value="=[mergerTreeMassResolutionMethod::massResolution]"/>
<massDestructionFractional value="0.0e0"/>
</nodeOperatorMethod>
</nodeOperatorMethod>
This block applies various physical processes to subhalos.
<!-- Output options -->
<galacticusOutputFileName value="darkMatterOnlySubHalos.hdf5"/>
<mergerTreeOutputterMethod value="multi">
<mergerTreeOutputterMethod value="standard">
<outputReferences value="false"/>
</mergerTreeOutputterMethod>
<mergerTreeOutputterMethod value="analyzer"/>
</mergerTreeOutputterMethod>
<outputTimesMethod value="list">
<redshifts value="0.5"/>
</outputTimesMethod>
<nodePropertyExtractorMethod value="multi">
<nodePropertyExtractorMethod value="nodeIndices" />
<nodePropertyExtractorMethod value="indicesTree" />
<nodePropertyExtractorMethod value="redshiftLastIsolated" />
<nodePropertyExtractorMethod value="radiusTidal" />
<nodePropertyExtractorMethod value="radiusBoundMass" />
<nodePropertyExtractorMethod value="virialProperties" />
<nodePropertyExtractorMethod value="radiusVelocityMaximum"/>
<nodePropertyExtractorMethod value="velocityMaximum" />
<nodePropertyExtractorMethod value="positionOrbital" />
<nodePropertyExtractorMethod value="densityProfile" >
<includeRadii value="true" />
<radiusSpecifiers value="darkMatterScaleRadius:all:all:0.3 darkMatterScaleRadius:all:all:1.0 darkMatterScaleRadius:all:all:3.0 virialRadius:all:all:0.1 virialRadius:all:all:0.3 virialRadius:all:all:1.0"/>
</nodePropertyExtractorMethod>
<nodePropertyExtractorMethod value="projectedDensity" >
<includeRadii value="true" />
<radiusSpecifiers value="darkMatterScaleRadius:all:all:0.3 darkMatterScaleRadius:all:all:1.0 darkMatterScaleRadius:all:all:3.0 virialRadius:all:all:0.1 virialRadius:all:all:0.3 virialRadius:all:all:1.0"/>
</nodePropertyExtractorMethod>
</nodePropertyExtractorMethod>
<outputAnalysisMethod value="multi">
<outputAnalysisMethod value="subhaloMassFunction">
<fileName value="%DATASTATICPATH%/darkMatter/subhaloDistributionsCaterpillar.hdf5"/>
<negativeBinomialScatterFractional value="0.18" /> <!-- Boylan-Kolchin et al. (2010) -->
<virialDensityContrastMethod value="bryanNorman1998" />
<redshift value="0.0" />
</outputAnalysisMethod>
<outputAnalysisMethod value="subhaloRadialDistribution">
<fileName value="%DATASTATICPATH%/darkMatter/subhaloDistributionsCaterpillar.hdf5"/>
<negativeBinomialScatterFractional value="0.18" /> <!-- Boylan-Kolchin et al. (2010) -->
<virialDensityContrastMethod value="bryanNorman1998" />
<redshift value="0.0" />
</outputAnalysisMethod>
<outputAnalysisMethod value="subhaloVMaxVsMass">
<fileName value="%DATASTATICPATH%/darkMatter/subhaloDistributionsCaterpillar.hdf5"/>
<virialDensityContrastMethod value="bryanNorman1998" />
<redshift value="0.0" />
</outputAnalysisMethod>
</outputAnalysisMethod>
Finally we specify the outputs that we want. Here we request a number of additional properties to be output, and also request thee summary analyses (subhalo mass function, Vmax function, and radial distribution - each compared to results from the Caterpillar simulations) to be computed and output.
The main output follows the general form described in the tutorial on dark matter only merger trees, but with some additional properties (subhalo orbital positions, tidal radii, etc.)
In addition, there is now an analyses
group:
-
Tutorials
- Introduction to Galacticus parameter files
- Dark matter halo mass function
- Warm dark matter halo mass function
- Power spectra
- Warm dark matter power spectra
- Dark matter only merger trees
- Subsampling of merger tree branches
- Dark matter only subhalo evolution
- Solving the excursion set problem
- Reionization calculations
- Instantaneous & Non-instantaneous recycling
- Computing Broadband Stellar Luminosities
- Postprocessing of stellar spectra
- Using N-body Merger Trees
- Generating Mock Catalogs with Lightcones
- Constraining Galacticus parameters
- Generating galaxy merger trees
-
How Galacticus works
- Structure Formation Flowchart
- Merger Tree Building Flowchart
- How Galacticus Evolves Halos and Galaxies
- Galaxy Physics Flowchart
- CGM Cooling Physics Flowchart
- Star Formation Physics Flowchart
- Outflow Physics Flowchart
- Galactic Structure Flowchart
- CGM Physics Flowchart
- SMBH Physics Flowchart
- Subhalo Evolution Flowchart
-
Contributing
- Coding conventions
- Coding tutorials
-
Reference models
- Benchmarks and validation scores
- Validation plots and data