7. Migration

The fundamental contrast between singlezone and multizone models of chemical evolution is the variation of parameters between zones. However, these models often involve some sort of prescription for how stars mix between zones in order to mimic the changes in a stars’ locations over time. In nature, the details of this component of evolution likely varies on a galaxy-by-galaxy basis. In keeping with VICE’s philosophy of making as few assumptions as possible to maximize the user’s power over their simulations, VICE is implemented with an agnostic approach to the migration prescription in a multizone model.

In multizone models, VICE knows nothing of the spatial configuration of the zones the user is operating under. The only piece of information identifying a zone is an integer index (a zero-based integer index, specifically). These zones can be coupled via migration by moving gas and stars from one zone to any other zone under a user-constructed prescription. In principle, this allows the construction of 1-, 2-, and 3-dimensional zone configurations with an arbitrary migration prescription.

7.1. Stars

VICE adopts a star particle approach to the treatment of stars in multizone models. Users specify how many star particles should form per zone per timestep \(n_\star\) via the attribute n_stars of the multizone class. The mass of a star particle is then given by:

\[M_\star \equiv \frac{\dot{M}_\star \Delta t}{n_\star}\]

where \(\dot{M}_\star\) and \(\Delta t\) are the star formation rate and timestep size in the star particles zone of formation, respectively. In words, VICE divides the total mass of newly formed stars evenly amongst the star particles it should form. Rather than forming more/fewer star particles when the star formation rate is higher/lower, VICE forms star particles of varying mass. Star particles are also still formed when \(\dot{M}_\star\) = 0; they simply have zero mass.

For a given star particle formed in a given zone and at a given time, the zone it occupies at subsequent times can be expressed as an arbitrary function of time \(S\) 1. Allowing for the fact that star particles form in all zones and at all timesteps, the full stellar migration prescription can be expressed as a function of three variables \(S(i, t_\text{form}, t)\) where \(i\) is the zone number the star particle forms in, \(t_\text{form}\) the time at which it forms, and \(t\) the time in the simulation (obviously, only times at which \(t > t_\text{form}\) are relevant).

\(S\) is specified by the user. If the user does not specify a value of \(S\), VICE adopts a default value which returns \(i\) at all times; that is, star particles remain in their zone of birth and do not migrate. If star particles forming in the same zone at the same time should have different zone histories, the user-defined function \(S\) can be specified to take a fourth parameter: a keyword argument n. VICE will then call the function with n = 1, n = 2, n = 3, and so on, up to n = n_stars, and users can assign zone histories to star particles based on the value of n.

Relevant Source Code:

  • vice/core/multizone/_migration.pyx

  • vice/src/multizone/migration.c


Because \(Z\) for zone would cause confusion with the metallicity by mass \(Z\), we choose \(S\) for star to denote this function instead.

7.2. Gas

As discussed above, VICE knows nothing of the spatial configuration of the zones in a multizone model: the only piece of information identifying a zone is an integer index. Gas must then be able to move between zones in an arbitrary manner.

We thus define the gas migration matrix \(G_{ij}\) to denote the mass fraction of gas that moves from the \(i\)’th zone to the \(j\)’th zone in a 10 Myr time interval. We normalize to a specific time interval so that the rate of migration does not depend on the timestep size. The mass fraction of gas that migrates from zone \(i\) to zone \(j\) at a time \(t\) is then given by:

\[f_{ij}(t) = G_{ij}(t)\frac{\Delta t}{\text{10 Myr}}\]

The mass that migrates is then given by \(M_{g,i} f_{ij}(t)\), where \(M_{g,i}\) is the total mass of the interstellar medium in zone \(i\).

For a multizone simulation with \(N\) zones, \(G\) is an \(N\times N\) matrix, the elements of which the user can fill with either numerical values denoting a constant rate of gas migration between zones or functions of time denoting a varying rate of gas migration. The diagonal elements \(G_{ii}\) are however irrelevant, because this corresponds to migration within the same zone; VICE forces these values to zero always.

Relevant Source Code:

  • vice/core/multizone/_migration.pyx

  • vice/src/multizone/migration.c