ASPECT can, optionally, also deal with particles (sometimes called “tracers”). Particles can be thought of as point-like objects that are simply advected along with the flow. In other words, if \(\mathbf u(\mathbf x,t)\) is the flow field that results from solving equations (1)-(2), then the \(k\)th particle’s position satisfies the equations

\[\begin{aligned} \frac{d}{dt} \mathbf x_k(t) = \mathbf u(\mathbf x_k(t),t). \end{aligned}\]

The initial positions of all particles also need to be given and are usually either chosen randomly, based on a fixed pattern, or are read from a file.

Particles are typically used to track visually where material that starts somewhere ends up after some time of a simulation. It can also be used to track the history of the volume of the fluid that surrounds a particle, for example by tracking how much strain has accumulated, or what the minimal or maximal temperature may have been in the medium along the trajectory of a particle. To this end, particles can carry properties. These are scalar- or vector-valued quantities that are attached to each particle, that are initialized at the beginning of a simulation, and that are then updated at each time step. In other words, if we denote by \(\mathbf p_{k,m}(t)\) the value of the \(m\)th property attached to the \(k\)th particle, then \(\mathbf p_{k,m}(t)\) will satisfy a differential equation of the form

\[\begin{aligned} \frac{\partial}{\partial t} \mathbf p_{k,m}(t) = \mathbf g_m\left(\mathbf p_{k,m}, p(\mathbf x_k(t),t)), T(\mathbf x_k(t),t)), \varepsilon(\mathbf u(\mathbf x_k(t),t)), \mathfrak c(\mathbf x_k(t),t)\right). \end{aligned}\]

The exact form of \(\mathbf g_m\) of course depends on what exactly a particular property represents. Like with compositional fields (see Compositional fields), it is possible to describe the right hand side \(\mathbf g_m\) in ways that also allows for impulse (delta) functions in time.

How particles are used in practice is probably best explained using examples. To this end, see in particular Using particles. All particle-related input parameters are listed in Subsection: Postprocess / Particles. The implementation of particles is discussed in great detail in Gassmöller et al. [2018].