How Galacticus Evolves Halos and Galaxies - galacticusorg/galacticus GitHub Wiki
Galacticus evolves halos and galaxies using its "evolver engine", which works by applying various "operators" to the "components" which make up a halo/galaxy system. Here's a schematic - click (you may have to middle-click to make this work) on any item for more details.
flowchart LR
Components([Components])
Operators
Functions
Engine[Engine](/galacticusorg/galacticus/wiki/Engine)
Engine --> Components
Components --> Engine
Operators --> Engine
Functions --> Operators
click Components href "https://github.com/galacticusorg/galacticus/wiki/How-Galacticus-Evolves-Halos-and-Galaxies#components" "Things that make up a galaxy (disk, spheroid, etc.)"
click Engine href "https://github.com/galacticusorg/galacticus/wiki/How-Galacticus-Evolves-Halos-and-Galaxies#engine" "Applies operators to components to evolve them forward in time"
click Operators href "https://github.com/galacticusorg/galacticus/wiki/How-Galacticus-Evolves-Halos-and-Galaxies#operators" "Processes that act on components"
click Functions href "https://github.com/galacticusorg/galacticus/wiki/How-Galacticus-Evolves-Halos-and-Galaxies#functions" "Define the functional forms of processes"
style Operators fill:#ff02ff
style Components fill:#ff1212
style Functions fill:#1212ff,color:#ffffff
Consider the following, highly simplified, description of how the process of star formation causes the mass of stars, $M_\star$, to increase with time, while simultaneously decreasing the mass of the ISM, $M_\mathrm{ISM}$:
$$ \frac{\color{magenta}\mathrm{d}\color{red}M_\star}{\color{magenta}\mathrm{d}t} = \color{magenta}+\color{blue}\frac{M_\mathrm{ISM}}{\tau_\star} $$
$$ \frac{\color{magenta}\mathrm{d}\color{red}M_\mathrm{ISM}}{\color{magenta}\mathrm{d}t} = \color{magenta}-\color{blue}\frac{M_\mathrm{ISM}}{\tau_\star} $$
Components
The variables highlighted in red represent physical quantities - in this case the masses of stars and ISM in the galaxy. These are provided by a "component" (e.g. a galactic disk) in Galacticus.
Operators
The operators highlighted in magenta represent a physical process - in this case the process of star formation, which moves mass from the ISM to the stars. Physical processes in Galacticus are implemented by the nodeOperatorClass
.
Functions
The function highlighted in blue represents the actual physics of that process - in this case it describes the rate of star formation. Such functions in Galacticus are provided by numerous different functionClass
objects - e.g. starFormationRateDisksClass
in the case of star formation rates in galaxy disks.
Engine
Galacticus' evolver engine works by applying a set of nodeOperatorClass
objects to each node in a merger tree in turn - gradually evolving the components in that node forward in time in accordance with the physical processes described by those nodeOperatorClass
objects. The engine consists of the mergerTreeEvolverClass
and mergerTreeNodeEvolverClass
classes.