.. _physics-nodeOperator: Node Operators ============== Class providing operators that act on merger tree nodes to implement physical processes. Node operators are called at key moments during tree evolution---at tree construction, node initialization, derivative evaluation, node merging, and promotion---to apply physics such as star formation, feedback, black hole growth, and structural evolution. Multiple operators can be stacked in a multi-operator list to apply several physical processes simultaneously. **Default implementation:** ``nodeOperatorNull`` Methods ------- ``nodeInitialize`` → ``void`` Perform initialization of node properties prior to tree evolution. This typically includes initializations related to the evolution of the tree (e.g. growth rates of scale radii, baryonic component initialization). Initializations related to the static structure of the tree (e.g. assigning scale radii, merging orbits, etc.) are typically handled by the ``nodeTreeInitialize`` method. * ``type(treeNode), intent(inout), target :: node`` ``nodeTreeInitialize`` → ``void`` Perform initialization of node properties immediately after tree construction. This typically includes initializations related to the static structure of the tree (e.g. assign scale radii, merging orbits, etc.). Initializations related to evolution of the tree (e.g. growth rates of scale radii, baryonic component initialization) are typically handled by the ``nodeInitialize`` method. * ``type(treeNode), intent(inout), target :: node`` ``nodesMerge`` → ``void`` Apply node-operator-specific physics when two dark matter halo nodes merge, for example redistributing bound mass, transferring orbital energy, or recording merger event metadata. * ``type(treeNode), intent(inout) :: node`` ``nodePromote`` → ``void`` Apply node-operator-specific physics when a node is promoted to replace its parent in the merger tree, for example inheriting parent properties or updating mass and structural parameters. * ``type(treeNode), intent(inout) :: node`` ``galaxiesMerge`` → ``void`` Apply node-operator-specific physics when two galaxies merge within a common dark matter halo, for example triggering starbursts, transferring cold gas, or updating spheroid properties. * ``type(treeNode), intent(inout) :: node`` ``differentialEvolutionPre`` → ``void`` Apply pre-evolution setup operations on a node immediately before the differential equation solver advances its properties, for example resetting accumulators or evaluating cached quantities. * ``type(treeNode), intent(inout) :: node`` ``differentialEvolutionScales`` → ``void`` Set the characteristic scale values for any meta-properties that are evolved by the ODE solver, so that relative tolerances are computed correctly during integration. * ``type(treeNode), intent(inout) :: node`` ``differentialEvolutionAnalytics`` → ``void`` Mark (meta-)properties as analytically solved in differential evolution. * ``type(treeNode), intent(inout) :: node`` ``differentialEvolutionInactives`` → ``void`` Mark (meta-)properties as inactive in differential evolution. * ``type(treeNode), intent(inout) :: node`` ``differentialEvolution`` → ``void`` Evaluate and add derivatives for any node meta-properties that this operator evolves during the ODE integration step, and signal if an interrupt is required. * ``type (treeNode ), intent(inout), target :: node`` * ``logical , intent(inout) :: interrupt`` * ``procedure(interruptTask), intent(inout), pointer :: functionInterrupt`` * ``integer , intent(in ) :: propertyType`` ``differentialEvolutionSolveAnalytics`` → ``void`` Set the values of analytically-solvable properties of a node during differential evolution. * ``type (treeNode), intent(inout) :: node`` * ``double precision , intent(in ) :: time`` ``predeterminedSolveAnalytics`` → ``void`` Set the values of analytically-solvable pre-determined properties of a node. * ``type (treeNode), intent(inout) :: node`` * ``double precision , intent(in ) :: time`` ``differentialEvolutionStepFinalState`` → ``void`` Apply any required corrections or updates to node properties at the completion of each ODE integration step, before the solver accepts or rejects the step. * ``type(treeNode), intent(inout) :: node`` ``differentialEvolutionPost`` → ``void`` Apply post-evolution updates to a node after the ODE solver has advanced all properties to a new time, for example recording derived quantities or checking thresholds. * ``type(treeNode), intent(inout) :: node`` ``differentialEvolutionPostStep`` → ``void`` Apply post-step corrections or diagnostics to a node after each accepted ODE solver step, allowing fine-grained control of properties between accepted integration steps. * ``type (treeNode), intent(inout) :: node`` * ``integer , intent(inout) :: status`` .. _physics-nodeOperatorAgesStellarMassWeighted: ``nodeOperatorAgesStellarMassWeighted`` --------------------------------------- A node operator class that computes the stellar mass-weighted ages of disk, spheroid and nuclear star cluster components. Intended to be paired with the :galacticus-class:`nodePropertyExtractorAgesStellarMassWeighted` property extractor class to extract those ages for output. .. _physics-nodeOperatorAssemblyHistoryHeuristics: ``nodeOperatorAssemblyHistoryHeuristics`` ----------------------------------------- A node operator class that applies heuristics to look for unphysical behavior in merger trees. Specifically, rapid changes in the halo mass from a node to its parent\footnoteThis is only considered for primary progenitors (the jump in mass from a non-primary progenitor to its parent can, of course, be very large), including cases of subhalo promotions, and for the bound mass history of subhalos. are flagged as unphysical. Halos for which the change in mass is less than ``[sigmaThreshold]`` times the uncertainty in the difference of the halo mass between child and parent are treated as being physical. For other halos, the unphysicalness is judged by the heuristic: .. math:: \left| \log \frac{M_2}{M_1} \right| > \alpha \left| \log \frac{t_2}{t_1} \right|, where :math:`\alpha=`\ ``[exponentGrowth]``, :math:`M_1` is the mass of a primary progenitor halo, :math:`M_2` is the mass of its parent *minus any mass resolved in non-primary progenitors*. Essentially, this says that we expect masses to grow (or shrink) no faster that a power-law in cosmic time, with exponent :math:`\alpha`. **Parameters** * ``[exponentGrowth]`` (default ``100.0d0``) — The maximum plausible power-law exponent :math:`\alpha` in the mass growth criterion :math:`|\log(M_2/M_1)| > \alpha |\log(t_2/t_1)|`; primary progenitors that grow faster than this are flagged as unphysical. * ``[sigmaThreshold]`` (default ``5.0d0``) — The number of :math:`\sigma` in halo mass uncertainty below which we ignore changes in halo mass. .. _physics-nodeOperatorBarInstability: ``nodeOperatorBarInstability`` ------------------------------ A node operator class that implements bar instabilities in disks. A fraction of the angular momentum of the material transferred from the disk to the spheroid is retained in the disk as suggested by numerical experiments :cite:p:`klypin_cdm-based_2002`. **Parameters** * ``[luminositiesStellarInactive]`` (default ``.false.``) — If true, stellar luminosities will be treated as inactive properties. .. _physics-nodeOperatorBertschingerMass: ``nodeOperatorBertschingerMass`` -------------------------------- A node operator class that computes the accretion rate onto a halo corresponding to the "Bertschinger" mass. Typically this is the mass corresponding to a spherical top-hat collapse scenario, although in practice this class can be provided with any :galacticus-class:`virialDensityContrastClass`. .. _physics-nodeOperatorBlackHolesAccretion: ``nodeOperatorBlackHolesAccretion`` ----------------------------------- Evolves supermassive black hole masses by computing gas accretion rates (including Bondi and feedback-regulated modes) and integrating them over each timestep, driving AGN feedback that regulates star formation in massive galaxies. **Parameters** * ``[allowNegativeCGMMass]`` (default ``.true.``) — If true, allow negative mass in the :term:`CGM`. If false, rates that would drive the :term:`CGM` mass to be negative are truncated to zero. * ``[angularMomentumAlwaysGrows]`` (default ``.false.``) — Specifies whether or not negative rates of accretion of angular momentum into the hot halo will be treated as positive for the purposes of computing the hot halo angular momentum. .. _physics-nodeOperatorBlackHolesRadialMigration: ``nodeOperatorBlackHolesRadialMigration`` ----------------------------------------- Evolves the positions of off-center black holes toward the galactic center via dynamical friction, modelling the orbital decay of black holes displaced by galaxy mergers and enabling treatment of off-center and wandering black hole populations. .. _physics-nodeOperatorBlackHolesSeed: ``nodeOperatorBlackHolesSeed`` ------------------------------ A node operator class that initializes black hole seeds in newly formed nodes using a :galacticus-class:`blackHoleSeedsClass` object to set the initial black hole mass, enabling subsequent growth through accretion and merger channels. .. _physics-nodeOperatorBlackHolesTripleInteraction: ``nodeOperatorBlackHolesTripleInteraction`` ------------------------------------------- Handles gravitational interactions between three black holes when a third black hole is present in a system already containing a binary, computing hardening of the inner binary and the ejection or capture of the third black hole. .. _physics-nodeOperatorBlackHolesWinds: ``nodeOperatorBlackHolesWinds`` ------------------------------- Computes AGN-driven winds from accreting black holes, coupling the wind mechanical power to the surrounding gas and halo, providing a feedback mechanism that quenches star formation and expels gas from massive galaxies. .. _physics-nodeOperatorBranchMostMassive: ``nodeOperatorBranchMostMassive`` --------------------------------- A node operator class that determines if a node is on the most massive branch of its tree. Intended to be paired with the :galacticus-class:`nodePropertyExtractorBranchMostMassive` property extractor class to extract this meta-data for output. .. _physics-nodeOperatorCGMAccretion: ``nodeOperatorCGMAccretion`` ---------------------------- A node operator class that drives the inflow of gas from the :term:`IGM` into the circumgalactic medium (:term:`CGM`) at each ODE timestep, using a :galacticus-class:`accretionHaloClass` object to compute the mass and angular momentum accretion rates. ``allowNegativeCGMMass`` controls whether the :term:`CGM` gas mass is permitted to go negative (rates driving it negative are optionally truncated to zero). ``angularMomentumAlwaysGrows`` forces :term:`CGM` angular momentum to only increase, preventing reversal from negative accretion rates. **Parameters** * ``[allowNegativeCGMMass]`` (default ``.true.``) — If true, allow negative mass in the :term:`CGM`. If false, rates that would drive the :term:`CGM` mass to be negative are truncated to zero. * ``[angularMomentumAlwaysGrows]`` (default ``.false.``) — Specifies whether or not negative rates of accretion of angular momentum into the hot halo will be treated as positive for the purposes of computing the hot halo angular momentum. .. _physics-nodeOperatorCGMChemistry: ``nodeOperatorCGMChemistry`` ---------------------------- A node operator class solves for chemical evolution in the :term:`CGM`. Chemical abundances are evolved according to a :galacticus-class:`chemicalReactionRateClass` object, with the option of the ionization state of atomic hydrogen being set to equilibrium values. This can be advantageous as the timescales for the reactions controlling the ionization state of atomic hydrogen can become extremely small, resulting in extremely slow evolution of the ODE system. The parameter ``fractionTimescaleEquilibrium`` controls when the equilibrium assumption should be made. Specifically, equilibrium is assume if: .. math:: \tau_\mathrm{H} < f_\mathrm{dyn} \tau_\mathrm{dyn}, where :math:`f_\mathrm{dyn}=`\ ``[fractionTimescaleEquilibrium]``, :math:`\tau_\mathrm{dyn}` is the dynamical time in the halo, and .. math:: \tau_\mathrm{H} = \mathrm{min}\left(\tau_\alpha,\tau_\beta,\tau_\Gamma\right), where :math:`\tau_\alpha=1/\alpha n`, :math:`\tau_\beta=1/\beta n`,\ :math:`\tau_\Gamma=1/\Gamma`, :math:`n` is the number density of hydrogen, and :math:`\alpha`, :math:`\beta`, and :math:`\Gamma` are the collisional ionization, radiative recombination, and photoionization rate coefficients for hydrogen respectively. If the system is judged to be in equilibrium then the neutral fraction of hydrogen is computed as: .. math:: x_\mathrm{H} = \frac{ \tau_\Gamma^{-1} + \tau_\alpha^{-1} +2 \tau_\beta^{-1} - \sqrt{ \tau_\Gamma^{-2} +2 \tau_\alpha^{-1} \tau_\Gamma^{-1} + \tau_\alpha^{-2} + 4 \tau_\beta^{-1} \tau_\Gamma^{-1} } }{ 2 \tau_\alpha^{-1} + \tau_\beta^{-1} }. The abundances of H, H\ :math:`^+`, and e\ :math:`^-` are then fixed according to this fraction, and reaction rates for them are set to zero. **Methods** * ``atomicEquilibrium`` — Determine if equilibrium should be assumed for atomic abundances. * ``computeState`` — Compute the state of the chemical system. **Parameters** * ``[fractionTimescaleEquilibrium]`` (default ``0.0d0``) — The fraction of the halo dynamical time which, if atomic chemistry timescales are smaller than, switch to an equilibrium calculation of atomic abundances. .. _physics-nodeOperatorCGMColdModeInflow: ``nodeOperatorCGMColdModeInflow`` --------------------------------- A node operator class that transfers cold-mode infalling gas from the :term:`CGM` into a galaxy component at each ODE timestep, using a :galacticus-class:`coldModeInfallRateClass` to compute the mass flux and a :galacticus-class:`coolingInfallTorqueClass` for the associated angular momentum. ``component`` selects the destination (disk or spheroid); ``coolingFrom`` selects whether the angular momentum of infalling gas is computed from the ``currentNode`` or the ``formationNode``. **Parameters** * ``[component]`` — The component to which cooling gas should be directed. * ``[coolingFrom]`` (default ``var_str('currentNode')``) — Specifies whether the angular momentum of cooling gas should be computed from the ``currentNode`` or the ``formationNode``. .. _physics-nodeOperatorCGMCoolingHeating: ``nodeOperatorCGMCoolingHeating`` --------------------------------- A node operator class that drives cooling-driven gas infall from the :term:`CGM` into a galaxy component and, optionally, heating-driven gas expulsion. ``component`` selects the destination (disk or spheroid); ``coolingFrom`` specifies whether angular momentum is computed from ``currentNode`` or ``formationNode``; ``excessHeatDrivesOutflow`` enables AGN/stellar heating to expel gas from the :term:`CGM`; ``rateMaximumExpulsion`` caps the outflow rate. Cooling rates and angular momenta are supplied by :galacticus-class:`coolingRateClass` and :galacticus-class:`coolingSpecificAngularMomentumClass`. **Parameters** * ``[component]`` — The component to which cooling gas should be directed. * ``[coolingFrom]`` (default ``var_str('currentNode')``) — Specifies whether the angular momentum of cooling gas should be computed from the ``currentNode`` or the ``formationNode``. * ``[excessHeatDrivesOutflow]`` (default ``.true.``) — Specifies whether heating of the halo in excess of its cooling rate will drive an outflow from the halo. * ``[rateMaximumExpulsion]`` (default ``1.0d0``) — Specifies the maximum rate at which mass can be expelled from the hot halo in units of the inverse halo dynamical time. .. _physics-nodeOperatorCGMOuterRadiusRamPressureStripping: ``nodeOperatorCGMOuterRadiusRamPressureStripping`` -------------------------------------------------- A node operator class that evolves the :term:`CGM` outer radius in response to ram pressure stripping. .. _physics-nodeOperatorCGMOuterRadiusVirialRadius: ``nodeOperatorCGMOuterRadiusVirialRadius`` ------------------------------------------ Sets the outer boundary of the circumgalactic medium (:term:`CGM`) equal to the halo virial radius as computed by a :galacticus-class:`darkMatterHaloScaleClass` object, analytically enforcing this constraint during differential evolution. **Parameters** * ``[coreRadiusOverVirialRadius]`` (default ``0.3d0``) — The core radius in the hot halo density profile in units of the virial radius. .. _physics-nodeOperatorCGMOutflowReincorporation: ``nodeOperatorCGMOutflowReincorporation`` ----------------------------------------- A node operator class that reincorporates gas previously ejected by stellar feedback back into the :term:`CGM` hot gas reservoir, using a :galacticus-class:`hotHaloOutflowReincorporationClass` to compute the reincorporation rate. ``includeSatellites`` controls whether satellite halos also have their outflowing gas reincorporated, or whether reincorporation is applied only to central galaxies. **Parameters** * ``[includeSatellites]`` (default ``.true.``) — If true, perform reincorporation for all galaxies. Otherwise, reincorporation is performed only for central galaxies. * ``[outflowToColdMode]`` (default ``.false.``) — If true, outflows are reincorporated into the cold mode component. Otherwise they are reincorporated into the hot mode component. .. _physics-nodeOperatorCGMStarvation: ``nodeOperatorCGMStarvation`` ----------------------------- A node operator class that removes :term:`CGM` gas from subhalos at node merger events, simulating environmental gas starvation. ``starveOutflowsOnly`` limits removal to outflowing gas only, transferring it to the host halo's :term:`CGM` instead of destroying it. ``fractionBaryonLimitInNodeMerger`` optionally trims the merged halo's :term:`CGM` hot gas (and associated angular momentum, abundances, and chemicals proportionally) to enforce the universal baryon fraction at node mergers. **Parameters** * ``[starveOutflowsOnly]`` (default ``.false.``) — If true, only starve outflowing gas by transferring it to the :term:`CGM` of the host halo. * ``[fractionBaryonLimitInNodeMerger]`` (default ``.false.``) — Controls whether the :term:`CGM` gas content of nodes should be limited to not exceed the universal baryon fraction at node merger events. If set to ``true``, :term:`CGM` hot gas (and angular momentum, abundances, and chemicals proportionally) will be removed from the merged halo to the unaccreted gas reservoir to limit the baryonic mass to the universal baryon fraction where possible. .. _physics-nodeOperatorCleanSubsampleStubs: ``nodeOperatorCleanSubsampleStubs`` ----------------------------------- A node operator class that removes stub branches left in merger trees by the subsampling algorithm, which retains only a statistical subset of minor-progenitor branches. ``factorMassGrowthConsolidate`` sets the maximum allowed mass growth factor between adjacent stub nodes for consolidation (non-positive values disable consolidation). This operator should be applied before any physics operators that depend on correct tree topology. **Parameters** * ``[factorMassGrowthConsolidate]`` (default ``0.0d0``) — The maximum factor by which the mass is allowed to grow between child and parent when consolidating nodes. A non-positive value prevents consolidation. .. _physics-nodeOperatorConstrainedBranch: ``nodeOperatorConstrainedBranch`` --------------------------------- Propagates the constrained-branch flag from a node to its promoted descendant during node promotion events, ensuring that constraint metadata (e.g., from N-body simulations) is preserved as halos evolve between timesteps. .. _physics-nodeOperatorCoolingEnergyRadiated: ``nodeOperatorCoolingEnergyRadiated`` ------------------------------------- A node operator class that accumulates an estimate of the energy radiated from the hot halo due to cooling following the model of :cite:t:`benson_galaxy_2010-1`. .. _physics-nodeOperatorCosmicTime: ``nodeOperatorCosmicTime`` -------------------------- Evolves the cosmic time property of each node analytically during differential evolution, providing a fundamental time-tracking mechanism used by other node operators and analyses. .. _physics-nodeOperatorDarkMatterProfileInitialize: ``nodeOperatorDarkMatterProfileInitialize`` ------------------------------------------- Initializes the dark matter profile of each halo node at tree initialization time, setting up the profile state required by downstream physics calculations that depend on halo structure. .. _physics-nodeOperatorDarkMatterProfilePromptCusps: ``nodeOperatorDarkMatterProfilePromptCusps`` -------------------------------------------- A node operator class that evaluates the properties of prompt cusps following the model of :cite:t:`delos_cusp-halo_2025`, with a log-normal scatter of :math:`\mu \exp(-1/\sigma_0)` dex added to the cusp amplitude, where :math:`\mu=`\ ``[coefficientScatter]``. **Methods** * ``sigma`` — Evaluate :math:`\sigma_j^2 = \int_0^\infty \frac{\mathrm{d}k}{k} \mathcal{P}(k,t) k^{2j}` where :math:`\mathcal{P}(k) = k^3 P(k) / 2 \pi^2` is the dimensionless form of the power spectrum. **Parameters** * ``[nonConvergenceIsFatal]`` (default ``.true.``) — If true, failure to converge on a solution for the scale radius, :math:`r_\mathrm{s}`, will result in a fatal error. Otherwise, only warnings are issued. * ``[alpha]`` (default ``24.0d0``) — The coefficient, :math:`\alpha` of the cusp amplitude, :math:`A`, in the peak-cusp connection of the :cite:t:`delos_cusp-halo_2025` prompt cusp model. * ``[beta]`` (default ``7.3d0``) — The coefficient, :math:`\beta`, of the cusp mass, :math:`m`, in the peak-cusp connection of the :cite:t:`delos_cusp-halo_2025` prompt cusp model. * ``[C]`` (default ``0.8d0``) — The coefficient, :math:`C`, of the cusp :math:`A`--:math:`m` relation in the :cite:t:`delos_cusp-halo_2025` prompt cusp model. * ``[p]`` (default ``1.9d0``) — The exponent, :math:`p`, of the cusp :math:`A`--:math:`m` relation in the :cite:t:`delos_cusp-halo_2025` prompt cusp model. * ``[kappa]`` (default ``4.5d0``) — The parameter, :math:`\kappa`, of the mass growth factor in the :cite:t:`delos_cusp-halo_2025` prompt cusp model. * ``[coefficientScatter]`` (default ``0.195d0``) — The parameter, :math:`\mu`, in the expression for the scatter in cusp amplitude. .. _physics-nodeOperatorDarkMatterProfileScaleInterpolate: ``nodeOperatorDarkMatterProfileScaleInterpolate`` ------------------------------------------------- A node operator class that causes dark matter profile scale radius to be interpolated linearly between child and parent nodes. For primary progenitor nodes :math:`\dot{r}_\mathrm{s} = (r_{\mathrm{s},i+1}-r_{\mathrm{s},i})/(t_{i+1}-t_i)`, where :math:`r_{\mathrm{s},i}` is the scale radius of the dark matter profile of the node in the initialized tree, :math:`r_{\mathrm{s},i+1}` is the spin of its parent node, and :math:`t_i` and :math:`t_{i+1}` are the corresponding times. For non-primary progenitors the rate of change is set to zero, i.e. :math:`\dot{r}_\mathrm{s}=0`. .. _physics-nodeOperatorDarkMatterProfileScaleSet: ``nodeOperatorDarkMatterProfileScaleSet`` ----------------------------------------- A node operator class that initializes and maintains the dark matter profile scale radius for each halo using a :galacticus-class:`darkMatterProfileScaleRadiusClass` object. ``factorReset`` controls the multiplicative factor by which a halo mass must grow before its scale radius is recomputed. ``forward`` selects whether scale radii are assigned by walking forward along the branch (until mass exceeds ``factorReset`` times the previously computed value) or backward (until mass falls below :math:`1/`\ ``factorReset`` of the previous value). **Parameters** * ``[factorReset]`` (default ``0.0d0``) — The factor by which a node must increase in mass before its scale radius is reset. * ``[forward]`` (default ``.true.``) — If true, updates to the scale radius are determined by walking forward along the branch until the mass exceeds by ``[factor]`` that for which the scale radius was last computed. If false, updates are computed by walking backward along the branch until the mass is less than :math:`1/`\ ``[factor]`` of that for which the scale radius was last computed. .. _physics-nodeOperatorDarkMatterProfileShapeInterpolate: ``nodeOperatorDarkMatterProfileShapeInterpolate`` ------------------------------------------------- A node operator class that causes dark matter profile shape parameter to be interpolated linearly between child and parent nodes. For primary progenitor nodes :math:`\dot{\alpha} = (\alpha_{i+1}-\alpha_{i})/(t_{i+1}-t_i)`, where :math:`\alpha_{i}` is the shape parameter of the dark matter profile of the node in the initialized tree, :math:`\alpha_{i+1}` is the spin of its parent node, and :math:`t_i` and :math:`t_{i+1}` are the corresponding times. For non-primary progenitors the rate of change is set to zero, i.e. :math:`\dot{\alpha}=0`. .. _physics-nodeOperatorDarkMatterProfileShapeSet: ``nodeOperatorDarkMatterProfileShapeSet`` ----------------------------------------- Sets the dark matter profile shape parameter for each halo using a :galacticus-class:`darkMatterProfileShapeClass` object, updating this parameter at tree initialization and node promotion events. **Parameters** * ``[factorReset]`` (default ``0.0d0``) — The factor by which a node must increase in mass before its scale radius is reset. * ``[forward]`` (default ``.true.``) — If true, updates to the scale radius are determined by walking forward along the branch until the mass exceeds by ``[factor]`` that for which the scale radius was last computed. If false, updates are computed by walking backward along the branch until the mass is less than :math:`1/`\ ``[factor]`` of that for which the scale radius was last computed. .. _physics-nodeOperatorDarkMatterProfileSoliton: ``nodeOperatorDarkMatterProfileSoliton`` ---------------------------------------- A node operator class that evaluates the :term:`FDM` solitonic core–halo relation, following Equation (15) of :cite:t:`chan_diversity_2022`. The core mass is initialized to this relation, and subsequently evolved differentially following the time deriative of this equation (thereby allowing other contributions to the evolution of the core mass to be applied). **Methods** * ``radiusMerge`` — Compute the radius at which the satellite will be merged in FDM models. **Parameters** * ``[toleranceRelativeVelocityDispersion]`` (default ``1.0d-6``) — The relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[toleranceRelativeVelocityDispersionMaximum]`` (default ``1.0d-3``) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[recordMergedSubhaloProperties]`` (default ``.false.``) — If true, record the orbital properties of subhalo that merge. * ``[recordFirstLevelOnly]`` (default ``.false.``) — If true, record only mergers with first-level subhalos relative to the host. .. _physics-nodeOperatorDiskRadiusPowerLaw: ``nodeOperatorDiskRadiusPowerLaw`` ---------------------------------- A node operator that sets the disk scale radius using an empirical broken power law in stellar mass, :math:`r_\mathrm{s} = \gamma \left(M_\star/\mathrm{M}_\odot\right)^\alpha \left[1 + (M_\star/M_0)^{\beta-\alpha}\right]`, calibrated to observations (default parameters from :cite:author:`shen_size_2003` :cite:year:`shen_size_2003` for late-type galaxies). ``alpha`` and ``beta`` are the low- and high-mass exponents, ``gamma`` is the normalization, and ``massPivot`` is the transition mass :math:`M_0`. The radius is updated at node initialization, after mergers, and when the ODE is solved analytically. **Methods** * ``update`` — Update the disk radius to be consistent with its stellar mass. **Parameters** * ``[alpha]`` (default ``0.14d0``) — Exponent :math:`\alpha` in the power law fit. * ``[beta]`` (default ``0.39d0``) — Exponent :math:`\beta` in the power law fit. * ``[gamma]`` (default ``5.958d-5``) — Coefficient :math:`\gamma` in the power law fit. * ``[massPivot]`` (default ``3.98d10``) — Pivot mass :math:`M_0` in the power law fit. .. _physics-nodeOperatorDiskVerySimpleAnalyticSolver: ``nodeOperatorDiskVerySimpleAnalyticSolver`` -------------------------------------------- A node operator class that analytically integrates the evolution of satellite disks for the :galacticus-class:`nodeComponentDiskVerySimple` disk component. At the start of each ODE step the timescales for fuel depletion, star formation and outflow are computed; the disk gas and stellar masses (and optionally their abundances), together with the host hot halo's outflowed mass and abundances, are then provided as closed-form analytic solutions during the integration. Satellites that are too small to ever be of interest, and that will not merge before the present day, are pruned from the tree at this point. **Parameters** * ``[pruneMassGas]`` (default ``0.0d0``) — Gas mass below which the analytic solver will prune a satellite from the tree. * ``[pruneMassStars]`` (default ``0.0d0``) — Stellar mass below which the analytic solver will prune a satellite from the tree. * ``[trackAbundances]`` (default ``.false.``) — If true, also analytically evolve disk and outflowed abundances. .. _physics-nodeOperatorDMOInterpolate: ``nodeOperatorDMOInterpolate`` ------------------------------ A node operator class that interpolates the ":term:`dark matter-only universe`" mass of the halo linearly between child and parent nodes. .. _physics-nodeOperatorDMOUninterpolated: ``nodeOperatorDMOUninterpolated`` --------------------------------- Keeps the dark matter only uninterpolated (:term:`dark matter-only universe`) mass fixed at its current value between node promotion events, preventing interpolation-induced drift and ensuring mass consistency during tree evolution. .. _physics-nodeOperatorEmpiricalCentralDisk: ``nodeOperatorEmpiricalCentralDisk`` ------------------------------------ A node operator class that inserts an empirical evolutionary history for a central disk galaxy growing at a constant specific star formation rate :math:`\phi_\star` (``rateStarFormationSpecific``) to a final stellar mass ``massStellarFinal`` at the root node. Angular momentum growth is parameterized by ``angularMomentumSpecificFinal`` and ``rateAngularMomentumSpecificSpecific``. Useful for controlled experiments embedding prescribed disk galaxies in merger trees. **Parameters** * ``[massStellarFinal]`` — The final stellar mass of the disk galaxy. * ``[rateStarFormationSpecific]`` — The specific star formation rate of the disk galaxy. * ``[angularMomentumSpecificFinal]`` — The final specific angular momentum of the disk galaxy. * ``[rateAngularMomentumSpecificSpecific]`` — The specific growth rate of the specific angular momentum of the disk galaxy. .. _physics-nodeOperatorEmpiricalGalaxyUniverseMachine: ``nodeOperatorEmpiricalGalaxyUniverseMachine`` ---------------------------------------------- A node operator that inserts an empirical model of the formation history of a galaxy. Mass evolution is modeled using the **UniverseMachine** :cite:p:`behroozi_universemachine_2019` correlation between galaxy growth and dark matter halo assembly. The **UniverseMachine** fits are used only for redshifts less than ``[redshiftMaximum]``, and for halo masses above ``[massHaloMinimum]``. Outside of those ranges, no galaxy is inserted. **Methods** * ``scaling`` — Compute the scaling of **UniverseMachine** parameters with redshift. * ``stellarMassHaloMassRelation`` — Evaluate the stellar mass--halo mass relation. * ``update`` — Update the stellar mass of the galaxy. **Parameters** * ``[massStellarFinal]`` (default ``-1.0d0``) — If positive, rescale the **UniverseMachine** fitting functions to match this final mass. A negative value indicates the final mass of the galaxy will be determined by **UniverseMachine** fits. * ``[fractionMassSpheroid]`` (default ``1.0d0``) — Sets the fraction of galaxy mass belonging to the spheroid component. * ``[fractionMassDisk]`` (default ``0.0d0``) — Sets the fraction of galaxy mass belonging to the disk component. * ``[epsilon_0]`` (default ``-1.435d0``) — Parameter :math:`\epsilon_0` of the **UniverseMachine** fits. * ``[epsilon_a]`` (default ``+1.831d0``) — Parameter :math:`\epsilon_a` of the **UniverseMachine** fits. * ``[epsilon_lna]`` (default ``+1.368d0``) — Parameter :math:`\epsilon_{\ln a}` of the **UniverseMachine** fits. * ``[epsilon_z]`` (default ``-0.217d0``) — Parameter :math:`\epsilon_0` of the **UniverseMachine** fits. * ``[M_0]`` (default ``+12.04d0``) — Parameter :math:`M_0` of the **UniverseMachine** fits. * ``[M_a]`` (default ``+4.556d0``) — Parameter :math:`M_a` of the **UniverseMachine** fits. * ``[M_lna]`` (default ``+4.417d0``) — Parameter :math:`M_{\ln a}` of the **UniverseMachine** fits. * ``[M_z]`` (default ``-0.731d0``) — Parameter :math:`M_z` of the **UniverseMachine** fits. * ``[alpha_0]`` (default ``+1.963d0``) — Parameter :math:`\alpha_0` of the **UniverseMachine** fits. * ``[alpha_a]`` (default ``-2.316d0``) — Parameter :math:`\alpha_a` of the **UniverseMachine** fits. * ``[alpha_lna]`` (default ``-1.732d0``) — Parameter :math:`\alpha_{\ln a}` of the **UniverseMachine** fits. * ``[alpha_z]`` (default ``+0.178d0``) — Parameter :math:`\alpha_z` of the **UniverseMachine** fits. * ``[beta_0]`` (default ``+0.482d0``) — Parameter :math:`\beta_0` of the **UniverseMachine** fits. * ``[beta_a]`` (default ``-0.841d0``) — Parameter :math:`\beta_a` of the **UniverseMachine** fits. * ``[beta_z]`` (default ``-0.471d0``) — Parameter :math:`\beta_0` of the **UniverseMachine** fits. * ``[delta_0]`` (default ``+0.411d0``) — Parameter :math:`\delta_0` of the **UniverseMachine** fits. * ``[gamma_0]`` (default ``-1.034d0``) — Parameter :math:`\gamma_0` of the **UniverseMachine** fits. * ``[gamma_a]`` (default ``-3.100d0``) — Parameter :math:`\gamma_a` of the **UniverseMachine** fits. * ``[gamma_z]`` (default ``-1.055d0``) — Parameter :math:`\gamma_z` of the **UniverseMachine** fits. * ``[redshiftMaximum]`` (default ``10.0d0``) — The maximum redshift at which UniverseMachine fits will be applied. * ``[massHaloMinimum]`` (default ``1.0d10``) — The minimum halo mass at which UniverseMachine fits will be applied. .. _physics-nodeOperatorEmpiricalMassiveElliptical: ``nodeOperatorEmpiricalMassiveElliptical`` ------------------------------------------ A node operator class that inserts an empirical evolutionary history for a massive elliptical galaxy growing at a constant specific star formation rate :math:`\phi_\star` (``rateStarFormationSpecific``) to a final stellar mass ``massStellarFinal``. Optional angular momentum growth is set by ``angularMomentumPseudoSpecificFinal`` and ``rateAngularMomentumPseudoSpecificSpecific``; half-mass radius evolution is set by ``radiusFinal`` and ``rateRadiusSpecific``. **Parameters** * ``[massStellarFinal]`` — The final stellar mass of the elliptical galaxy. * ``[rateStarFormationSpecific]`` — The specific star formation rate of the elliptical galaxy. * ``[angularMomentumPseudoSpecificFinal]`` — The final specific pseudo-angular momentum of the elliptical galaxy. * ``[rateAngularMomentumPseudoSpecificSpecific]`` — The specific growth rate of the specific pseudo-angular momentum of the elliptical galaxy. * ``[radiusFinal]`` — The final radius of the elliptical galaxy. * ``[rateRadiusSpecific]`` — The specific growth rate of the radius of the elliptical galaxy. .. _physics-nodeOperatorEvolutionOutput: ``nodeOperatorEvolutionOutput`` ------------------------------- A node operator class that records the complete evolutionary trajectory of each node to an XML file at each ODE post-step, for debugging and detailed analysis. ``outputFileName`` specifies the output file (default: ``mergerTreeEvolution.xml``); a ``galacticFilter`` selects which nodes to record (default: all nodes). Useful for inspecting how galaxy properties evolve between output snapshots. **Parameters** * ``[outputFileName]`` (default ``var_str('mergerTreeEvolution.xml')``) — The name of the file to which merger tree evolution should be output. .. _physics-nodeOperatorExcursion: ``nodeOperatorExcursion`` ------------------------- A node operator class that collects and stores the (infimum of the) excursion corresponding to the mass accretion history for each node. .. _physics-nodeOperatorFiltered: ``nodeOperatorFiltered`` ------------------------ A node operator class that applies a collection of child :galacticus-class:`nodeOperatorClass` objects only to nodes that pass a :galacticus-class:`galacticFilterClass` test, enabling conditional application of physical processes based on node properties. **Methods** * ``tabulate`` — Tabulate the virial density contrast as a function of mass and time. * ``restoreTable`` — Restore a tabulated solution from file. * ``storeTable`` — Store a tabulated solution to file. **Parameters** * ``[velocityCharacteristic]`` (default ``250.0d0``) — The velocity scale at which the :term:`SNe`-driven outflow rate equals the star formation rate in disks. * ``[exponent]`` (default ``3.5d0``) — The velocity scaling of the :term:`SNe`-driven outflow rate in disks. * ``[fraction]`` (default ``0.01d0``) — The normalization :math:`f` of the outflow rate relative to the star formation rate at a reference halo velocity of 200 km/s and expansion factor of 1, setting the overall mass-loading amplitude of the halo-scaling feedback model. * ``[exponentVelocity]`` (default ``-2.0d0``) — The exponent of virial velocity in the outflow rate in disks. * ``[exponentRedshift]`` (default ``0.0d0``) — The power-law exponent of the cosmological expansion factor :math:`(1+z)` in the halo-scaling outflow rate, allowing the mass-loading factor to evolve with redshift; a value of zero gives no redshift evolution. * ``[toleranceRelativeVelocityDispersion]`` (default ``1.0d-6``) — The relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[toleranceRelativeVelocityDispersionMaximum]`` (default ``1.0d-3``) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[radiusNormalization]`` (default ``3.3d-6``) — The initial value appearing in the radius-mass relation * ``[toleranceAbsoluteMass]`` (default ``1.0d-6``) — The mass tolerance used to judge whether the nuclear star cluster is physically plausible. * ``[toleranceRelativeMetallicity]`` (default ``1.0d-4``) — The metallicity tolerance for ODE solution. * ``[inactiveLuminositiesStellar]`` (default ``.false.``) — Specifies whether or not nuclear star cluster stellar luminosities are inactive properties (i.e. do not appear in any ODE being solved). * ``[scaleRelativeMass]`` (default ``1.0d-2``) — The mass scale, relative to the total mass of the node, below which calculations in the delayed very simple hot halo component are allowed to become inaccurate. * ``[starveSatellites]`` (default ``.false.``) — Specifies whether or not the hot halo should be removed ("starved") when a node becomes a satellite. * ``[starveSatellitesOutflowed]`` (default ``.false.``) — Specifies whether or not the outflowed hot halo should be removed ("starved") when a node becomes a satellite. * ``[outflowReturnOnFormation]`` (default ``.false.``) — Specifies whether or not outflowed gas should be returned to the hot reservoir on halo formation events. * ``[angularMomentumAlwaysGrows]`` (default ``.false.``) — Specifies whether or not negative rates of accretion of angular momentum into the hot halo will be treated as positive for the purposes of computing the hot halo angular momentum. * ``[fractionBaryonLimitInNodeMerger]`` (default ``.false.``) — Controls whether the hot gas content of nodes should be limited to not exceed the universal baryon fraction at node merger events. If set to ``true``, hot gas (and angular momentum, abundances, and chemicals proportionally) will be removed from the merged halo to the unaccreted gas reservoir to limit the baryonic mass to the universal baryon fraction where possible. * ``[scaleAbsoluteMass]`` (default ``100.0d0``) — The absolute mass scale below which calculations in the very simple disk component are allowed to become inaccurate. * ``[toleranceAbsoluteMass]`` (default ``1.0d-6``) — The mass tolerance used to judge whether the disk is physically plausible. * ``[toleranceAbsoluteMass]`` (default ``1.0d-6``) — The mass tolerance used to judge whether the disk is physically plausible. * ``[toleranceRelativeMetallicity]`` (default ``1.0d-4``) — The metallicity tolerance for ODE solution. * ``[radiusStructureSolver]`` (default ``1.0d0``) — The radius (in units of the standard scale length) to use in solving for the size of the disk. * ``[structureSolverUseCole2000Method]`` (default ``.false.``) — If true, use the method described in :cite:t:`cole_hierarchical_2000` to correct for difference between thin disk and spherical mass distributions when solving for disk radii. * ``[diskNegativeAngularMomentumAllowed]`` (default ``.true.``) — Specifies whether or not negative angular momentum is allowed for the disk. * ``[inactiveLuminositiesStellar]`` (default ``.false.``) — Specifies whether or not disk stellar luminosities are inactive properties (i.e. do not appear in any ODE being solved). * ``[postStepZeroNegativeMasses]`` (default ``.true.``) — If true, negative masses will be zeroed after each ODE step. Note that this can lead to non-conservation of mass. * ``[ratioAngularMomentumSolverRadius]`` (default ``ratioAngularMomentumSolverRadiusDefault``) — The assumed ratio of the specific angular momentum at the structure solver radius to the mean specific angular momentum of the standard disk component. * ``[scaleAbsoluteMass]`` (default ``100.0d0``) — The absolute mass scale below which calculations in the very simple spheroid component are allowed to become inaccurate. * ``[toleranceAbsoluteMass]`` (default ``1.0d-6``) — The mass tolerance used to judge whether the spheroid is physically plausible. * ``[efficiencyEnergeticOutflow]`` (default ``1.0d-2``) — The proportionality factor relating mass outflow rate from the spheroid to the energy input rate divided by :math:`V_\mathrm{spheroid}^2`. * ``[toleranceRelativeMetallicity]`` (default ``1.0d-4``) — The metallicity tolerance for ODE solution. * ``[toleranceAbsoluteMass]`` (default ``1.0d-6``) — The mass tolerance used to judge whether the spheroid is physically plausible. * ``[inactiveLuminositiesStellar]`` (default ``.false.``) — Specifies whether or not spheroid stellar luminosities are inactive properties (i.e. do not appear in any ODE being solved). * ``[postStepZeroNegativeMasses]`` (default ``.true.``) — If true, negative masses will be zeroed after each ODE step. Note that this can lead to non-conservation of mass. * ``[ratioAngularMomentumScaleRadius]`` (default ``ratioAngularMomentumScaleRadiusDefault``) — The assumed ratio of the specific angular momentum at the scale radius to the mean specific angular momentum of the standard spheroid component. * ``[outputMergers]`` (default ``.false.``) — Determines whether or not properties of black hole mergers will be output. * ``[fileNames]`` — The name of the file(s) from which merger tree data should be read when using the ``[mergerTreeConstruct]``\ :math:`=`\ ``read`` tree construction method. * ``[forestSizeMaximum]`` (default ``0_c_size_t``) — The maximum number of nodes allowed in a forest before it will be broken up into trees and processed individually. A value of 0 implies that forests should never be split. * ``[presetMergerTimes]`` (default ``.true.``) — Specifies whether merging times for subhalos should be preset when reading merger trees from a file. * ``[presetMergerNodes]`` (default ``.true.``) — Specifies whether the target nodes for mergers should be preset (i.e. determined from descendant nodes). If they are not, merging will be with each satellite's host node. * ``[presetSubhaloMasses]`` (default ``.true.``) — Specifies whether subhalo mass should be preset when reading merger trees from a file. * ``[subhaloAngularMomentaMethod]`` (default ``var_str('summation')``) — Specifies how to account for subhalo angular momentum when adding subhalo mass to host halo mass. * ``[presetSubhaloIndices]`` (default ``.true.``) — Specifies whether subhalo indices should be preset when reading merger trees from a file. * ``[presetPositions]`` (default ``.true.``) — Specifies whether node positions should be preset when reading merger trees from a file. * ``[presetScaleRadii]`` (default ``.true.``) — Specifies whether node scale radii should be preset when reading merger trees from a file. * ``[scaleRadiiFailureIsFatal]`` (default ``.true.``) — Specifies whether failure to set a node scale radii should be regarded as a fatal error. (If not, a fallback method to set scale radius is used in such cases.) * ``[presetScaleRadiiConcentrationMinimum]`` (default ``3.0d0``) — The lowest concentration (:math:`c=r_\mathrm{vir}/r_\mathrm{s}`) allowed when setting scale radii, :math:`r_\mathrm{s}`. * ``[presetScaleRadiiConcentrationMaximum]`` (default ``60.0d0``) — The largest concentration (:math:`c=r_\mathrm{vir}/r_\mathrm{s}`) allowed when setting scale radii, :math:`r_\mathrm{s}`. * ``[presetScaleRadiiMinimumMass]`` (default ``0.0d0``) — The minimum halo mass for which scale radii should be preset (if ``[presetScaleRadii]``\ :math:`=`\ ``true``). * ``[presetUnphysicalAngularMomenta]`` (default ``.false.``) — When reading merger trees from file and presetting halo angular momenta, detect unphysical (<=0) angular momenta and preset them using the selected halo spin method. * ``[presetAngularMomenta]`` (default ``.true.``) — Specifies whether node angular momenta should be preset when reading merger trees from a file. * ``[presetAngularMomenta3D]`` (default ``.false.``) — Specifies whether node 3-D angular momenta vectors should be preset when reading merger trees from a file. * ``[presetOrbits]`` (default ``.true.``) — Specifies whether node orbits should be preset when reading merger trees from a file. * ``[presetOrbitsSetAll]`` (default ``.true.``) — Forces all orbits to be set. If the computed orbit does not cross the virial radius, then select one at random instead. * ``[presetOrbitsAssertAllSet]`` (default ``.true.``) — Asserts that all virial orbits must be preset. If any can not be set, Galacticus will stop. * ``[presetOrbitsBoundOnly]`` (default ``.true.``) — Specifies whether only bound node orbits should be set. * ``[beginAt]`` (default ``-1_kind_int8``) — Specifies the index of the tree to begin at. (Use -1 to always begin with the first tree.) * ``[outputTimeSnapTolerance]`` (default ``0.0d0``) — The relative tolerance required to "snap" a node time to the closest output time. * ``[missingHostsAreFatal]`` (default ``.true.``) — Specifies whether nodes with missing host nodes should be considered to be fatal---see the discussion of missing host nodes in the class description above. * ``[treeIndexToRootNodeIndex]`` (default ``.false.``) — Specifies whether tree indices should always be set to the index of their root node. * ``[allowBranchJumps]`` (default ``.true.``) — Specifies whether nodes are allowed to jump between branches. * ``[allowSubhaloPromotions]`` (default ``.true.``) — Specifies whether subhalos are permitted to be promoted to being isolated halos. * ``[alwaysPromoteMostMassive]`` (default ``.false.``) — If true, the most massive progenitor is always promoted to be the primary progenitor *even if* it is a subhalo. Otherwise, isolated progenitors are given priority over subhalo progenitors, even if they are less massive. * ``[presetNamedReals]`` — Names of real datasets to be additionally read and stored in the nodes of the merger tree when using the ``[mergerTreeConstruct]``\ :math:`=`\ ``read`` tree construction method. * ``[presetNamedIntegers]`` — Names of integer datasets to be additionally read and stored in the nodes of the merger tree when using the ``[mergerTreeConstruct]``\ :math:`=`\ ``read`` tree construction method. * ``[fatalMismatches]`` (default ``.true.``) — Specifies whether mismatches in cosmological parameter values between Galacticus and "Sussing Merger Trees" format :cite:p:`srisawat_sussing_2013` merger tree files should be considered fatal. * ``[fatalNonTreeNode]`` (default ``.true.``) — Specifies whether nodes in snapshot files but not in the merger tree file should be considered fatal when importing from the "Sussing Merger Trees" format :cite:p:`srisawat_sussing_2013`. * ``[subvolumeCount]`` (default ``1``) — Specifies the number of subvolumes *along each axis* into which a "Sussing Merger Trees" format :cite:p:`srisawat_sussing_2013` merger tree files should be split for processing through Galacticus. * ``[subvolumeBuffer]`` (default ``0.0d0``) — Specifies the buffer region (in units of Mpc\ :math:`/h` to follow the format convention) around subvolumes of a "Sussing Merger Trees" format :cite:p:`srisawat_sussing_2013` merger tree file which should be read in to ensure that no halos are missed from trees. * ``[subvolumeIndex]`` (default ``[0,0,0]``) — Specifies the index (in each dimension) of the subvolume of a "Sussing Merger Trees" format :cite:p:`srisawat_sussing_2013` merger tree file to process. Indices range from 0 to ``[subvolumeCount]``\ :math:`-1`. * ``[badValue]`` (default ``-0.5d0``) — Use for bad value detection in "Sussing" merger trees. Values for scale radius and halo spin which exceed this threshold are assumed to be bad. * ``[badValueTest]`` (default ``var_str('lessThan')``) — Use for bad value detection in "Sussing" merger trees. Values which exceed the threshold in ths specified direction are assumed to be bad. * ``[treeSampleRate]`` (default ``1.0d0``) — Specify the probability that any given tree should processed (to permit subsampling). * ``[massOptions]`` (default ``var_str('default')``) — Mass option for Sussing merger trees. * ``[mergeProbability]`` (default ``0.1d0``) — The largest probability of branching allowed in a timestep in merger trees built by the :cite:t:`cole_hierarchical_2000` method. * ``[accretionLimit]`` (default ``0.1d0``) — The largest fractional mass change due to subresolution accretion allowed in a timestep in merger trees built by the :cite:t:`cole_hierarchical_2000` method. * ``[redshiftMaximum]`` (default ``1.0d5``) — The highest redshift to which merger trees will be built in the :cite:t:`cole_hierarchical_2000` method. * ``[toleranceTimeEarliest]`` (default ``2.0d-6``) — The fractional tolerance used to judge if a branch is at the earliest allowed time in the tree. * ``[branchIntervalStep]`` (default ``.true.``) — If ``false`` use the original :cite:t:`cole_hierarchical_2000` method to determine whether branching occurs in a timestep. If ``true`` draw branching intervals from a negative exponential distribution. * ``[toleranceResolutionSelf]`` (default ``1.0d-6``) — The fractional tolerance in node mass at the resolution limit below which branch mis-orderings will be ignored. * ``[toleranceResolutionParent]`` (default ``1.0d-3``) — The fractional tolerance in parent node mass at the resolution limit below which branch mis-orderings will be ignored. * ``[ignoreNoProgress]`` (default ``.false.``) — If true, failure to make progress on a branch will be ignored (and the branch terminated). * ``[ignoreWellOrdering]`` (default ``.false.``) — If true, non-well-ordered tree branches are pruned away instead of causing errors.. * ``[redshiftBase]`` (default ``0.0d0``) — The redshift at which to plant the base node when building merger trees. * ``[timeSnapTolerance]`` (default ``1.0d-6``) — The fractional tolerance within which the tree base time will be snapped to a nearby output time. * ``[treeBeginAt]`` (default ``0``) — The index (in order of increasing base halo mass) of the tree at which to begin when building merger trees. A value of "0" means to begin with tree number 1 (if processing trees in ascending order), or equal to the number of trees (otherwise). * ``[processDescending]`` (default ``.true.``) — If true, causes merger trees to be processed in order of decreasing mass. * ``[splitTrees]`` (default ``.false.``) — If true, prune away any nodes of the tree that are not needed to determine evolution up to the latest time at which a node is present inside the lightcone. This typically leads to a tree splitting into a forest of trees. * ``[label]`` — A label for the mass function. * ``[comment]`` — A descriptive comment for the mass function. * ``[starFormationRates]`` — The star formation rates corresponding to bin centers. * ``[covarianceBinomialBinsPerDecade]`` (default ``10``) — The number of bins per decade of star formation rate to use when constructing star formation rate function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMinimum]`` (default ``1.0d10``) — The star formation rate to consider when constructing star formation rate function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMaximum]`` (default ``1.0d12``) — The maximum star formation rate to consider when constructing star formation rate function covariance matrices for main branch galaxies. * ``[targetLabel]`` — Label for the target dataset. * ``[functionValueTarget]`` — The target function for likelihood calculations. * ``[functionCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[likelihoodBins]`` — Controls which bins in the stellar mass--halo mass relation will be used in computing the likelihood: * *not present*: all bins are included in the likelihood calculation; * *list of integers*: use only the mass bin(s) given in this list in the likelihood calculation; * ``auto``: use only bins which have a non-zero number of halos contributing to them in the likelihood calculation. * ``[fileNameTarget]`` — The name of the file containing the target data. * ``[redshiftInterval]`` (default ``1``) — The redshift interval to use. * ``[likelihoodNormalize]`` (default ``.false.``) — If true, then normalize the likelihood to make it a probability density. * ``[computeScatter]`` (default ``.false.``) — If true, the scatter in log10(stellar mass) is computed. Otherwise, the mean is computed. * ``[systematicErrorPolynomialCoefficient]`` (default ``[0.0d0]``) — The coefficients of the systematic error polynomial for stellar mass in the stellar vs halo mass relation. * ``[systematicErrorMassHaloPolynomialCoefficient]`` (default ``[0.0d0]``) — The coefficients of the systematic error polynomial for halo mass in the stellar vs halo mass relation. * ``[errorTolerant]`` (default ``.false.``) — Error tolerance for the N-body spin distribution operator. * ``[logNormalRange]`` (default ``100.0d0``) — The multiplicative range of the log-normal distribution used to model the distribution of the mass and energy terms in the spin parameter. Specifically, the lognormal distribution is truncated outside the range :math:`(\lambda_\mathrm{m}/R,\lambda_\mathrm{m} R`, where :math:`\lambda_\mathrm{m}` is the measured spin, and :math:`R=`\ ``[logNormalRange]`` * ``[fileName]`` — The name of the file from which to read spin distribution function parameters. * ``[comment]`` — A comment describing this analysis. * ``[label]`` — A label for this analysis. * ``[label]`` — A label for the spin distribution function. * ``[comment]`` — A descriptive comment for the spin distribution function. * ``[redshift]`` — The redshift at which to compute the spin distribution function. * ``[massMinimum]`` — Minimum halo mass for the spin distribution function. * ``[massMaximum]`` — Maximum halo mass for the spin distribution function. * ``[spinMinimum]`` — Minimum spin for the spin distribution function. * ``[spinMaximum]`` — Maximum spin for the spin distribution function. * ``[countSpinsPerDecade]`` — Number of spins per decade at which to compute the spin distribution function. * ``[timeRecent]`` — Halos which experienced a major node merger within a time :math:`\Delta t=`\ ``[timeRecent]`` of the analysis time will be excluded from the analysis. * ``[particleCountMinimum]`` — The minimum particle count to assume when computing N-body errors on spins. * ``[massParticle]`` — The mass of the particle used in the N-body simulation from which spins were measured. * ``[energyEstimateParticleCountMaximum]`` — The maximum number of particles used in estimating halo energies when measuring spins from the N-body simulation. * ``[targetLabel]`` — Label for the target dataset. * ``[functionValueTarget]`` — The target function for likelihood calculations. * ``[functionCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[label]`` — A label for the mass function. * ``[comment]`` — A descriptive comment for the mass function. * ``[masses]`` — The masses corresponding to bin centers. * ``[covarianceBinomialBinsPerDecade]`` (default ``10``) — The number of bins per decade of halo mass to use when constructing HI mass function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMinimum]`` (default ``1.0d8``) — The minimum halo mass to consider when constructing HI mass function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMaximum]`` (default ``1.0d16``) — The maximum halo mass to consider when constructing HI mass function covariance matrices for main branch galaxies. * ``[targetLabel]`` — Label for the target dataset. * ``[functionValueTarget]`` — The target function for likelihood calculations. * ``[functionCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[label]`` — A label for the luminosity function. * ``[comment]`` — A descriptive comment for the luminosity function. * ``[magnitudesAbsolute]`` — The absolute magnitudes corresponding to bin centers. * ``[covarianceBinomialBinsPerDecade]`` (default ``10``) — The number of bins per decade of halo mass to use when constructing luminosity function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMinimum]`` (default ``1.0d8``) — The minimum halo mass to consider when constructing luminosity function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMaximum]`` (default ``1.0d16``) — The maximum halo mass to consider when constructing luminosity function covariance matrices for main branch galaxies. * ``[targetLabel]`` — Label for the target dataset. * ``[functionValueTarget]`` — The target function for likelihood calculations. * ``[functionCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[label]`` — A label for the luminosity function. * ``[comment]`` — A descriptive comment for the luminosity function. * ``[luminosities]`` — The luminosities corresponding to bin centers. * ``[covarianceBinomialBinsPerDecade]`` (default ``10``) — The number of bins per decade of halo mass to use when constructing luminosity function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMinimum]`` (default ``1.0d8``) — The minimum halo mass to consider when constructing luminosity function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMaximum]`` (default ``1.0d16``) — The maximum halo mass to consider when constructing luminosity function covariance matrices for main branch galaxies. * ``[includeNitrogenII]`` (default ``.false.``) — If true, include contamination by the [NII] (6548\AA :math:`+` 6584\AA) doublet. * ``[depthOpticalISMCoefficient]`` (default ``1.0d0``) — Multiplicative coefficient for optical depth in the ISM. * ``[targetLabel]`` — Label for the target dataset. * ``[functionValueTarget]`` — The target function for likelihood calculations. * ``[functionCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[label]`` — A label for the mass function. * ``[comment]`` — A descriptive comment for the mass function. * ``[masses]`` — The masses corresponding to bin centers. * ``[covarianceBinomialBinsPerDecade]`` (default ``10``) — The number of bins per decade of halo mass to use when constructing stellar mass function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMinimum]`` (default ``1.0d8``) — The minimum halo mass to consider when constructing stellar mass function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMaximum]`` (default ``1.0d16``) — The maximum halo mass to consider when constructing stellar mass function covariance matrices for main branch galaxies. * ``[targetLabel]`` — Label for the target dataset. * ``[functionValueTarget]`` — The target function for likelihood calculations. * ``[functionCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[rootVarianceFractionalMinimum]`` (default ``0.0d0``) — The minimum fractional root variance (relative to the target dataset). * ``[fileName]`` — The name of the file from which to read concentration distribution function parameters. * ``[comment]`` — A comment describing this analysis. * ``[label]`` — A label for this analysis. * ``[label]`` — A label for the concentration distribution function. * ``[comment]`` — A descriptive comment for the concentration distribution function. * ``[redshift]`` — The redshift at which to compute the concentration distribution function. * ``[massMinimum]`` — Minimum halo mass for the concentration distribution function. * ``[massMaximum]`` — Maximum halo mass for the concentration distribution function. * ``[concentrationMinimum]`` — Minimum concentration for the concentration distribution function. * ``[concentrationMaximum]`` — Maximum concentration for the concentration distribution function. * ``[countConcentrationsPerDecade]`` — Number of concentrations per decade at which to compute the concentration distribution function. * ``[timeRecent]`` — Halos which experienced a major node merger within a time :math:`\Delta t=`\ ``[timeRecent]`` of the analysis time will be excluded from the analysis. * ``[massParticle]`` — The particle mass in the source N-body simulation. * ``[targetLabel]`` — Label for the target dataset. * ``[functionValueTarget]`` — The target function for likelihood calculations. * ``[functionCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[fileName]`` — The name of the file from which to read star forming main sequence function parameters. * ``[comment]`` — A comment describing this analysis. * ``[label]`` — A label for this analysis. * ``[label]`` — A label for the star forming main sequence function. * ``[comment]`` — A descriptive comment for the star forming main sequence function. * ``[massMinimum]`` — Minimum stellar mass for the star forming main sequence function. * ``[massMaximum]`` — Maximum stellar mass for the star forming main sequence function. * ``[countMassesPerDecade]`` — Number of masses per decade at which to compute the star forming main sequence function. * ``[targetLabel]`` — Label for the target dataset. * ``[meanValueTarget]`` — The target function for likelihood calculations. * ``[meanCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[label]`` — A label for the mass function. * ``[comment]`` — A descriptive comment for the mass function. * ``[separations]`` — The separations corresponding to bin centers. * ``[massMinima]`` — The minimum mass of each mass sample. * ``[massMaxima]`` — The maximum mass of each mass sample. * ``[massHaloBinsPerDecade]`` (default ``10``) — The number of bins per decade of halo mass to use when constructing the mass function covariance matrix for main branch galaxies. * ``[massHaloMinimum]`` (default ``1.0d8``) — The minimum halo mass to consider when constructing the mass function covariance matrix for main branch galaxies. * ``[massHaloMaximum]`` (default ``1.0d16``) — The maximum halo mass to consider when constructing the mass function covariance matrix for main branch galaxies. * ``[wavenumberCount]`` (default ``60_c_size_t``) — The number of bins in wavenumber to use in computing the correlation function. * ``[wavenumberMinimum]`` (default ``1.0d-3``) — The minimum wavenumber to use when computing the correlation function. * ``[wavenumberMaximum]`` (default ``1.0d4``) — The maximum wavenumber to use when computing the correlation function. * ``[integralConstraint]`` — The integral constraint for these correlation functions. * ``[depthLineOfSight]`` — The line-of-sight depth over which the correlation function was projected. * ``[halfIntegral]`` — Set to true if the projection integrand should be over line-of-sight depths greater than zero. * ``[binnedProjectedCorrelationTarget]`` — The target function for likelihood calculations. * ``[binnedProjectedCorrelationCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[targetLabel]`` (default ``var_str('')``) — A label for the target dataset in a plot of this analysis. * ``[starFormationRateSpecificQuiescentLogarithmic]`` — The base-10 logarithm specific star formation rate (in units of Gyr\ :math:`^{-1}`) separating quiescent and star-forming galaxies. * ``[starFormationRateSpecificLogarithmicError]`` — The observational fractional error in specific star formation rate (in units of dex) of galaxies. * ``[fileName]`` — The name of the file from which to read quiescent fraction function parameters. * ``[comment]`` — A comment describing this analysis. * ``[label]`` — A label for this analysis. * ``[label]`` — A label for the star forming main sequence function. * ``[comment]`` — A descriptive comment for the star forming main sequence function. * ``[massMinimum]`` — Minimum stellar mass for the star forming main sequence function. * ``[massMaximum]`` — Maximum stellar mass for the star forming main sequence function. * ``[countMassesPerDecade]`` — Number of masses per decade at which to compute the star forming main sequence function. * ``[targetLabel]`` — Label for the target dataset. * ``[meanValueTarget]`` — The target function for likelihood calculations. * ``[meanCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[radiusFractionalTruncateMinimum]`` (default ``2.0d0``) — The minimum radius (in units of the virial radius) to begin truncating the density profile. * ``[radiusFractionalTruncateMaximum]`` (default ``4.0d0``) — The maximum radius (in units of the virial radius) to finish truncating the density profile. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[velocityDispersionApproximate]`` (default ``.true.``) — If ``true``, radial velocity dispersion is computed using an approximate method in which we assume that :math:`\sigma_\mathrm{r}^2(r) \rightarrow \sigma_\mathrm{r}^2(r) - (2/3) \epsilon(r)`, where :math:`\epsilon(r)` is the specific heating energy. If ``false`` then radial velocity dispersion is computed by numerically solving the Jeans equation. * ``[tolerateEnclosedMassIntegrationFailure]`` (default ``.false.``) — If ``true``, tolerate failures to find the mass enclosed as a function of radius. * ``[tolerateVelocityDispersionFailure]`` (default ``.false.``) — If ``true``, tolerate failures to compute the velocity dispersion. * ``[tolerateVelocityMaximumFailure]`` (default ``.false.``) — If ``true``, tolerate failures to find the radius of the maximum circular velocity. * ``[toleratePotentialIntegrationFailure]`` (default ``.false.``) — If ``true``, tolerate numerical failures when computing the gravitational potential of a heated dark matter profile, allowing the calculation to continue with a fallback result rather than aborting. * ``[toleranceRelativeVelocityDispersion]`` (default ``1.0d-6``) — The relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[toleranceRelativeVelocityDispersionMaximum]`` (default ``1.0d-3``) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[fractionRadiusFinalSmall]`` (default ``1.0d-3``) — The initial radius is limited to be no smaller than this fraction of the final radius. This can help avoid problems in profiles that are extremely close to being disrupted. * ``[toleranceRelativePotential]`` (default ``1.0d-3``) — The maximum allowed relative tolerance to use in numerical solutions for the gravitational potential in dark-matter-only density profiles before aborting. * ``[tolerateVelocityMaximumFailure]`` (default ``.true.``) — If true, tolerate failures to find the radius of the peak in the rotation curve. * ``[lengthResolution]`` — The gravitational softening length :math:`\Delta x` (in Mpc) of the N-body simulation, which sets the minimum spatial scale below which the dark matter profile is smoothed to avoid artificial two-body effects. * ``[massResolution]`` — The mass resolution :math:`\Delta M` (in :math:`\mathrm{M}_\odot`) of the N-body simulation, representing the minimum halo mass that can be resolved; profiles of halos near this limit are softened to account for particle discreteness effects. * ``[resolutionIsComoving]`` — If true, the resolution length is assumed to be fixed in comoving coordinates, otherwise in physical coordinates. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[C]`` (default ``400.0d0``) — The parameter :math:`C` appearing in the halo concentration algorithm of :cite:t:`ludlow_mass-concentration-redshift_2016`. * ``[f]`` (default ``0.02d0``) — The parameter :math:`f` appearing in the halo concentration algorithm of :cite:t:`ludlow_mass-concentration-redshift_2016`. * ``[timeFormationSeekDelta]`` (default ``0.0d0``) — The parameter :math:`\Delta \log t` by which the logarithm of the trial formation time is incremented when stepping through the formation history of a node to find the formation time. If set to zero (or a negative value) the cumulative mass histories of nodes are assumed to be monotonic functions of time, and the formation time is instead found by a root finding algorithm, * ``[massBoundIsInactive]`` (default ``.false.``) — Specifies whether or not the bound mass of the satellite component is inactive (i.e. does not appear in any ODE being solved). * ``[useLastIsolatedTime]`` (default ``.false.``) — If true, evaluate the halo virial radius using a the virial density definition at the last isolated time of the halo. * ``[filterName]`` — The filter to select. * ``[filterType]`` — The filter type (rest or observed) to select. * ``[redshiftBand]`` — The redshift of the band (if not the output redshift). * ``[postprocessChain]`` — The postprocessing chain to use. * ``[cloudyTableFileName]`` (default ``var_str('%DATASTATICPATH%/hiiRegions/emissionLineLuminosities_BC2003_highResolution_imfChabrier.hdf5')``) — The file of emission line luminosities to use. * ``[lineNames]`` — The emission lines to extract. * ``[component]`` — The component from which to extract star formation rate. * ``[toleranceRelative]`` (default ``1.0d-3``) — The relative tolerance used in integration over stellar population spectra. * ``[component]`` — The component from which to extract star formation rate. * ``[radiusCore]`` — The soliton core radius (in Mpc) characterizing the size of the quantum pressure-supported central core of the fuzzy dark matter halo; the density profile flattens inside this scale. * ``[densitySolitonCentral]`` — The central density (in :math:`\mathrm{M}_\odot`/Mpc\ :math:`^3`) of the solitonic core at :math:`r=0`, which sets the overall normalization of the density profile :math:`\rho(r) = \rho_\mathrm{c} [1+(r/r_c)^2]^{-8}`. * ``[toleranceRelativePotential]`` (default ``1.0d-3``) — The relative tolerance used in numerical ODE solutions for the gravitational potential of the solitonic core profile. * ``[dimensionless]`` (default ``.true.``) — If true the soliton profile is treated as dimensionless (scale-free), allowing its radial and density quantities to be specified in arbitrary units. * ``[componentType]`` (default ``var_str('unknown')``) — The galactic structure component type (e.g.\ dark matter halo, disk, spheroid) represented by this mass distribution, used for component-specific queries. * ``[massType]`` (default ``var_str('unknown')``) — The mass type (e.g.\ dark matter, baryonic, total) represented by this mass distribution, used for mass-type-specific queries. * ``[radiusTransition]`` — The transition radius (in Mpc) at which the density profile smoothly switches from the halo profile to the accretion flow, controlled by the fourth-order transition function :math:`f_\mathrm{trans}(r)`. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[componentType]`` (default ``var_str('unknown')``) — The component type that this mass distribution represents. * ``[massType]`` (default ``var_str('unknown')``) — The mass type that this mass distribution represents. * ``[timeAge]`` — The age of the halo (in Gyr) since its formation, determining the total time available for SIDM self-interactions to thermalize the inner halo and produce an isothermal core. * ``[velocityRelativeMean]`` — Mean relative velocity to calculate self interaction cross section. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[componentType]`` (default ``var_str('unknown')``) — The component type that this mass distribution represents. * ``[massType]`` (default ``var_str('unknown')``) — The mass type that this mass distribution represents. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[componentType]`` (default ``var_str('unknown')``) — The component type that this mass distribution represents. * ``[massType]`` (default ``var_str('unknown')``) — The mass type that this mass distribution represents. * ``[tolerateVelocityMaximumFailure]`` (default ``.false.``) — If true, tolerate failures to find the radius of the peak in the rotation curve. * ``[tolerateEnclosedMassIntegrationFailure]`` (default ``.false.``) — If ``true``, tolerate failures to find the mass enclosed as a function of radius. * ``[toleratePotentialIntegrationFailure]`` (default ``.false.``) — If ``true``, tolerate failures to compute the potential. * ``[fractionRadiusFinalSmall]`` (default ``1.0d-3``) — The initial radius is limited to be no smaller than this fraction of the final radius. This can help avoid problems in profiles that are extremely close to being disrupted. * ``[toleranceRelativePotential]`` (default ``1.0d-3``) — The maximum allowed relative tolerance to use in numerical solutions for the gravitational potential in dark-matter-only density profiles before aborting. * ``[lengthResolution]`` — The spatial resolution length scale (in Mpc) below which the underlying density profile is softened to a flat core, mimicking the finite force resolution of an N-body simulation. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[componentType]`` (default ``var_str('unknown')``) — The component type that this mass distribution represents. * ``[massType]`` (default ``var_str('unknown')``) — The mass type that this mass distribution represents. * ``[massMinimum]`` — The minimum halo mass (in :math:`\mathrm{M}_\odot`) below which halos are excluded from the mass function histogram. * ``[massMaximum]`` — The maximum halo mass (in :math:`\mathrm{M}_\odot`) above which halos are excluded from the mass function histogram. * ``[massCountPerDecade]`` — The number of logarithmic bins per decade of halo mass used when constructing the halo mass function. * ``[description]`` — A human-readable description of this mass function dataset, stored as metadata in the output file. * ``[simulationReference]`` — A bibliographic reference for the N-body simulation from which this mass function is derived, stored as metadata. * ``[simulationURL]`` — A URL pointing to the publicly accessible dataset or documentation for the N-body simulation, stored as metadata. * ``[bootstrapSampleCount]`` (default ``30_c_size_t``) — The number of bootstrap resamples of the particles that should be used. * ``[representativeMinimumCount]`` (default ``10_c_size_t``) — Minimum number of representative particles used to compute the center of a halo. * ``[tolerance]`` (default ``1.0d-2``) — The tolerance in the summed weight of bound particles which must be attained to declare convergence. * ``[bootstrapSampleRate]`` (default ``1.0d0``) — The sampling rate for particles. * ``[representativeFraction]`` (default ``0.05d0``) — Fraction of bound particles used to compute the center of a halo. * ``[analyzeAllParticles]`` (default ``.true.``) — If true, all particles are assumed to be self-bound at the beginning of the analysis. Unbound particles at previous times are allowed to become bound in the current snapshot. If false and the self-bound information from the previous snapshot is available, only the particles that are self-bound at the previous snapshot are assumed to be bound at the beginning of the analysis. * ``[useVelocityMostBound]`` (default ``.false.``) — If true, the velocity of the most bound particle in velocity space is used as the representative velocity of the satellite. If false, use the mass weighted mean velocity (center-of-mass velocity) of self-bound particles instead. * ``[orderRotation]`` (default ``var_str('none')``) — The order in which evaluation of likelihoods should be rotated as a function of process number. * ``[logLikelihoodAccept]`` (default ``huge(0.0d0)``) — The log-likelihood which should be "accepted"---once the log-likelihood reaches this value (or larger) no further updates to the chain will be made. * ``[report]`` (default ``.false.``) — If true, report on the log-likelihood obtained. * ``[means]`` — The mean of the multivariate normal distribution. * ``[covariance]`` — The covariance matrix for the of the multivariate normal distribution. * ``[countForestsMaximum]`` (default ``-1_c_size_t``) — If set to a positive number, this is the maximum number of forests that will be evolved. * ``[walltimeMaximum]`` (default ``-1_kind_int8``) — If set to a positive number, this is the maximum wall time for which forest evolution is allowed to proceed before the task gives up. * ``[tolerateFailures]`` (default ``.false.``) — If true then failures to evolve a forest are tolerated. The forest is evolved no further, but evolution of other forests continues. * ``[evolveForestsInParallel]`` (default ``.true.``) — If true then each forest is evolved by a separate OpenMP thread. Otherwise, a single thread evolves all forests. * ``[suspendToRAM]`` (default ``.true.``) — Specifies whether trees should be suspended to RAM (otherwise they are suspend to file). * ``[suspendPath]`` — The path to which tree suspension files will be stored. * ``[timeIntervalCheckpoint]`` (default ``-1_kind_int8``) — If positive, gives the time in seconds between storing of checkpoint files. If zero or negative, no checkpointing is performed.. * ``[fileNameCheckpoint]`` — The path to which checkpoint data will be stored. * ``[logM0]`` (default ``10.0d0``) — The parameter :math:`\log_{10} M_0` (with :math:`M_0` in units of :math:`\mathrm{M}_\odot`) appearing in the star formation rate threshold expression for the star formation rate galactic filter class. * ``[logSFR0]`` (default ``9.0d0``) — The parameter :math:`\alpha_0` appearing in the star formation rate threshold expression for the star formation rate galactic filter class. * ``[logSFR1]`` (default ``0.0d0``) — The parameter :math:`\alpha_1` appearing in the star formation rate threshold expression for the star formation rate galactic filter class. * ``[cW]`` (default ``3.78062835d0``) — The parameter :math:`c_\mathrm{W}` in the :cite:t:`bohr_halo_2021` power spectrum window function. * ``[beta]`` (default ``3.4638743d0``) — The parameter :math:`\beta` in the :cite:t:`bohr_halo_2021` power spectrum window function. * ``[transferFunctionType]`` (default ``var_str('darkMatter')``) — Specifies whether to use the ``darkMatter`` or ``total`` transfer function. * ``[fileName]`` — The name of the file from which to read a tabulated transfer function. * ``[redshift]`` (default ``0.0d0``) — The redshift of the transfer function to read. * ``[factorWavenumberSmoothExtrapolation]`` (default ``0.0d0``) — If positive, and extrapolation is used at high wavenumbers, the slope for extrapolation will be set by averaging over wavenumbers from :math:`k_\mathrm{max}/f` to :math:`k_\mathrm{max}`, where :math:`f=`\ ``[factorWavenumberSmoothExtrapolation]`` and :math:`k_\mathrm{max}` is the highest wavenumber tabulated. This avoids spurious extrapolation for highly oscillatory transfer functions. * ``[acceptNegativeValues]`` (default ``.false.``) — If true, negative values in the transfer function are allowed (and the absolute value is taken prior to interpolation). Otherwise, negative values result in an error. * ``[fractionalTimeStep]`` (default ``0.01d0``) — The fractional time step used when computing barrier crossing rates (i.e. the step used in finite difference calculations). * ``[fileName]`` (default ``var_str('none')``) — The name of the file to/from which tabulations of barrier first crossing probabilities should be written/read. If set to "``none``" tables will not be stored. * ``[fractionalTimeStep]`` (default ``0.01d0``) — The fractional time step used when computing barrier crossing rates (i.e. the step used in finite difference calculations). * ``[varianceNumberPerUnitProbability]`` (default ``1000``) — The number of points to tabulate per unit variance for first crossing probabilities. * ``[varianceNumberPerUnit]`` (default ``40``) — The number of tabulation points per unit of :math:`\sigma^2` used when building the rate look-up table for the Farahi excursion-set first-crossing distribution; higher values improve interpolation accuracy at the cost of memory and initialization time. * ``[varianceNumberPerDecade]`` (default ``400``) — The number of points to tabulate per decade of progenitor variance for first crossing rates. * ``[varianceNumberPerDecadeNonCrossing]`` (default ``40``) — The number of points to tabulate per decade of progenitor variance for non-crossing rates. * ``[timeNumberPerDecade]`` (default ``10``) — The number of tabulation points per decade of cosmic time used when building the first-crossing rate look-up table as a function of time; higher values improve temporal interpolation accuracy for rapidly evolving cosmologies. * ``[varianceIsUnlimited]`` (default ``.false.``) — If true, the variance is assumed to have no upper limit (e.g. as in the case of :term:`CDM`). This allows the tabulated solutions to be extended arbitrarily. Otherwise, tables are extended to encompass just the range of variance requested. * ``[linkingLength]`` (default ``0.2d0``) — The friends-of-friends linking length to use in computing virial density contrasts with the percolation analysis of :cite:t:`more_overdensity_2011`. .. _physics-nodeOperatorFilteredMainBranch: ``nodeOperatorFilteredMainBranch`` ---------------------------------- A node operator class that applies only to main branch nodes during tree initialization only. This uses a fast algorithm to determine main branch status, so is more efficient that using the :galacticus-class:`nodeOperatorFiltered` node operator class along with a :galacticus-class:`galacticFilterMainBranch` filter. **Parameters** * ``[massFraction]`` (default ``0.0d0``) — Mass fraction relative to the descendant node on the main branch below which the progenitor branch does not grow any further. * ``[invertFilter]`` (default ``.false.``) — If true, the filter is inverted to pass only nodes *not* on the main branch. * ``[includeSubhalos]`` (default ``.false.``) — If set to true then subhalos of the main branch halo are also assigned a value of 1 (with subhalos of non-main branch halos assigned a value of 0). Otherwise, all subhalos are assigned a value of 0. .. _physics-nodeOperatorGalaxyGasMajorMergerTime: ``nodeOperatorGalaxyGasMajorMergerTime`` ---------------------------------------- A node operator class that records the cosmic time of each galaxy--galaxy merger in which the cold gas mass ratio of the merging pair exceeds ``ratioGasMajorMerger`` (default 0.25). Times are accumulated as a rank-1 meta-property of the basic node component; ``countTimesMaximum`` caps the number of merger times stored per node. This enables analysis of the gas-rich merger history of galaxies across cosmic time. **Parameters** * ``[countTimesMaximum]`` (default ``huge(0_c_size_t)``) — The maximum number of major merger times to accumulate for each node. Defaults to the maximum possible. * ``[ratioGasMajorMerger]`` (default ``0.25d0``) — The gas mass ratio threshold defining a major merger. .. _physics-nodeOperatorGalaxyMajorMergerTime: ``nodeOperatorGalaxyMajorMergerTime`` ------------------------------------- A node operator class that records the cosmic time of each galaxy--galaxy major merger event as a meta-property of the basic node component. A merger is classified as major based on the stellar mass movements determined by :galacticus-class:`mergerMassMovementsClass`. ``countTimesMaximum`` caps the number of merger times accumulated per node, enabling targeted study of the recent major merger history of galaxies. **Parameters** * ``[countTimesMaximum]`` (default ``huge(0_c_size_t)``) — The maximum number of major merger times to accumulate for each node. Defaults to the maximum possible. .. _physics-nodeOperatorGalaxyMergers: ``nodeOperatorGalaxyMergers`` ----------------------------- A node operator class that records details of galaxy-galaxy mergers. Data recorded consists of: output are: * The index of the satellite halo in the merger; * The stellar/gas mass of te host/satellite galaxy; * The time at which the merger occurred. Two :galacticus-class:`galacticFilterClass`\ es are accepted, via parameters ``[galacticFilterSatellite]`` and ``[galacticFilterCentral]`` which can be used to control which galaxies are included in the output. **Parameters** * ``[countMergersMaximum]`` (default ``huge(0_c_size_t)``) — The maximum number of mergers to accumulate for each node. Defaults to the maximum possible. .. _physics-nodeOperatorGalaxyMergerTree: ``nodeOperatorGalaxyMergerTree`` -------------------------------- A node operator class that outputs a time-series of galaxy properties along each merger tree branch at regular intervals of ``timeStep`` Gyr, enabling reconstruction of complete evolutionary histories for post-processing. The set of properties to record is specified via a list of :galacticus-class:`nodePropertyExtractorClass` objects. Node indices, branch identifiers, and merger information are also recorded to allow reconstruction of the full tree topology. **Methods** * ``initialize`` — Initialize galaxy merger tree meta-properties. * ``record`` — Record a step in the merger tree. **Parameters** * ``[timeStep]`` — The minimum timestep at which to record galaxy properties. .. _physics-nodeOperatorHaloAngularMomentumInterpolate: ``nodeOperatorHaloAngularMomentumInterpolate`` ---------------------------------------------- A node operator class that causes halo angular momentum be interpolated linearly between child and parent nodes. For primary progenitor nodes, if only the scalar angular momentum, :math:`\lambda`, is available then :math:`\dot{J} = (J_{i+1}-J_i)/(t_{i+1}-t_i)`, where :math:`J_i` is the angular momentum of the node in the initialized tree, :math:`J_{i+1}` is the angular momentum of its parent node, and :math:`t_i` and :math:`t_{i+1}` are the corresponding times. If vector angular momentum is available the same interpolation is applied to each individual component of angular momentum, with the rate of change of the scalar angular momentum computed self-consistently. For non-primary progenitors both scalar and vector angular momentum are assumed to be constant, i.e. :math:`\dot{J}=0`. .. _physics-nodeOperatorHaloAngularMomentumRandom: ``nodeOperatorHaloAngularMomentumRandom`` ----------------------------------------- A node operator class that initializes the angular momentum of each dark matter halo by drawing a random spin parameter from a :galacticus-class:`haloSpinDistributionClass` (e.g.\ a log-normal distribution). ``factorReset`` specifies the multiplicative mass growth factor required before the spin parameter is redrawn, allowing halos that have undergone significant mass growth to acquire a new spin appropriate to their new mass. **Parameters** * ``[factorReset]`` (default ``2.0d0``) — The factor by which a node must increase in mass before its spin parameter is reset. .. _physics-nodeOperatorHaloAngularMomentumRandomWalk: ``nodeOperatorHaloAngularMomentumRandomWalk`` --------------------------------------------- A node operator class that initializes halo spins using a random walk in angular momentum. The three components of the angular momentum vector are treated as independent Wiener processes with time-dependent variance. Specifically, each component of the angular momentum vector obeys: .. math:: J_\mathrm{i}(t_2) = J_\mathrm{i}(t_1) + \left[ \sigma^2 \left( J_\mathrm{v}^2(t_2) - J_\mathrm{v}^2(t_1) \right) \right]^{1/2} N(0,1) where :math:`J_\mathrm{v}(t) = M_\mathrm{v}(t) V_\mathrm{v}(t) R_\mathrm{v}(t)` is the characteristic virial angular momentum, :math:`M_\mathrm{v}(t)`, :math:`V_\mathrm{v}(t)`, and :math:`R_\mathrm{v}(t)` are the virial mass, velocity, and radius respectively, :math:`\sigma^2` represents the variance in angular momentum per unit increase in :math:`J_\mathrm{v}^2`, and :math:`N(0,1)` is a random variable distributed as a standard normal. **Parameters** * ``[angularMomentumVarianceSpecific]`` (default ``0.0029d0``) — The variance in the difference in the angular momentum of a halo per unit mass growth. .. _physics-nodeOperatorHaloAngularMomentumVitvitska2002: ``nodeOperatorHaloAngularMomentumVitvitska2002`` ------------------------------------------------ A node operator class that initializes halo angular momenta using the model of :cite:t:`vitvitska_origin_2002`. In addition to the mean angular momentum vector of unresolved accretion accounted for by :cite:t:`benson_random-walk_2020`, an optional stochastic contribution to the angular momentum from unresolved accretion is allowed for. This represents the fact that the angular momentum vector of a halo will diffuse away from zero in a random walk even if the mean angular momentum contributed by unresolved accretion is zero. The three components of the angular momentum vector of unresolved accretion are treated as independent Wiener processes with time-dependent variance. Specifically, each component of the angular momentum vector obeys: .. math:: J_\mathrm{i}(t_2) = J_\mathrm{i}(t_1) + \left[ \sigma^2 \left\{ J_\mathrm{v}^2(t_2) - J_\mathrm{v}^2(t_1) \right\} f_\mathrm{u} \right]^{1/2} N(0,1) where :math:`J_\mathrm{v}(t) = M_\mathrm{v}(t) V_\mathrm{v}(t) R_\mathrm{v}(t)` is the characteristic virial angular momentum, :math:`M_\mathrm{v}(t)`, :math:`V_\mathrm{v}(t)`, and :math:`R_\mathrm{v}(t)` are the virial mass, velocity, and radius respectively, :math:`M_\mathrm{u}` is the unresolved mass between times :math:`t_1` and :math:`t_2` respectively\footnoteNote that this assumes that the characteristic angular momentum scales in proportion to mass. In detail this is not correct, as there is also some dependence on the change in redshift across the timestep due to the dependence of virial densities on redshift. In practice, we ignore this dependence and absorb such effects into the parameter :math:`\sigma`., :math:`\sigma^2` represents the variance in angular momentum per unit increase in :math:`J_\mathrm{v}^2`, and :math:`N(0,1)` is a random variable distributed as a standard normal. The parameter :math:`\sigma=`\ ``[angularMomentumVarianceSpecific]``. The factor :math:`f_\mathrm{u}` can take on one of two forms. If ``[useOriginalSubresolutionMethod]``\ =\ ``false`` (which should be preferred) then: .. math:: f_\mathrm{u} = \frac{M_\mathrm{u}}{M(t_2)}, in which case the variance is proportional to the mass in unresolved accretion (i.e. the "time" variable in the Wiener process is just mass). If ``[useOriginalSubresolutionMethod]``\ =\ ``true`` then the original form, .. math:: f_\mathrm{u} = \left\{ \frac{M(t_1)+M_\mathrm{r}}{M(t_1)} \right\}^2 = \left\{ \frac{M(t_2)-M_\mathrm{u}}{M(t_1)} \right\}^2 is used. In this, flawed, approach the variance arising from unresolved mass is, incorrectly, not proportional to the unresolved mass accretion (and also has the incorrect scaling with mass). This approach should not be used for new calculations, and is retained only for backward compatibility. **Parameters** * ``[exponentMass]`` (default ``2.0d0``) — The exponent of mass ratio appearing in the orbital angular momentum term in the Vitvitska model. * ``[angularMomentumVarianceSpecific]`` (default ``0.0d0``) — The variance in the difference in the angular momentum of a halo per unit angular momentum scale growth. * ``[useOriginalSubresolutionMethod]`` (default ``.true.``) — If true, the original (flawed) method for accounting for variance in the angular momentum of subresolution accretion will be used. Otherwise, the new method is used. .. _physics-nodeOperatorHaloAxisRatiosInterpolate: ``nodeOperatorHaloAxisRatiosInterpolate`` ----------------------------------------- A node operator class that causes halo axis ratios be interpolated linearly between child and parent nodes. For primary progenitor nodes then :math:`\dot{\mathbf{a}} = (\mathbf{a}_{i+1}-\mathbf{a}_i)/(t_{i+1}-t_i)`, where :math:`\mathbf{a}_i` is the axis ratio tuple of the node in the initialized tree, :math:`\mathbf{a}_{i+1}` is the axis ratio tuple of its parent node, and :math:`t_i` and :math:`t_{i+1}` are the corresponding times. .. _physics-nodeOperatorHaloAxisRatiosMenkerBenson2022: ``nodeOperatorHaloAxisRatiosMenkerBenson2022`` ---------------------------------------------- A node operator class that initializes ellipsoidal halo axis ratios by tracking the energy tensor eigenvalues along merger tree branches using the model of :cite:t:`menker_random_2022`. ``timescaleSphericalizationFractional`` sets the sphericalization timescale in units of the halo dynamical time (default from :cite:author:`menker_random_2022` :cite:year:`menker_random_2022`); ``energyBoost`` scales the orbital energy contribution (default from :cite:author:`johnson_random_2021` :cite:year:`johnson_random_2021`); ``exponentMass`` controls the mass-ratio power-law dependence of orbital angular momentum contributions. **Methods** * ``energyTensorEigenvalues`` — Compute the energy tensor eigenvalues of a given node. * ``energyTensor`` — Compute the energy tensor of a given node. * ``energyTensorOrbital`` — Compute the orbital energy tensor of a given node. **Parameters** * ``[energyBoost]`` (default ``0.673d0``) — A boost to the energy. * ``[exponentMass]`` (default ``1.518d0``) — The exponent of mass ratio appearing in the orbital angular momentum term in the axis ratio model. * ``[timescaleSphericalizationFractional]`` (default ``1.75d-3``) — The timescale (in units of the halo dynamical time) for sphericalization. .. _physics-nodeOperatorHierarchy: ``nodeOperatorHierarchy`` ------------------------- A node operator class that tracks and records the hierarchy level of each node within the halo/subhalo tree (0 for centrals, 1 for first-level subhalos, 2 for sub-subhalos, etc.), along with the maximum hierarchy level ever attained and the depth of the current branch. ``factorMassReset`` specifies the mass growth factor required before the maximum hierarchy level is forgotten (allowing resets after major accretion events). **Methods** * ``increment`` — Increment the hierarchy level of a node. * ``reset`` — Reset the maximum hierarchy level of a node. **Parameters** * ``[factorMassReset]`` (default ``1.0d100``) — The factor by which a node's mass must increase before the previous maximum hierarchy level is forgotten. .. _physics-nodeOperatorImpulsiveOutflowEnergy: ``nodeOperatorImpulsiveOutflowEnergy`` -------------------------------------- A node operator class that accumulates an estimate of the energy injected into the dark matter halo due to impulsive outflows. The model assumed is that the energy injection is given by .. math:: \dot{\epsilon}(r) = \alpha \frac{\mathrm{G} \dot{M}_\mathrm{outflow}(r)}{r} f\left( \frac{t_\phi}{t_\mathrm{dyn}} \right), where :math:`\alpha` is a normalization factor, :math:`t_\phi = M_\mathrm{gas}/\dot{M}_\mathrm{outflow}` is the timescale for the outflow, and :math:`t_\mathrm{dyn} = r_{1/2}/v_{1/2}` is the dynamical time at the half-mass radius. The function :math:`f(x)` accounts for the fact that only impulsive changes in the potential should be accounted for, and is defined as .. math:: f(x) = ( 1 + \beta x )^\gamma, where :math:`\beta=`\ ``[impulsiveCorrectionScale]`` and :math:`\gamma=`\ ``[impulsiveCorrectionExponent]``. In practice, this operator accumulates just .. math:: \dot{\epsilon}^\prime = \dot{M}_\mathrm{outflow} f\left( \frac{t_\phi}{t_\mathrm{dyn}} \right), allowing the radial dependence to be inserted later. **Parameters** * ``[impulsiveCorrectionScale]`` (default ``1.0d0``) — The parameter :math:`\beta` appearing in the impulsive correction function. * ``[impulsiveCorrectionExponent]`` (default ``2.0d0``) — The parameter :math:`\gamma` appearing in the impulsive correction function. .. _physics-nodeOperatorIndexBranchTip: ``nodeOperatorIndexBranchTip`` ------------------------------ Traverses each merger tree branch and records the index of the earliest progenitor (branch tip) in each node's metadata, enabling fast lookup of the branch origin without repeated tree traversals during output or analysis. .. _physics-nodeOperatorIndexLastHost: ``nodeOperatorIndexLastHost`` ----------------------------- Records and maintains the index of the host node in which a satellite was most recently hosted, tracking this metadata through mergers and promotions to enable identification of a node's last host halo. .. _physics-nodeOperatorIndexShift: ``nodeOperatorIndexShift`` -------------------------- Updates node index metadata when a node is promoted (i.e., when a satellite becomes a new isolated halo), shifting stored index values to reflect the node's new position in the evolving merger tree structure. .. _physics-nodeOperatorLabel: ``nodeOperatorLabel`` --------------------- A node operator class that assigns a string ``label`` meta-property to nodes passing a :galacticus-class:`galacticFilterClass` test. ``onInitialize`` applies the label at tree initialization; ``onPostEvolution`` reapplies it after each differential evolution step, allowing dynamic labeling of nodes that satisfy time-varying filter criteria. Labels can be used to identify special populations for subsequent analysis or filtering. **Parameters** * ``[label]`` — The string label to assign as a meta-property to nodes that pass the :galacticus-class:`galacticFilterClass` test. * ``[onInitialize]`` (default ``.true.``) — If true, apply the label to qualifying nodes during tree initialization (the ``nodeTreeInitialize`` phase) so that static tree properties are labeled before evolution begins. * ``[onPostEvolution]`` (default ``.false.``) — If true, reapply the label to qualifying nodes after each differential evolution step so that the label reflects time-varying filter criteria evaluated at each output epoch. * ``[persistent]`` (default ``.true.``) — If true, the label is persistent---once set, it is never unset. Otherwise, labels are not persistent---they switch between set and unset at each timestep. Note that this option has no effect for the ``[onInitialize]=true``, ``[onPostEvolution]=false`` case since in that case labels are applied only once (during tree initialization). .. _physics-nodeOperatorMassAccretionHistory: ``nodeOperatorMassAccretionHistory`` ------------------------------------ Records the mass accretion history of each dark matter halo by logging the virial mass at each timestep, building a time-series record used by mass accretion history fitting and mass growth rate analyses. **Parameters** * ``[outputGroupName]`` (default ``var_str('massAccretionHistories')``) — The name of the :term:`HDF5` group to output mass accretion histories to. * ``[includeSpin]`` (default ``.false.``) — If true, include the spin of the halo in the output. * ``[includeSpinVector]`` (default ``.false.``) — If true, include the spin vector of the halo in the output. .. _physics-nodeOperatorMassBoundMaximum: ``nodeOperatorMassBoundMaximum`` -------------------------------- A node operator class that tracks the maximum bound mass achieved by a node. Intended to be paired with the :galacticus-class:`nodePropertyExtractorMassBoundMaximum` property extractor class to extract these masses for output. **Methods** * ``update`` — Update the maximum bound mass of this node. .. _physics-nodeOperatorMassCooled: ``nodeOperatorMassCooled`` -------------------------- Tracks the cumulative mass of gas that has cooled out of the circumgalactic medium (:term:`CGM`) over time, integrating the cooling rate to maintain a running total of cooled gas mass for each node. **Parameters** * ``[resetAfterExtract]`` (default ``.false.``) — If true, the mass of gas cooled is reset to zero after being extracted. .. _physics-nodeOperatorMassHostMaximum: ``nodeOperatorMassHostMaximum`` ------------------------------- A node operator class that tracks the maximum host halo mass which a node has occupied. Intended to be paired with the :galacticus-class:`nodePropertyExtractorMassHostMaximum` property extractor class to extract these masses for output. **Methods** * ``update`` — Update the maximum host mass of this node. .. _physics-nodeOperatorMassProgenitorMaximum: ``nodeOperatorMassProgenitorMaximum`` ------------------------------------- A node operator class that tracks the maximum progenitor halo mass of a node. Intended to be paired with the :galacticus-class:`nodePropertyExtractorMassProgenitorMaximum` property extractor class to extract those ages for output. .. _physics-nodeOperatorMulti: ``nodeOperatorMulti`` --------------------- A node operator class that applies a linked list of multiple child :galacticus-class:`nodeOperatorClass` objects sequentially to each node, enabling a composite set of physical processes to be executed as a single operator. **Methods** * ``columnDescriptions`` — Return a description of the columns. * ``elementCount`` — Return the number of properties in the tuple. * ``extractDouble`` — Extract the double properties from the given ``node``. * ``extractInteger`` — Extract the integer properties from the given ``node``. * ``names`` — Return the names of the properties extracted. * ``descriptions`` — Return descriptions of the properties extracted. * ``unitsInSI`` — Return the units of the properties extracted in the SI system. * ``units`` — Return an object containing units metadata for the properties. * ``ranks`` — Return the ranks of the properties extracted. * ``metaData`` — Populate a hash with meta-data for the property. .. _physics-nodeOperatorNodeFormationTimeCole2000: ``nodeOperatorNodeFormationTimeCole2000`` ----------------------------------------- A node operator class that records the halo formation time using the definition of :cite:t:`cole_hierarchical_2000`, in which a halo is considered newly formed when its mass has grown by a factor ``massFactorReformation`` since the previous formation event. ``reformationOnPromotionOnly`` restricts reformation events to node promotions only (rather than the precise time the mass threshold is crossed during ODE integration). **Methods** * ``reform`` — Implements a halo reformation event. **Parameters** * ``[energyOrbital]`` (default ``1.0d0``) — The orbital energy used in the "cole2000" merger remnant sizes calculation in units of the characteristic orbital energy. * ``[ignoreUnphysicalConditions]`` (default ``.false.``) — If true, ignore unphysical conditions (e.g. negative masses) and leave the size unchanged. * ``[massFactorReformation]`` (default ``2.0d0``) — The factor by which halo mass must have increased to trigger a new formation event. * ``[reformationOnPromotionOnly]`` (default ``.false.``) — Specifies whether halo reformation should occur only at node promotion events, or at the precise time that the halo mass has increased sufficiently in mass. .. _physics-nodeOperatorNodeFormationTimeMassFraction: ``nodeOperatorNodeFormationTimeMassFraction`` --------------------------------------------- A node operator class that records the halo formation time as the epoch when the main-branch progenitor first assembled a fraction ``fractionMassFormation`` (default 0.5) of the final halo mass, using the mass accretion history from :galacticus-class:`darkMatterHaloMassAccretionHistoryClass`. ``assumeMonotonicGrowth`` enables a faster algorithm that assumes monotonic mass growth along each branch. **Parameters** * ``[fractionMassFormation]`` (default ``0.5d0``) — The mass fraction in the main branch progenitor used to define the formation time of each halo. * ``[assumeMonotonicGrowth]`` (default ``.false.``) — If true assume that halo mass growth is monotonic along each branch when computing node formation times. .. _physics-nodeOperatorNodeMajorMergerRecentCount: ``nodeOperatorNodeMajorMergerRecentCount`` ------------------------------------------ A node operator class that counts the number of dark matter halo--halo major mergers (mass ratio :math:`\geq` ``massRatioMajor``, default 0.25) occurring within a lookback interval ``intervalRecent`` before each output time. ``intervalType`` selects absolute Gyr or dynamical-time units; ``intervalFromInfall`` measures the interval from satellite infall rather than from the output time. **Parameters** * ``[massRatioMajor]`` (default ``0.25d0``) — The mass ratio (:math:`M_2/M_1` where :math:`M_2 < M_1`) of merging halos above which the merger should be considered to be "major". * ``[intervalRecent]`` (default ``2.0d0``) — The time interval used to define "recent" mergers. This parameter is in units of Gyr if ``[intervalType]``\ :math:`=`\ ``absolute``, or in units of the halo dynamical time if ``[intervalType]``\ :math:`=`\ ``dynamical``. * ``[intervalType]`` (default ``var_str('dynamical')``) — Specifies the units for the ``[intervalRecent]`` parameter. If set to ``absolute`` then ``[intervalRecent]`` is given in Gyr, while if set to ``dynamical`` ``[intervalRecent]`` is given in units of the halo dynamical time. * ``[intervalFromInfall]`` (default ``.false.``) — Specifies whether "recent" for satellite galaxies is measured from the current time, or from the time at which they were last isolated. .. _physics-nodeOperatorNodeMajorMergerTime: ``nodeOperatorNodeMajorMergerTime`` ----------------------------------- A node operator class that records the cosmic time of the most recent dark matter halo--halo major merger for each node. A merger is classified as major when the progenitor mass ratio :math:`M_2/M_1 \geq` ``fractionMassMajorMerger`` (default 0.25, where :math:`M_2 \leq M_1`). The time is stored as a meta-property of the basic component and is propagated through promotions. **Parameters** * ``[fractionMassMajorMerger]`` (default ``0.25d0``) — The mass ratio (:math:`M_2/M_1` where :math:`M_2 < M_1`) of merging halos above which the merger should be considered to be "major". .. _physics-nodeOperatorNuclearStarClusterGrowth: ``nodeOperatorNuclearStarClusterGrowth`` ---------------------------------------- Computes and applies the gas inflow rate onto the nuclear star cluster (:term:`NSC`) from spheroid gas, driving growth of the :term:`NSC` via differential evolution using a :galacticus-class:`nuclearStarClusterGrowthRatesClass` object. .. _physics-nodeOperatorNull: ``nodeOperatorNull`` -------------------- A null (no-op) node operator class that performs no operations on nodes, serving as a default or placeholder when no physical processes need to be applied by a node operator. **(Default implementation)** **Parameters** * ``[dimensionless]`` (default ``.true.``) — If true the null profile is considered to be dimensionless. .. _physics-nodeOperatorPositionDiscrete: ``nodeOperatorPositionDiscrete`` -------------------------------- Updates node positions in discrete steps at the end of each differential evolution timestep, rather than via continuous interpolation, providing a simplified positional evolution scheme for nodes in the merger tree. .. _physics-nodeOperatorPositionInterpolated: ``nodeOperatorPositionInterpolated`` ------------------------------------ A node operator class that interpolates the 3D comoving positions of nodes between snapshots using the approach of :cite:t:`merson_lightcone_2013`, enabling construction of lightcones from discrete simulation outputs. ``lengthBox`` sets the comoving box side length; ``wrapPeriodic`` controls periodic boundary treatment; ``nodeIndicesReport`` lists node indices for which detailed interpolation information should be reported during processing. **Methods** * ``interpolate`` — Perform the interpolation. **Parameters** * ``[nodeIndicesReport]`` — A list of node indices for which reporting should be performed. * ``[lengthBox]`` (default ``0.0d0``) — The periodic length of the positions. For non-periodic positions, a value of zero should be given. * ``[wrapPeriodic]`` (default ``.true.``) — If true, interpolated positions that lie outside of the periodic box will be wrapped back into the box. .. _physics-nodeOperatorPositionOrphans: ``nodeOperatorPositionOrphans`` ------------------------------- Assigns spatial positions to orphaned satellite galaxies (subhalos that have lost their dark matter through tidal stripping below the resolution limit), typically by continuing the orbital trajectory or placing them at the last known position. .. _physics-nodeOperatorPositionToHost: ``nodeOperatorPositionToHost`` ------------------------------ Sets the position of a satellite subhalo equal to the position of its host halo center, used when detailed orbital tracking is not required and satellites are assumed to reside at the host center for simplified environmental analyses. .. _physics-nodeOperatorPositionTraceDarkMatter: ``nodeOperatorPositionTraceDarkMatter`` --------------------------------------- A node operator class that sets the positions of subhalos to trace the dark matter component of their host halo. **Methods** * ``assignPosition`` — Assign a position to a node such that it traces the dark matter of its host. .. _physics-nodeOperatorPresetNamedShift: ``nodeOperatorPresetNamedShift`` -------------------------------- Propagates preset named node properties from a progenitor to its promoted descendant, ensuring user-defined named scalar or array properties set from external data are correctly inherited when nodes are promoted in the merger tree. .. _physics-nodeOperatorRadiusVirialLastDefined: ``nodeOperatorRadiusVirialLastDefined`` --------------------------------------- A node operator class that tracks the last-defined virial radius. Intended to be paired with the :galacticus-class:`nodePropertyExtractorRadiusVirialLastDefined` property extractor class to extract these times for output. .. _physics-nodeOperatorRamPressureMassLossDisks: ``nodeOperatorRamPressureMassLossDisks`` ---------------------------------------- Computes and applies ram pressure stripping of cold gas from satellite galaxy disks, using the Gunn-Gott criterion or similar to determine the stripped gas mass as a function of the satellite's orbital velocity through the host halo ICM. **Parameters** * ``[luminositiesStellarInactive]`` (default ``.false.``) — If true, stellar luminosities will be treated as inactive properties. .. _physics-nodeOperatorRamPressureMassLossSpheroids: ``nodeOperatorRamPressureMassLossSpheroids`` -------------------------------------------- Computes and applies ram pressure stripping of gas from the spheroid (bulge) component of satellite galaxies as they orbit through the hot intracluster medium, removing rotationally unsupported gas more readily stripped than disk gas. **Parameters** * ``[luminositiesStellarInactive]`` (default ``.false.``) — If true, stellar luminosities will be treated as inactive properties. .. _physics-nodeOperatorSatelliteDecelerationSIDM: ``nodeOperatorSatelliteDecelerationSIDM`` ----------------------------------------- Computes the deceleration of satellite dark matter halos due to self-interactions with the host halo's dark matter, applying a drag force that supplements dynamical friction and can accelerate orbital decay in self-interacting dark matter models. .. _physics-nodeOperatorSatelliteDestructionDensityProfileThreshold: ``nodeOperatorSatelliteDestructionDensityProfileThreshold`` ----------------------------------------------------------- A node operator class that destroys satellites when the mean enclosed density within their tidal radius falls below a threshold expressed as a fraction ``fractionDensityProfileVirialFraction`` of the host halo virial density profile. This criterion approximates complete tidal disruption and prevents unphysically extended low-density subhalo evolution. **Methods** * ``shouldDestroy`` — Return true if the node should be destroyed. **Parameters** * ``[fractionDensityProfileVirialFraction]`` — The absolute mass below which satellites are destroyed. .. _physics-nodeOperatorSatelliteDestructionMassThreshold: ``nodeOperatorSatelliteDestructionMassThreshold`` ------------------------------------------------- A node operator class that destroys satellites when their bound dark matter mass falls below any of three thresholds: ``massDestructionAbsolute`` (an absolute mass in :math:`\mathrm{M}_\odot`, default 0), ``massDestructionMassInfallFraction`` (a fraction of the infall mass, default 0.01), or ``massDestructionMassTreeFraction`` (a fraction of the merger tree root mass, default 0). When ``mergeOnDestruction`` is true, the satellite is merged with its central rather than destroyed outright. **Methods** * ``massDestroy`` — Compute the mass at which the satellite will be destroyed. **Parameters** * ``[massDestructionAbsolute]`` (default ``0.00d0``) — The absolute mass below which satellites are destroyed. * ``[massDestructionMassInfallFraction]`` (default ``0.01d0``) — The fraction of the infall mass below which satellites are destroyed. * ``[massDestructionMassTreeFraction]`` (default ``0.00d0``) — The fraction of the tree mass below which satellites are destroyed. * ``[mergeOnDestruction]`` (default ``.false.``) — If true, destruction actually triggers the satellite to be merged with its central galaxy instead of being destroyed. .. _physics-nodeOperatorSatelliteDynamicalFriction: ``nodeOperatorSatelliteDynamicalFriction`` ------------------------------------------ Applies the Chandrasekhar dynamical friction force to satellite halos orbiting in their host potential, decelerating satellites and driving orbital decay toward the halo center, ultimately leading to satellite merging on a dynamical friction timescale. .. _physics-nodeOperatorSatelliteEvaporationSIDM: ``nodeOperatorSatelliteEvaporationSIDM`` ---------------------------------------- Computes mass loss from satellite halos due to dark matter particle evaporation caused by self-interactions with host halo dark matter particles, an additional stripping channel unique to self-interacting dark matter beyond gravitational tidal stripping. .. _physics-nodeOperatorSatelliteMassLoss: ``nodeOperatorSatelliteMassLoss`` --------------------------------- A node operator class that evolves the bound dark matter mass of satellite halos at each ODE timestep using a :galacticus-class:`darkMatterHaloMassLossRateClass` to compute the mass loss rate. ``massBoundIsInactive`` controls whether the bound mass is treated as an inactive ODE variable (set true for improved performance when mass loss is negligible or prescribed externally). **Methods** * ``tabulate`` — Tabulate the virial density contrast as a function of mass and time. * ``restoreTable`` — Restore a tabulated solution from file. * ``storeTable`` — Store a tabulated solution to file. **Parameters** * ``[velocityCharacteristic]`` (default ``250.0d0``) — The velocity scale at which the :term:`SNe`-driven outflow rate equals the star formation rate in disks. * ``[exponent]`` (default ``3.5d0``) — The velocity scaling of the :term:`SNe`-driven outflow rate in disks. * ``[fraction]`` (default ``0.01d0``) — The normalization :math:`f` of the outflow rate relative to the star formation rate at a reference halo velocity of 200 km/s and expansion factor of 1, setting the overall mass-loading amplitude of the halo-scaling feedback model. * ``[exponentVelocity]`` (default ``-2.0d0``) — The exponent of virial velocity in the outflow rate in disks. * ``[exponentRedshift]`` (default ``0.0d0``) — The power-law exponent of the cosmological expansion factor :math:`(1+z)` in the halo-scaling outflow rate, allowing the mass-loading factor to evolve with redshift; a value of zero gives no redshift evolution. * ``[toleranceRelativeVelocityDispersion]`` (default ``1.0d-6``) — The relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[toleranceRelativeVelocityDispersionMaximum]`` (default ``1.0d-3``) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[radiusNormalization]`` (default ``3.3d-6``) — The initial value appearing in the radius-mass relation * ``[toleranceAbsoluteMass]`` (default ``1.0d-6``) — The mass tolerance used to judge whether the nuclear star cluster is physically plausible. * ``[toleranceRelativeMetallicity]`` (default ``1.0d-4``) — The metallicity tolerance for ODE solution. * ``[inactiveLuminositiesStellar]`` (default ``.false.``) — Specifies whether or not nuclear star cluster stellar luminosities are inactive properties (i.e. do not appear in any ODE being solved). * ``[scaleRelativeMass]`` (default ``1.0d-2``) — The mass scale, relative to the total mass of the node, below which calculations in the delayed very simple hot halo component are allowed to become inaccurate. * ``[starveSatellites]`` (default ``.false.``) — Specifies whether or not the hot halo should be removed ("starved") when a node becomes a satellite. * ``[starveSatellitesOutflowed]`` (default ``.false.``) — Specifies whether or not the outflowed hot halo should be removed ("starved") when a node becomes a satellite. * ``[outflowReturnOnFormation]`` (default ``.false.``) — Specifies whether or not outflowed gas should be returned to the hot reservoir on halo formation events. * ``[angularMomentumAlwaysGrows]`` (default ``.false.``) — Specifies whether or not negative rates of accretion of angular momentum into the hot halo will be treated as positive for the purposes of computing the hot halo angular momentum. * ``[fractionBaryonLimitInNodeMerger]`` (default ``.false.``) — Controls whether the hot gas content of nodes should be limited to not exceed the universal baryon fraction at node merger events. If set to ``true``, hot gas (and angular momentum, abundances, and chemicals proportionally) will be removed from the merged halo to the unaccreted gas reservoir to limit the baryonic mass to the universal baryon fraction where possible. * ``[scaleAbsoluteMass]`` (default ``100.0d0``) — The absolute mass scale below which calculations in the very simple disk component are allowed to become inaccurate. * ``[toleranceAbsoluteMass]`` (default ``1.0d-6``) — The mass tolerance used to judge whether the disk is physically plausible. * ``[toleranceAbsoluteMass]`` (default ``1.0d-6``) — The mass tolerance used to judge whether the disk is physically plausible. * ``[toleranceRelativeMetallicity]`` (default ``1.0d-4``) — The metallicity tolerance for ODE solution. * ``[radiusStructureSolver]`` (default ``1.0d0``) — The radius (in units of the standard scale length) to use in solving for the size of the disk. * ``[structureSolverUseCole2000Method]`` (default ``.false.``) — If true, use the method described in :cite:t:`cole_hierarchical_2000` to correct for difference between thin disk and spherical mass distributions when solving for disk radii. * ``[diskNegativeAngularMomentumAllowed]`` (default ``.true.``) — Specifies whether or not negative angular momentum is allowed for the disk. * ``[inactiveLuminositiesStellar]`` (default ``.false.``) — Specifies whether or not disk stellar luminosities are inactive properties (i.e. do not appear in any ODE being solved). * ``[postStepZeroNegativeMasses]`` (default ``.true.``) — If true, negative masses will be zeroed after each ODE step. Note that this can lead to non-conservation of mass. * ``[ratioAngularMomentumSolverRadius]`` (default ``ratioAngularMomentumSolverRadiusDefault``) — The assumed ratio of the specific angular momentum at the structure solver radius to the mean specific angular momentum of the standard disk component. * ``[scaleAbsoluteMass]`` (default ``100.0d0``) — The absolute mass scale below which calculations in the very simple spheroid component are allowed to become inaccurate. * ``[toleranceAbsoluteMass]`` (default ``1.0d-6``) — The mass tolerance used to judge whether the spheroid is physically plausible. * ``[efficiencyEnergeticOutflow]`` (default ``1.0d-2``) — The proportionality factor relating mass outflow rate from the spheroid to the energy input rate divided by :math:`V_\mathrm{spheroid}^2`. * ``[toleranceRelativeMetallicity]`` (default ``1.0d-4``) — The metallicity tolerance for ODE solution. * ``[toleranceAbsoluteMass]`` (default ``1.0d-6``) — The mass tolerance used to judge whether the spheroid is physically plausible. * ``[inactiveLuminositiesStellar]`` (default ``.false.``) — Specifies whether or not spheroid stellar luminosities are inactive properties (i.e. do not appear in any ODE being solved). * ``[postStepZeroNegativeMasses]`` (default ``.true.``) — If true, negative masses will be zeroed after each ODE step. Note that this can lead to non-conservation of mass. * ``[ratioAngularMomentumScaleRadius]`` (default ``ratioAngularMomentumScaleRadiusDefault``) — The assumed ratio of the specific angular momentum at the scale radius to the mean specific angular momentum of the standard spheroid component. * ``[outputMergers]`` (default ``.false.``) — Determines whether or not properties of black hole mergers will be output. * ``[fileNames]`` — The name of the file(s) from which merger tree data should be read when using the ``[mergerTreeConstruct]``\ :math:`=`\ ``read`` tree construction method. * ``[forestSizeMaximum]`` (default ``0_c_size_t``) — The maximum number of nodes allowed in a forest before it will be broken up into trees and processed individually. A value of 0 implies that forests should never be split. * ``[presetMergerTimes]`` (default ``.true.``) — Specifies whether merging times for subhalos should be preset when reading merger trees from a file. * ``[presetMergerNodes]`` (default ``.true.``) — Specifies whether the target nodes for mergers should be preset (i.e. determined from descendant nodes). If they are not, merging will be with each satellite's host node. * ``[presetSubhaloMasses]`` (default ``.true.``) — Specifies whether subhalo mass should be preset when reading merger trees from a file. * ``[subhaloAngularMomentaMethod]`` (default ``var_str('summation')``) — Specifies how to account for subhalo angular momentum when adding subhalo mass to host halo mass. * ``[presetSubhaloIndices]`` (default ``.true.``) — Specifies whether subhalo indices should be preset when reading merger trees from a file. * ``[presetPositions]`` (default ``.true.``) — Specifies whether node positions should be preset when reading merger trees from a file. * ``[presetScaleRadii]`` (default ``.true.``) — Specifies whether node scale radii should be preset when reading merger trees from a file. * ``[scaleRadiiFailureIsFatal]`` (default ``.true.``) — Specifies whether failure to set a node scale radii should be regarded as a fatal error. (If not, a fallback method to set scale radius is used in such cases.) * ``[presetScaleRadiiConcentrationMinimum]`` (default ``3.0d0``) — The lowest concentration (:math:`c=r_\mathrm{vir}/r_\mathrm{s}`) allowed when setting scale radii, :math:`r_\mathrm{s}`. * ``[presetScaleRadiiConcentrationMaximum]`` (default ``60.0d0``) — The largest concentration (:math:`c=r_\mathrm{vir}/r_\mathrm{s}`) allowed when setting scale radii, :math:`r_\mathrm{s}`. * ``[presetScaleRadiiMinimumMass]`` (default ``0.0d0``) — The minimum halo mass for which scale radii should be preset (if ``[presetScaleRadii]``\ :math:`=`\ ``true``). * ``[presetUnphysicalAngularMomenta]`` (default ``.false.``) — When reading merger trees from file and presetting halo angular momenta, detect unphysical (<=0) angular momenta and preset them using the selected halo spin method. * ``[presetAngularMomenta]`` (default ``.true.``) — Specifies whether node angular momenta should be preset when reading merger trees from a file. * ``[presetAngularMomenta3D]`` (default ``.false.``) — Specifies whether node 3-D angular momenta vectors should be preset when reading merger trees from a file. * ``[presetOrbits]`` (default ``.true.``) — Specifies whether node orbits should be preset when reading merger trees from a file. * ``[presetOrbitsSetAll]`` (default ``.true.``) — Forces all orbits to be set. If the computed orbit does not cross the virial radius, then select one at random instead. * ``[presetOrbitsAssertAllSet]`` (default ``.true.``) — Asserts that all virial orbits must be preset. If any can not be set, Galacticus will stop. * ``[presetOrbitsBoundOnly]`` (default ``.true.``) — Specifies whether only bound node orbits should be set. * ``[beginAt]`` (default ``-1_kind_int8``) — Specifies the index of the tree to begin at. (Use -1 to always begin with the first tree.) * ``[outputTimeSnapTolerance]`` (default ``0.0d0``) — The relative tolerance required to "snap" a node time to the closest output time. * ``[missingHostsAreFatal]`` (default ``.true.``) — Specifies whether nodes with missing host nodes should be considered to be fatal---see the discussion of missing host nodes in the class description above. * ``[treeIndexToRootNodeIndex]`` (default ``.false.``) — Specifies whether tree indices should always be set to the index of their root node. * ``[allowBranchJumps]`` (default ``.true.``) — Specifies whether nodes are allowed to jump between branches. * ``[allowSubhaloPromotions]`` (default ``.true.``) — Specifies whether subhalos are permitted to be promoted to being isolated halos. * ``[alwaysPromoteMostMassive]`` (default ``.false.``) — If true, the most massive progenitor is always promoted to be the primary progenitor *even if* it is a subhalo. Otherwise, isolated progenitors are given priority over subhalo progenitors, even if they are less massive. * ``[presetNamedReals]`` — Names of real datasets to be additionally read and stored in the nodes of the merger tree when using the ``[mergerTreeConstruct]``\ :math:`=`\ ``read`` tree construction method. * ``[presetNamedIntegers]`` — Names of integer datasets to be additionally read and stored in the nodes of the merger tree when using the ``[mergerTreeConstruct]``\ :math:`=`\ ``read`` tree construction method. * ``[fatalMismatches]`` (default ``.true.``) — Specifies whether mismatches in cosmological parameter values between Galacticus and "Sussing Merger Trees" format :cite:p:`srisawat_sussing_2013` merger tree files should be considered fatal. * ``[fatalNonTreeNode]`` (default ``.true.``) — Specifies whether nodes in snapshot files but not in the merger tree file should be considered fatal when importing from the "Sussing Merger Trees" format :cite:p:`srisawat_sussing_2013`. * ``[subvolumeCount]`` (default ``1``) — Specifies the number of subvolumes *along each axis* into which a "Sussing Merger Trees" format :cite:p:`srisawat_sussing_2013` merger tree files should be split for processing through Galacticus. * ``[subvolumeBuffer]`` (default ``0.0d0``) — Specifies the buffer region (in units of Mpc\ :math:`/h` to follow the format convention) around subvolumes of a "Sussing Merger Trees" format :cite:p:`srisawat_sussing_2013` merger tree file which should be read in to ensure that no halos are missed from trees. * ``[subvolumeIndex]`` (default ``[0,0,0]``) — Specifies the index (in each dimension) of the subvolume of a "Sussing Merger Trees" format :cite:p:`srisawat_sussing_2013` merger tree file to process. Indices range from 0 to ``[subvolumeCount]``\ :math:`-1`. * ``[badValue]`` (default ``-0.5d0``) — Use for bad value detection in "Sussing" merger trees. Values for scale radius and halo spin which exceed this threshold are assumed to be bad. * ``[badValueTest]`` (default ``var_str('lessThan')``) — Use for bad value detection in "Sussing" merger trees. Values which exceed the threshold in ths specified direction are assumed to be bad. * ``[treeSampleRate]`` (default ``1.0d0``) — Specify the probability that any given tree should processed (to permit subsampling). * ``[massOptions]`` (default ``var_str('default')``) — Mass option for Sussing merger trees. * ``[mergeProbability]`` (default ``0.1d0``) — The largest probability of branching allowed in a timestep in merger trees built by the :cite:t:`cole_hierarchical_2000` method. * ``[accretionLimit]`` (default ``0.1d0``) — The largest fractional mass change due to subresolution accretion allowed in a timestep in merger trees built by the :cite:t:`cole_hierarchical_2000` method. * ``[redshiftMaximum]`` (default ``1.0d5``) — The highest redshift to which merger trees will be built in the :cite:t:`cole_hierarchical_2000` method. * ``[toleranceTimeEarliest]`` (default ``2.0d-6``) — The fractional tolerance used to judge if a branch is at the earliest allowed time in the tree. * ``[branchIntervalStep]`` (default ``.true.``) — If ``false`` use the original :cite:t:`cole_hierarchical_2000` method to determine whether branching occurs in a timestep. If ``true`` draw branching intervals from a negative exponential distribution. * ``[toleranceResolutionSelf]`` (default ``1.0d-6``) — The fractional tolerance in node mass at the resolution limit below which branch mis-orderings will be ignored. * ``[toleranceResolutionParent]`` (default ``1.0d-3``) — The fractional tolerance in parent node mass at the resolution limit below which branch mis-orderings will be ignored. * ``[ignoreNoProgress]`` (default ``.false.``) — If true, failure to make progress on a branch will be ignored (and the branch terminated). * ``[ignoreWellOrdering]`` (default ``.false.``) — If true, non-well-ordered tree branches are pruned away instead of causing errors.. * ``[redshiftBase]`` (default ``0.0d0``) — The redshift at which to plant the base node when building merger trees. * ``[timeSnapTolerance]`` (default ``1.0d-6``) — The fractional tolerance within which the tree base time will be snapped to a nearby output time. * ``[treeBeginAt]`` (default ``0``) — The index (in order of increasing base halo mass) of the tree at which to begin when building merger trees. A value of "0" means to begin with tree number 1 (if processing trees in ascending order), or equal to the number of trees (otherwise). * ``[processDescending]`` (default ``.true.``) — If true, causes merger trees to be processed in order of decreasing mass. * ``[splitTrees]`` (default ``.false.``) — If true, prune away any nodes of the tree that are not needed to determine evolution up to the latest time at which a node is present inside the lightcone. This typically leads to a tree splitting into a forest of trees. * ``[label]`` — A label for the mass function. * ``[comment]`` — A descriptive comment for the mass function. * ``[starFormationRates]`` — The star formation rates corresponding to bin centers. * ``[covarianceBinomialBinsPerDecade]`` (default ``10``) — The number of bins per decade of star formation rate to use when constructing star formation rate function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMinimum]`` (default ``1.0d10``) — The star formation rate to consider when constructing star formation rate function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMaximum]`` (default ``1.0d12``) — The maximum star formation rate to consider when constructing star formation rate function covariance matrices for main branch galaxies. * ``[targetLabel]`` — Label for the target dataset. * ``[functionValueTarget]`` — The target function for likelihood calculations. * ``[functionCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[likelihoodBins]`` — Controls which bins in the stellar mass--halo mass relation will be used in computing the likelihood: * *not present*: all bins are included in the likelihood calculation; * *list of integers*: use only the mass bin(s) given in this list in the likelihood calculation; * ``auto``: use only bins which have a non-zero number of halos contributing to them in the likelihood calculation. * ``[fileNameTarget]`` — The name of the file containing the target data. * ``[redshiftInterval]`` (default ``1``) — The redshift interval to use. * ``[likelihoodNormalize]`` (default ``.false.``) — If true, then normalize the likelihood to make it a probability density. * ``[computeScatter]`` (default ``.false.``) — If true, the scatter in log10(stellar mass) is computed. Otherwise, the mean is computed. * ``[systematicErrorPolynomialCoefficient]`` (default ``[0.0d0]``) — The coefficients of the systematic error polynomial for stellar mass in the stellar vs halo mass relation. * ``[systematicErrorMassHaloPolynomialCoefficient]`` (default ``[0.0d0]``) — The coefficients of the systematic error polynomial for halo mass in the stellar vs halo mass relation. * ``[errorTolerant]`` (default ``.false.``) — Error tolerance for the N-body spin distribution operator. * ``[logNormalRange]`` (default ``100.0d0``) — The multiplicative range of the log-normal distribution used to model the distribution of the mass and energy terms in the spin parameter. Specifically, the lognormal distribution is truncated outside the range :math:`(\lambda_\mathrm{m}/R,\lambda_\mathrm{m} R`, where :math:`\lambda_\mathrm{m}` is the measured spin, and :math:`R=`\ ``[logNormalRange]`` * ``[fileName]`` — The name of the file from which to read spin distribution function parameters. * ``[comment]`` — A comment describing this analysis. * ``[label]`` — A label for this analysis. * ``[label]`` — A label for the spin distribution function. * ``[comment]`` — A descriptive comment for the spin distribution function. * ``[redshift]`` — The redshift at which to compute the spin distribution function. * ``[massMinimum]`` — Minimum halo mass for the spin distribution function. * ``[massMaximum]`` — Maximum halo mass for the spin distribution function. * ``[spinMinimum]`` — Minimum spin for the spin distribution function. * ``[spinMaximum]`` — Maximum spin for the spin distribution function. * ``[countSpinsPerDecade]`` — Number of spins per decade at which to compute the spin distribution function. * ``[timeRecent]`` — Halos which experienced a major node merger within a time :math:`\Delta t=`\ ``[timeRecent]`` of the analysis time will be excluded from the analysis. * ``[particleCountMinimum]`` — The minimum particle count to assume when computing N-body errors on spins. * ``[massParticle]`` — The mass of the particle used in the N-body simulation from which spins were measured. * ``[energyEstimateParticleCountMaximum]`` — The maximum number of particles used in estimating halo energies when measuring spins from the N-body simulation. * ``[targetLabel]`` — Label for the target dataset. * ``[functionValueTarget]`` — The target function for likelihood calculations. * ``[functionCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[label]`` — A label for the mass function. * ``[comment]`` — A descriptive comment for the mass function. * ``[masses]`` — The masses corresponding to bin centers. * ``[covarianceBinomialBinsPerDecade]`` (default ``10``) — The number of bins per decade of halo mass to use when constructing HI mass function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMinimum]`` (default ``1.0d8``) — The minimum halo mass to consider when constructing HI mass function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMaximum]`` (default ``1.0d16``) — The maximum halo mass to consider when constructing HI mass function covariance matrices for main branch galaxies. * ``[targetLabel]`` — Label for the target dataset. * ``[functionValueTarget]`` — The target function for likelihood calculations. * ``[functionCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[label]`` — A label for the luminosity function. * ``[comment]`` — A descriptive comment for the luminosity function. * ``[magnitudesAbsolute]`` — The absolute magnitudes corresponding to bin centers. * ``[covarianceBinomialBinsPerDecade]`` (default ``10``) — The number of bins per decade of halo mass to use when constructing luminosity function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMinimum]`` (default ``1.0d8``) — The minimum halo mass to consider when constructing luminosity function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMaximum]`` (default ``1.0d16``) — The maximum halo mass to consider when constructing luminosity function covariance matrices for main branch galaxies. * ``[targetLabel]`` — Label for the target dataset. * ``[functionValueTarget]`` — The target function for likelihood calculations. * ``[functionCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[label]`` — A label for the luminosity function. * ``[comment]`` — A descriptive comment for the luminosity function. * ``[luminosities]`` — The luminosities corresponding to bin centers. * ``[covarianceBinomialBinsPerDecade]`` (default ``10``) — The number of bins per decade of halo mass to use when constructing luminosity function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMinimum]`` (default ``1.0d8``) — The minimum halo mass to consider when constructing luminosity function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMaximum]`` (default ``1.0d16``) — The maximum halo mass to consider when constructing luminosity function covariance matrices for main branch galaxies. * ``[includeNitrogenII]`` (default ``.false.``) — If true, include contamination by the [NII] (6548\AA :math:`+` 6584\AA) doublet. * ``[depthOpticalISMCoefficient]`` (default ``1.0d0``) — Multiplicative coefficient for optical depth in the ISM. * ``[targetLabel]`` — Label for the target dataset. * ``[functionValueTarget]`` — The target function for likelihood calculations. * ``[functionCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[label]`` — A label for the mass function. * ``[comment]`` — A descriptive comment for the mass function. * ``[masses]`` — The masses corresponding to bin centers. * ``[covarianceBinomialBinsPerDecade]`` (default ``10``) — The number of bins per decade of halo mass to use when constructing stellar mass function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMinimum]`` (default ``1.0d8``) — The minimum halo mass to consider when constructing stellar mass function covariance matrices for main branch galaxies. * ``[covarianceBinomialMassHaloMaximum]`` (default ``1.0d16``) — The maximum halo mass to consider when constructing stellar mass function covariance matrices for main branch galaxies. * ``[targetLabel]`` — Label for the target dataset. * ``[functionValueTarget]`` — The target function for likelihood calculations. * ``[functionCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[rootVarianceFractionalMinimum]`` (default ``0.0d0``) — The minimum fractional root variance (relative to the target dataset). * ``[fileName]`` — The name of the file from which to read concentration distribution function parameters. * ``[comment]`` — A comment describing this analysis. * ``[label]`` — A label for this analysis. * ``[label]`` — A label for the concentration distribution function. * ``[comment]`` — A descriptive comment for the concentration distribution function. * ``[redshift]`` — The redshift at which to compute the concentration distribution function. * ``[massMinimum]`` — Minimum halo mass for the concentration distribution function. * ``[massMaximum]`` — Maximum halo mass for the concentration distribution function. * ``[concentrationMinimum]`` — Minimum concentration for the concentration distribution function. * ``[concentrationMaximum]`` — Maximum concentration for the concentration distribution function. * ``[countConcentrationsPerDecade]`` — Number of concentrations per decade at which to compute the concentration distribution function. * ``[timeRecent]`` — Halos which experienced a major node merger within a time :math:`\Delta t=`\ ``[timeRecent]`` of the analysis time will be excluded from the analysis. * ``[massParticle]`` — The particle mass in the source N-body simulation. * ``[targetLabel]`` — Label for the target dataset. * ``[functionValueTarget]`` — The target function for likelihood calculations. * ``[functionCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[fileName]`` — The name of the file from which to read star forming main sequence function parameters. * ``[comment]`` — A comment describing this analysis. * ``[label]`` — A label for this analysis. * ``[label]`` — A label for the star forming main sequence function. * ``[comment]`` — A descriptive comment for the star forming main sequence function. * ``[massMinimum]`` — Minimum stellar mass for the star forming main sequence function. * ``[massMaximum]`` — Maximum stellar mass for the star forming main sequence function. * ``[countMassesPerDecade]`` — Number of masses per decade at which to compute the star forming main sequence function. * ``[targetLabel]`` — Label for the target dataset. * ``[meanValueTarget]`` — The target function for likelihood calculations. * ``[meanCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[label]`` — A label for the mass function. * ``[comment]`` — A descriptive comment for the mass function. * ``[separations]`` — The separations corresponding to bin centers. * ``[massMinima]`` — The minimum mass of each mass sample. * ``[massMaxima]`` — The maximum mass of each mass sample. * ``[massHaloBinsPerDecade]`` (default ``10``) — The number of bins per decade of halo mass to use when constructing the mass function covariance matrix for main branch galaxies. * ``[massHaloMinimum]`` (default ``1.0d8``) — The minimum halo mass to consider when constructing the mass function covariance matrix for main branch galaxies. * ``[massHaloMaximum]`` (default ``1.0d16``) — The maximum halo mass to consider when constructing the mass function covariance matrix for main branch galaxies. * ``[wavenumberCount]`` (default ``60_c_size_t``) — The number of bins in wavenumber to use in computing the correlation function. * ``[wavenumberMinimum]`` (default ``1.0d-3``) — The minimum wavenumber to use when computing the correlation function. * ``[wavenumberMaximum]`` (default ``1.0d4``) — The maximum wavenumber to use when computing the correlation function. * ``[integralConstraint]`` — The integral constraint for these correlation functions. * ``[depthLineOfSight]`` — The line-of-sight depth over which the correlation function was projected. * ``[halfIntegral]`` — Set to true if the projection integrand should be over line-of-sight depths greater than zero. * ``[binnedProjectedCorrelationTarget]`` — The target function for likelihood calculations. * ``[binnedProjectedCorrelationCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[targetLabel]`` (default ``var_str('')``) — A label for the target dataset in a plot of this analysis. * ``[starFormationRateSpecificQuiescentLogarithmic]`` — The base-10 logarithm specific star formation rate (in units of Gyr\ :math:`^{-1}`) separating quiescent and star-forming galaxies. * ``[starFormationRateSpecificLogarithmicError]`` — The observational fractional error in specific star formation rate (in units of dex) of galaxies. * ``[fileName]`` — The name of the file from which to read quiescent fraction function parameters. * ``[comment]`` — A comment describing this analysis. * ``[label]`` — A label for this analysis. * ``[label]`` — A label for the star forming main sequence function. * ``[comment]`` — A descriptive comment for the star forming main sequence function. * ``[massMinimum]`` — Minimum stellar mass for the star forming main sequence function. * ``[massMaximum]`` — Maximum stellar mass for the star forming main sequence function. * ``[countMassesPerDecade]`` — Number of masses per decade at which to compute the star forming main sequence function. * ``[targetLabel]`` — Label for the target dataset. * ``[meanValueTarget]`` — The target function for likelihood calculations. * ``[meanCovarianceTarget]`` — The target function covariance for likelihood calculations. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[radiusFractionalTruncateMinimum]`` (default ``2.0d0``) — The minimum radius (in units of the virial radius) to begin truncating the density profile. * ``[radiusFractionalTruncateMaximum]`` (default ``4.0d0``) — The maximum radius (in units of the virial radius) to finish truncating the density profile. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[velocityDispersionApproximate]`` (default ``.true.``) — If ``true``, radial velocity dispersion is computed using an approximate method in which we assume that :math:`\sigma_\mathrm{r}^2(r) \rightarrow \sigma_\mathrm{r}^2(r) - (2/3) \epsilon(r)`, where :math:`\epsilon(r)` is the specific heating energy. If ``false`` then radial velocity dispersion is computed by numerically solving the Jeans equation. * ``[tolerateEnclosedMassIntegrationFailure]`` (default ``.false.``) — If ``true``, tolerate failures to find the mass enclosed as a function of radius. * ``[tolerateVelocityDispersionFailure]`` (default ``.false.``) — If ``true``, tolerate failures to compute the velocity dispersion. * ``[tolerateVelocityMaximumFailure]`` (default ``.false.``) — If ``true``, tolerate failures to find the radius of the maximum circular velocity. * ``[toleratePotentialIntegrationFailure]`` (default ``.false.``) — If ``true``, tolerate numerical failures when computing the gravitational potential of a heated dark matter profile, allowing the calculation to continue with a fallback result rather than aborting. * ``[toleranceRelativeVelocityDispersion]`` (default ``1.0d-6``) — The relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[toleranceRelativeVelocityDispersionMaximum]`` (default ``1.0d-3``) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[fractionRadiusFinalSmall]`` (default ``1.0d-3``) — The initial radius is limited to be no smaller than this fraction of the final radius. This can help avoid problems in profiles that are extremely close to being disrupted. * ``[toleranceRelativePotential]`` (default ``1.0d-3``) — The maximum allowed relative tolerance to use in numerical solutions for the gravitational potential in dark-matter-only density profiles before aborting. * ``[tolerateVelocityMaximumFailure]`` (default ``.true.``) — If true, tolerate failures to find the radius of the peak in the rotation curve. * ``[lengthResolution]`` — The gravitational softening length :math:`\Delta x` (in Mpc) of the N-body simulation, which sets the minimum spatial scale below which the dark matter profile is smoothed to avoid artificial two-body effects. * ``[massResolution]`` — The mass resolution :math:`\Delta M` (in :math:`\mathrm{M}_\odot`) of the N-body simulation, representing the minimum halo mass that can be resolved; profiles of halos near this limit are softened to account for particle discreteness effects. * ``[resolutionIsComoving]`` — If true, the resolution length is assumed to be fixed in comoving coordinates, otherwise in physical coordinates. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[C]`` (default ``400.0d0``) — The parameter :math:`C` appearing in the halo concentration algorithm of :cite:t:`ludlow_mass-concentration-redshift_2016`. * ``[f]`` (default ``0.02d0``) — The parameter :math:`f` appearing in the halo concentration algorithm of :cite:t:`ludlow_mass-concentration-redshift_2016`. * ``[timeFormationSeekDelta]`` (default ``0.0d0``) — The parameter :math:`\Delta \log t` by which the logarithm of the trial formation time is incremented when stepping through the formation history of a node to find the formation time. If set to zero (or a negative value) the cumulative mass histories of nodes are assumed to be monotonic functions of time, and the formation time is instead found by a root finding algorithm, * ``[massBoundIsInactive]`` (default ``.false.``) — Specifies whether or not the bound mass of the satellite component is inactive (i.e. does not appear in any ODE being solved). * ``[useLastIsolatedTime]`` (default ``.false.``) — If true, evaluate the halo virial radius using a the virial density definition at the last isolated time of the halo. * ``[filterName]`` — The filter to select. * ``[filterType]`` — The filter type (rest or observed) to select. * ``[redshiftBand]`` — The redshift of the band (if not the output redshift). * ``[postprocessChain]`` — The postprocessing chain to use. * ``[cloudyTableFileName]`` (default ``var_str('%DATASTATICPATH%/hiiRegions/emissionLineLuminosities_BC2003_highResolution_imfChabrier.hdf5')``) — The file of emission line luminosities to use. * ``[lineNames]`` — The emission lines to extract. * ``[component]`` — The component from which to extract star formation rate. * ``[toleranceRelative]`` (default ``1.0d-3``) — The relative tolerance used in integration over stellar population spectra. * ``[component]`` — The component from which to extract star formation rate. * ``[radiusCore]`` — The soliton core radius (in Mpc) characterizing the size of the quantum pressure-supported central core of the fuzzy dark matter halo; the density profile flattens inside this scale. * ``[densitySolitonCentral]`` — The central density (in :math:`\mathrm{M}_\odot`/Mpc\ :math:`^3`) of the solitonic core at :math:`r=0`, which sets the overall normalization of the density profile :math:`\rho(r) = \rho_\mathrm{c} [1+(r/r_c)^2]^{-8}`. * ``[toleranceRelativePotential]`` (default ``1.0d-3``) — The relative tolerance used in numerical ODE solutions for the gravitational potential of the solitonic core profile. * ``[dimensionless]`` (default ``.true.``) — If true the soliton profile is treated as dimensionless (scale-free), allowing its radial and density quantities to be specified in arbitrary units. * ``[componentType]`` (default ``var_str('unknown')``) — The galactic structure component type (e.g.\ dark matter halo, disk, spheroid) represented by this mass distribution, used for component-specific queries. * ``[massType]`` (default ``var_str('unknown')``) — The mass type (e.g.\ dark matter, baryonic, total) represented by this mass distribution, used for mass-type-specific queries. * ``[radiusTransition]`` — The transition radius (in Mpc) at which the density profile smoothly switches from the halo profile to the accretion flow, controlled by the fourth-order transition function :math:`f_\mathrm{trans}(r)`. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[componentType]`` (default ``var_str('unknown')``) — The component type that this mass distribution represents. * ``[massType]`` (default ``var_str('unknown')``) — The mass type that this mass distribution represents. * ``[timeAge]`` — The age of the halo (in Gyr) since its formation, determining the total time available for SIDM self-interactions to thermalize the inner halo and produce an isothermal core. * ``[velocityRelativeMean]`` — Mean relative velocity to calculate self interaction cross section. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[componentType]`` (default ``var_str('unknown')``) — The component type that this mass distribution represents. * ``[massType]`` (default ``var_str('unknown')``) — The mass type that this mass distribution represents. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[componentType]`` (default ``var_str('unknown')``) — The component type that this mass distribution represents. * ``[massType]`` (default ``var_str('unknown')``) — The mass type that this mass distribution represents. * ``[tolerateVelocityMaximumFailure]`` (default ``.false.``) — If true, tolerate failures to find the radius of the peak in the rotation curve. * ``[tolerateEnclosedMassIntegrationFailure]`` (default ``.false.``) — If ``true``, tolerate failures to find the mass enclosed as a function of radius. * ``[toleratePotentialIntegrationFailure]`` (default ``.false.``) — If ``true``, tolerate failures to compute the potential. * ``[fractionRadiusFinalSmall]`` (default ``1.0d-3``) — The initial radius is limited to be no smaller than this fraction of the final radius. This can help avoid problems in profiles that are extremely close to being disrupted. * ``[toleranceRelativePotential]`` (default ``1.0d-3``) — The maximum allowed relative tolerance to use in numerical solutions for the gravitational potential in dark-matter-only density profiles before aborting. * ``[lengthResolution]`` — The spatial resolution length scale (in Mpc) below which the underlying density profile is softened to a flat core, mimicking the finite force resolution of an N-body simulation. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[componentType]`` (default ``var_str('unknown')``) — The component type that this mass distribution represents. * ``[massType]`` (default ``var_str('unknown')``) — The mass type that this mass distribution represents. * ``[massMinimum]`` — The minimum halo mass (in :math:`\mathrm{M}_\odot`) below which halos are excluded from the mass function histogram. * ``[massMaximum]`` — The maximum halo mass (in :math:`\mathrm{M}_\odot`) above which halos are excluded from the mass function histogram. * ``[massCountPerDecade]`` — The number of logarithmic bins per decade of halo mass used when constructing the halo mass function. * ``[description]`` — A human-readable description of this mass function dataset, stored as metadata in the output file. * ``[simulationReference]`` — A bibliographic reference for the N-body simulation from which this mass function is derived, stored as metadata. * ``[simulationURL]`` — A URL pointing to the publicly accessible dataset or documentation for the N-body simulation, stored as metadata. * ``[bootstrapSampleCount]`` (default ``30_c_size_t``) — The number of bootstrap resamples of the particles that should be used. * ``[representativeMinimumCount]`` (default ``10_c_size_t``) — Minimum number of representative particles used to compute the center of a halo. * ``[tolerance]`` (default ``1.0d-2``) — The tolerance in the summed weight of bound particles which must be attained to declare convergence. * ``[bootstrapSampleRate]`` (default ``1.0d0``) — The sampling rate for particles. * ``[representativeFraction]`` (default ``0.05d0``) — Fraction of bound particles used to compute the center of a halo. * ``[analyzeAllParticles]`` (default ``.true.``) — If true, all particles are assumed to be self-bound at the beginning of the analysis. Unbound particles at previous times are allowed to become bound in the current snapshot. If false and the self-bound information from the previous snapshot is available, only the particles that are self-bound at the previous snapshot are assumed to be bound at the beginning of the analysis. * ``[useVelocityMostBound]`` (default ``.false.``) — If true, the velocity of the most bound particle in velocity space is used as the representative velocity of the satellite. If false, use the mass weighted mean velocity (center-of-mass velocity) of self-bound particles instead. * ``[orderRotation]`` (default ``var_str('none')``) — The order in which evaluation of likelihoods should be rotated as a function of process number. * ``[logLikelihoodAccept]`` (default ``huge(0.0d0)``) — The log-likelihood which should be "accepted"---once the log-likelihood reaches this value (or larger) no further updates to the chain will be made. * ``[report]`` (default ``.false.``) — If true, report on the log-likelihood obtained. * ``[means]`` — The mean of the multivariate normal distribution. * ``[covariance]`` — The covariance matrix for the of the multivariate normal distribution. * ``[countForestsMaximum]`` (default ``-1_c_size_t``) — If set to a positive number, this is the maximum number of forests that will be evolved. * ``[walltimeMaximum]`` (default ``-1_kind_int8``) — If set to a positive number, this is the maximum wall time for which forest evolution is allowed to proceed before the task gives up. * ``[tolerateFailures]`` (default ``.false.``) — If true then failures to evolve a forest are tolerated. The forest is evolved no further, but evolution of other forests continues. * ``[evolveForestsInParallel]`` (default ``.true.``) — If true then each forest is evolved by a separate OpenMP thread. Otherwise, a single thread evolves all forests. * ``[suspendToRAM]`` (default ``.true.``) — Specifies whether trees should be suspended to RAM (otherwise they are suspend to file). * ``[suspendPath]`` — The path to which tree suspension files will be stored. * ``[timeIntervalCheckpoint]`` (default ``-1_kind_int8``) — If positive, gives the time in seconds between storing of checkpoint files. If zero or negative, no checkpointing is performed.. * ``[fileNameCheckpoint]`` — The path to which checkpoint data will be stored. * ``[logM0]`` (default ``10.0d0``) — The parameter :math:`\log_{10} M_0` (with :math:`M_0` in units of :math:`\mathrm{M}_\odot`) appearing in the star formation rate threshold expression for the star formation rate galactic filter class. * ``[logSFR0]`` (default ``9.0d0``) — The parameter :math:`\alpha_0` appearing in the star formation rate threshold expression for the star formation rate galactic filter class. * ``[logSFR1]`` (default ``0.0d0``) — The parameter :math:`\alpha_1` appearing in the star formation rate threshold expression for the star formation rate galactic filter class. * ``[cW]`` (default ``3.78062835d0``) — The parameter :math:`c_\mathrm{W}` in the :cite:t:`bohr_halo_2021` power spectrum window function. * ``[beta]`` (default ``3.4638743d0``) — The parameter :math:`\beta` in the :cite:t:`bohr_halo_2021` power spectrum window function. * ``[transferFunctionType]`` (default ``var_str('darkMatter')``) — Specifies whether to use the ``darkMatter`` or ``total`` transfer function. * ``[fileName]`` — The name of the file from which to read a tabulated transfer function. * ``[redshift]`` (default ``0.0d0``) — The redshift of the transfer function to read. * ``[factorWavenumberSmoothExtrapolation]`` (default ``0.0d0``) — If positive, and extrapolation is used at high wavenumbers, the slope for extrapolation will be set by averaging over wavenumbers from :math:`k_\mathrm{max}/f` to :math:`k_\mathrm{max}`, where :math:`f=`\ ``[factorWavenumberSmoothExtrapolation]`` and :math:`k_\mathrm{max}` is the highest wavenumber tabulated. This avoids spurious extrapolation for highly oscillatory transfer functions. * ``[acceptNegativeValues]`` (default ``.false.``) — If true, negative values in the transfer function are allowed (and the absolute value is taken prior to interpolation). Otherwise, negative values result in an error. * ``[fractionalTimeStep]`` (default ``0.01d0``) — The fractional time step used when computing barrier crossing rates (i.e. the step used in finite difference calculations). * ``[fileName]`` (default ``var_str('none')``) — The name of the file to/from which tabulations of barrier first crossing probabilities should be written/read. If set to "``none``" tables will not be stored. * ``[fractionalTimeStep]`` (default ``0.01d0``) — The fractional time step used when computing barrier crossing rates (i.e. the step used in finite difference calculations). * ``[varianceNumberPerUnitProbability]`` (default ``1000``) — The number of points to tabulate per unit variance for first crossing probabilities. * ``[varianceNumberPerUnit]`` (default ``40``) — The number of tabulation points per unit of :math:`\sigma^2` used when building the rate look-up table for the Farahi excursion-set first-crossing distribution; higher values improve interpolation accuracy at the cost of memory and initialization time. * ``[varianceNumberPerDecade]`` (default ``400``) — The number of points to tabulate per decade of progenitor variance for first crossing rates. * ``[varianceNumberPerDecadeNonCrossing]`` (default ``40``) — The number of points to tabulate per decade of progenitor variance for non-crossing rates. * ``[timeNumberPerDecade]`` (default ``10``) — The number of tabulation points per decade of cosmic time used when building the first-crossing rate look-up table as a function of time; higher values improve temporal interpolation accuracy for rapidly evolving cosmologies. * ``[varianceIsUnlimited]`` (default ``.false.``) — If true, the variance is assumed to have no upper limit (e.g. as in the case of :term:`CDM`). This allows the tabulated solutions to be extended arbitrarily. Otherwise, tables are extended to encompass just the range of variance requested. * ``[linkingLength]`` (default ``0.2d0``) — The friends-of-friends linking length to use in computing virial density contrasts with the percolation analysis of :cite:t:`more_overdensity_2011`. .. _physics-nodeOperatorSatelliteMergingRadiusTrigger: ``nodeOperatorSatelliteMergingRadiusTrigger`` --------------------------------------------- A node operator class that merges satellite halos with their central when the orbital radius falls below the larger of ``radiusVirialFraction`` times the host virial radius (default 0.01), and ``radiusHalfMassFraction`` times the sum of the central and satellite galactic half-mass radii (default 1.0). Optionally records Keplerian orbital elements of merged subhalos when ``recordMergedSubhaloProperties`` is true; ``recordFirstLevelOnly`` restricts recording to first-level subhalos relative to the final host. **Methods** * ``radiusMerge`` — Compute the radius at which the satellite will be merged. **Parameters** * ``[radiusHalfMassFraction]`` (default ``1.0d0``) — The fraction of the sum of the central and satellite half-mass radii below which satellites are merged. * ``[radiusVirialFraction]`` (default ``0.01d0``) — The fraction of the virial radius below which satellites are merged. * ``[recordMergedSubhaloProperties]`` (default ``.false.``) — If true, record the orbital properties of subhalo that merge. * ``[recordFirstLevelOnly]`` (default ``.false.``) — If true, record only mergers with first-level subhalos relative to the host. .. _physics-nodeOperatorSatelliteMergingSoliton: ``nodeOperatorSatelliteMergingSoliton`` --------------------------------------- A node operator class for fuzzy dark matter (FDM/wave dark matter) models that triggers satellite merging when the orbital radius falls below the sum of the soliton core radii of the host and satellite halos. ``recordMergedSubhaloProperties`` optionally records Keplerian orbital elements of merged subhalos; ``recordFirstLevelOnly`` restricts recording to first-level subhalos. **Methods** * ``radiusMerge`` — Compute the radius at which the satellite will be merged in FDM models. **Parameters** * ``[toleranceRelativeVelocityDispersion]`` (default ``1.0d-6``) — The relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[toleranceRelativeVelocityDispersionMaximum]`` (default ``1.0d-3``) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[recordMergedSubhaloProperties]`` (default ``.false.``) — If true, record the orbital properties of subhalo that merge. * ``[recordFirstLevelOnly]`` (default ``.false.``) — If true, record only mergers with first-level subhalos relative to the host. .. _physics-nodeOperatorSatelliteMergingTime: ``nodeOperatorSatelliteMergingTime`` ------------------------------------ A node operator class that assigns a merging time to each satellite halo computed from the orbital parameters at virial infall using a :galacticus-class:`satelliteMergingTimescalesClass`, then triggers the merger when that time is reached. ``resetOnHaloFormation`` controls whether the virial orbital parameters (and hence merging time) are reset at halo formation events detected during tree traversal. **Methods** * ``timeMergingSet`` — Set the time of merging for a satellite node. **Parameters** * ``[resetOnHaloFormation]`` (default ``.false.``) — Specifies whether satellite virial orbital parameters should be reset on halo formation events. .. _physics-nodeOperatorSatelliteMinimumDistance: ``nodeOperatorSatelliteMinimumDistance`` ---------------------------------------- A node operator class that tracks the minimum distance from the center that a satellite has ever reached in its current host halo. **Methods** * ``distanceRelative`` — Compute the distance to the center of the relevant host halo. **Parameters** * ``[relativeTo]`` (default ``var_str('immediateHost')``) — Specifies to which host halo the minimum distance should be referenced. "``immediateHost``" computes the minimum distance to the first host (so, for a sub-subhalo, this would be the subhalo in which it is orbiting). "``isolatedHost``" computes the minimum distance to the final (isolated halo) host. .. _physics-nodeOperatorSatelliteOrbit: ``nodeOperatorSatelliteOrbit`` ------------------------------ A node operator class that integrates the orbital motion of satellite halos through the potential of their host halo, updating position and velocity at each ODE timestep via the equations of motion in the host potential. ``trackPreInfallOrbit`` enables approximate orbit integration before formal infall, which is useful for modeling pre-infall tidal effects and environmental processes. **Parameters** * ``[trackPreInfallOrbit]`` (default ``.false.``) — If true, (approximately) track the orbits of halos prior to infall. * ``[acceptUnboundOrbits]`` (default ``.false.``) — If true, accept unbound virial orbits for satellites, otherwise reject them. * ``[initializeOnly]`` (default ``.false.``) — If true, orbits are initialized, but not evolved. .. _physics-nodeOperatorSatelliteOrphanize: ``nodeOperatorSatelliteOrphanize`` ---------------------------------- Converts satellite nodes into orphan galaxies when they reach the end of their tracked merger tree history, detaching them from their host halo and allowing them to persist as unresolved substructure. .. _physics-nodeOperatorSatelliteSubsampling: ``nodeOperatorSatelliteSubsampling`` ------------------------------------ A node operator class that does a subsampling of satellites based on their properties at infall. The sampling function has a form of .. math:: f = \alpha (M_{\mathrm{sat}}/M_0)^\beta, where :math:`M_\mathrm{sat}` is the satellite's mass, :math:`M_0` is a reference mass scale. The normalization :math:`\alpha` and slope parameter :math:`\beta` can be set in the parameter file. A threshold on satellite's mass, infall time, and pericenter distance when subsampling is done can also be set to avoid undersampling satellites that are less abundant, e.g. satellites with large mass, or in plunging orbit. **Methods** * ``samplingRate`` — Compute the sampling rate. **Parameters** * ``[samplingMassThreshold]`` (default ``0.0d0``) — The satellite halo mass below which subsampling is applied; satellites more massive than this threshold are always retained with probability 1. * ``[samplingInfallTimeThreshold]`` (default ``huge(0.0d0)``) — The infall time (in Gyr) below which subsampling is applied; satellites that fell in more recently than this threshold are always retained with probability 1. * ``[samplingPericenterThreshold]`` (default ``0.0d0``) — Pericenter distance threshold above which satellites are subsampled in units of the distance to the host halo at infall. This criterion will be ignored if the ``virialOrbit`` of satellite is not gettable. * ``[samplingFunctionSlope]`` (default ``0.0d0``) — The power-law slope :math:`\beta` of the satellite subsampling function :math:`f = \alpha (M_\mathrm{sat}/M_0)^\beta`, controlling how rapidly the sampling probability varies with satellite mass. * ``[samplingFunctionNormalization]`` (default ``1.0d0``) — The normalization coefficient :math:`\alpha` of the satellite subsampling function :math:`f = \alpha (M_\mathrm{sat}/M_0)^\beta`, setting the overall sampling probability at the reference mass :math:`M_0`. .. _physics-nodeOperatorSatelliteTidalHeating: ``nodeOperatorSatelliteTidalHeating`` ------------------------------------- A node operator class that heats the dark matter distribution of orbiting satellite halos through tidal forces, integrating the cumulative tidal tensor along the orbit using a :galacticus-class:`satelliteTidalHeatingRateClass`. ``efficiencyDecay`` scales the rate at which the tidal tensor integral decays between pericentric passages; ``applyPreInfall`` enables tidal heating before the satellite formally enters the host virial radius. **Methods** * ``specificEnergyTerms`` — Compute the first and second order energy perturbations. * ``initialize`` — (Re)initialize the parameters of the tidal heating distribution. **Parameters** * ``[coefficientSecondOrder0]`` (default ``0.0d0``) — The coefficient, :math:`a_0`, appearing in the second-order heating term, :math:`f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2`. * ``[coefficientSecondOrder1]`` (default ``0.0d0``) — The coefficient, :math:`a_1`, appearing in the second-order heating term, :math:`f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2`. * ``[coefficientSecondOrder2]`` (default ``0.0d0``) — The coefficient, :math:`a_2`, appearing in the second-order heating term, :math:`f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2`. * ``[correlationVelocityRadius]`` (default ``-1.0d0``) — The velocity-position correlation function, :math:`\chi_\mathrm{r,v}`, as defined by :cite:t:`gnedin_self-consistent_1999` which controls the strength of the second order heating term. * ``[efficiencyDecay]`` (default ``1.0d0``) — Efficiency of the decay of the tidal tensor integral. * ``[applyPreInfall]`` (default ``.false.``) — If true, tidal heating is applied pre-infall. * ``[applyPreInfall]`` (default ``.false.``) — If true, tidal mass loss is applied pre-infall. * ``[heatSpecificNormalized]`` — The normalized specific tidal heating, :math:`Q = \epsilon / r^2`. * ``[coefficientSecondOrder0]`` (default ``0.0d0``) — The coefficient, :math:`a_0`, appearing in the second-order heating term, :math:`f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2`. * ``[coefficientSecondOrder1]`` (default ``0.0d0``) — The coefficient, :math:`a_1`, appearing in the second-order heating term, :math:`f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2`. * ``[coefficientSecondOrder2]`` (default ``0.0d0``) — The coefficient, :math:`a_2`, appearing in the second-order heating term, :math:`f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2`. * ``[correlationVelocityRadius]`` (default ``-1.0d0``) — The velocity-position correlation function, :math:`\chi_\mathrm{r,v}`, as defined by :cite:t:`gnedin_self-consistent_1999` which controls the strength of the second order heating term. .. _physics-nodeOperatorSatelliteTidalMassLoss: ``nodeOperatorSatelliteTidalMassLoss`` -------------------------------------- A node operator class that strips dark matter from orbiting satellite halos at each ODE timestep, using a :galacticus-class:`satelliteTidalStrippingClass` to compute the tidal mass loss rate. The bound mass of the satellite is evolved as an ODE variable. ``applyPreInfall`` enables tidal stripping before the satellite formally enters the host virial radius, allowing pre-infall environmental mass loss. **Methods** * ``specificEnergyTerms`` — Compute the first and second order energy perturbations. * ``initialize`` — (Re)initialize the parameters of the tidal heating distribution. **Parameters** * ``[coefficientSecondOrder0]`` (default ``0.0d0``) — The coefficient, :math:`a_0`, appearing in the second-order heating term, :math:`f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2`. * ``[coefficientSecondOrder1]`` (default ``0.0d0``) — The coefficient, :math:`a_1`, appearing in the second-order heating term, :math:`f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2`. * ``[coefficientSecondOrder2]`` (default ``0.0d0``) — The coefficient, :math:`a_2`, appearing in the second-order heating term, :math:`f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2`. * ``[correlationVelocityRadius]`` (default ``-1.0d0``) — The velocity-position correlation function, :math:`\chi_\mathrm{r,v}`, as defined by :cite:t:`gnedin_self-consistent_1999` which controls the strength of the second order heating term. * ``[efficiencyDecay]`` (default ``1.0d0``) — Efficiency of the decay of the tidal tensor integral. * ``[applyPreInfall]`` (default ``.false.``) — If true, tidal heating is applied pre-infall. * ``[applyPreInfall]`` (default ``.false.``) — If true, tidal mass loss is applied pre-infall. * ``[heatSpecificNormalized]`` — The normalized specific tidal heating, :math:`Q = \epsilon / r^2`. * ``[coefficientSecondOrder0]`` (default ``0.0d0``) — The coefficient, :math:`a_0`, appearing in the second-order heating term, :math:`f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2`. * ``[coefficientSecondOrder1]`` (default ``0.0d0``) — The coefficient, :math:`a_1`, appearing in the second-order heating term, :math:`f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2`. * ``[coefficientSecondOrder2]`` (default ``0.0d0``) — The coefficient, :math:`a_2`, appearing in the second-order heating term, :math:`f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2`. * ``[correlationVelocityRadius]`` (default ``-1.0d0``) — The velocity-position correlation function, :math:`\chi_\mathrm{r,v}`, as defined by :cite:t:`gnedin_self-consistent_1999` which controls the strength of the second order heating term. .. _physics-nodeOperatorSIDMParametric: ``nodeOperatorSIDMParametric`` ------------------------------ A node operator class that maps the CDM solution to SIDM based on the parametric model of :cite:t:`yang_parametric_2024`. **Parameters** * ``[beta]`` (default ``4.0d0``) — The value :math:`\beta` in a SIDMParametric-model mass distribution. * ``[alpha]`` (default ``2.0d0``) — The coefficient :math:`\alpha` of the halo mass-growth term in the gravothermal :math:`\tau` evolution, :math:`\dot\tau = 1/t_\mathrm{c} - \alpha \, (\dot{M}/M) \, \tau`. The default value of :math:`2.0` is the best-fit value found by :cite:t:`raut_extended_2026`. * ``[C]`` (default ``0.75d0``) — The calibration constant :math:`C` relating the gravothermal collapse timescale :math:`t_\mathrm{c}` to the relaxation time (eqn. 2.2 of :cite:t:`yang_parametric_2024`). The default value of :math:`0.75` is the best-fit value found by :cite:t:`raut_extended_2026`. .. _physics-nodeOperatorSpheroidRadiusPowerLaw: ``nodeOperatorSpheroidRadiusPowerLaw`` -------------------------------------- A node operator that sets the spheroid scale radius using an empirical power law in stellar mass, :math:`r_\mathrm{s} = \beta \left(M_\star/\mathrm{M}_\odot\right)^\alpha`, calibrated to observations (default parameters from :cite:author:`shen_erratum_2007` :cite:year:`shen_erratum_2007` for early-type galaxies). ``alpha`` is the mass exponent and ``beta`` is the normalization. The radius is updated at node initialization, after mergers, and when the ODE is solved analytically. **Methods** * ``update`` — Update the spheroid radius to be consistent with its stellar mass. **Parameters** * ``[alpha]`` (default ``0.56d0``) — Exponent :math:`\alpha` in the power law fit. * ``[beta]`` (default ``1.19d-9``) — Coefficient :math:`\beta` in the power law fit. .. _physics-nodeOperatorStarFormationDisks: ``nodeOperatorStarFormationDisks`` ---------------------------------- A node operator class that performs star formation in galactic disks by integrating gas conversion into stars at each ODE timestep. The star formation rate is computed by :galacticus-class:`starFormationRateDisksClass` and applied to evolve the disk gas mass, stellar mass, chemical abundances, and star formation history. ``luminositiesStellarInactive`` controls whether stellar luminosities participate in the ODE solver (set true for performance when luminosities are not needed during evolution). **Parameters** * ``[luminositiesStellarInactive]`` (default ``.false.``) — If true, stellar luminosities will be treated as inactive properties. .. _physics-nodeOperatorStarFormationNuclearStarClusters: ``nodeOperatorStarFormationNuclearStarClusters`` ------------------------------------------------ A node operator class that performs star formation in nuclear star clusters (:term:`NSC`) by integrating gas conversion into stars at each ODE timestep. The star formation rate is computed by :galacticus-class:`starFormationRateNuclearStarClustersClass` and applied to evolve the :term:`NSC` gas mass, stellar mass, chemical abundances, and star formation history. ``luminositiesStellarInactive`` controls whether stellar luminosities participate in the ODE solver. **Parameters** * ``[luminositiesStellarInactive]`` (default ``.false.``) — If true, stellar luminosities will be treated as inactive properties. .. _physics-nodeOperatorStarFormationRateInterOutput: ``nodeOperatorStarFormationRateInterOutput`` -------------------------------------------- A node operator class that tracks the mean star formation rate between successive outputs. Intended to be paired with the :galacticus-class:`nodePropertyExtractorStarFormationRateInterOutput` property extractor class to extract those rates for output. .. _physics-nodeOperatorStarFormationSpheroids: ``nodeOperatorStarFormationSpheroids`` -------------------------------------- A node operator class that performs star formation in galactic spheroids by integrating gas conversion into stars at each ODE timestep. The star formation rate is computed by :galacticus-class:`starFormationRateSpheroidsClass` and applied to evolve the spheroid gas mass, stellar mass, chemical abundances, and star formation history. ``luminositiesStellarInactive`` controls whether stellar luminosities participate in the ODE solver (set true for performance when luminosities are not needed during evolution). **Parameters** * ``[luminositiesStellarInactive]`` (default ``.false.``) — If true, stellar luminosities will be treated as inactive properties. .. _physics-nodeOperatorStellarFeedbackDisks: ``nodeOperatorStellarFeedbackDisks`` ------------------------------------ Computes stellar feedback-driven outflows from galactic disks, using the star formation rate and feedback model to determine gas ejection rates that regulate disk star formation and enrich the circumgalactic medium with metals and energy. **Parameters** * ``[luminositiesStellarInactive]`` (default ``.false.``) — If true, stellar luminosities will be treated as inactive properties. .. _physics-nodeOperatorStellarFeedbackSpheroids: ``nodeOperatorStellarFeedbackSpheroids`` ---------------------------------------- Computes stellar feedback-driven outflows from galactic spheroids (bulges), applying supernova and stellar wind energy to drive gas ejection from the dense spheroid, modulating starburst activity triggered by galaxy mergers and disk instabilities. **Parameters** * ``[luminositiesStellarInactive]`` (default ``.false.``) — If true, stellar luminosities will be treated as inactive properties. .. _physics-nodeOperatorSubsubhaloPromotion: ``nodeOperatorSubsubhaloPromotion`` ----------------------------------- A node operator class that handles the promotion of sub-sub-halos (halos orbiting within a subhalo) when their host subhalo is itself promoted, correctly updating the host hierarchy so the sub-sub-halo becomes a direct satellite of the new host halo. .. _physics-nodeOperatorTidalHeatingSpheroids: ``nodeOperatorTidalHeatingSpheroids`` ------------------------------------- Computes tidal heating of satellite galaxy spheroids by the tidal field of the host halo, injecting energy into the stellar component that causes spheroid puffing-up and can drive mass loss from tidally heated satellite galaxies. **Parameters** * ``[luminositiesStellarInactive]`` (default ``.false.``) — If true, stellar luminosities will be treated as inactive properties. .. _physics-nodeOperatorTidalMassLossDisks: ``nodeOperatorTidalMassLossDisks`` ---------------------------------- Computes and applies gravitational tidal stripping of stellar and gaseous mass from satellite galaxy disks as they orbit within the host halo tidal field, removing material outside the satellite's tidal radius at each pericentric passage. **Parameters** * ``[luminositiesStellarInactive]`` (default ``.false.``) — If true, stellar luminosities will be treated as inactive properties. .. _physics-nodeOperatorTidalMassLossSoliton: ``nodeOperatorTidalMassLossSoliton`` ------------------------------------ A node operator class that accumulates the tidal-heating source term from the FDM solitonic core, following the model of :cite:t:`du_tidal_2018`. **Methods** * ``radiusMerge`` — Compute the radius at which the satellite will be merged in FDM models. **Parameters** * ``[toleranceRelativeVelocityDispersion]`` (default ``1.0d-6``) — The relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[toleranceRelativeVelocityDispersionMaximum]`` (default ``1.0d-3``) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[recordMergedSubhaloProperties]`` (default ``.false.``) — If true, record the orbital properties of subhalo that merge. * ``[recordFirstLevelOnly]`` (default ``.false.``) — If true, record only mergers with first-level subhalos relative to the host. .. _physics-nodeOperatorTidalMassLossSpheroids: ``nodeOperatorTidalMassLossSpheroids`` -------------------------------------- Computes and applies gravitational tidal stripping of stellar mass from satellite galaxy spheroids as they orbit within the host halo tidal field, progressively removing outer stars from the bulge component at each orbit. **Parameters** * ``[luminositiesStellarInactive]`` (default ``.false.``) — If true, stellar luminosities will be treated as inactive properties. .. _physics-nodeOperatorTimeFirstInfall: ``nodeOperatorTimeFirstInfall`` ------------------------------- A node operator class that tracks the time of first infall for a node. Intended to be paired with the :galacticus-class:`nodePropertyExtractorTimeFirstInfall` property extractor class to extract these times for output. .. _physics-nodeOperatorTrackOutflowedMass: ``nodeOperatorTrackOutflowedMass`` ---------------------------------- Tracks the cumulative mass and metal content arriving in the circumgalactic medium (:term:`CGM`) via stellar and AGN-driven outflows, enabling analysis of feedback-driven enrichment histories. .. _physics-nodeOperatorUniqueIDBranchTip: ``nodeOperatorUniqueIDBranchTip`` --------------------------------- Records the unique global ID of the branch tip (earliest progenitor) in each node's metadata, providing a persistent cross-snapshot identifier for each branch origin usable for cross-matching nodes across different tree realizations.