This is an internal function used by the user-facing project() function.
It is of potential interest only to mizer extension authors.
project_n(params, r, n, dt, a, b, c, S, idx, w_min_idx_array_ref, no_sp, no_w)project_n_no_diffusion(
params,
r,
n,
dt,
a,
b,
S,
idx,
w_min_idx_array_ref,
no_sp,
no_w
)
The updated abundance density matrix n.
A MizerParams object.
A list of rates as returned by mizerRates().
An array (species x size) with the number density at the current time step.
Time step.
A matrix (species x size) used in the solver (transport term).
A matrix (species x size) used in the solver (diagonal term).
A matrix (species x size) used in the solver (transport term).
A matrix (species x size) used in the solver (source term).
Index vector for size bins (excluding the first one).
Index vector for the start of the size spectrum for each species.
Number of species.
Number of size bins.
The function calculates the abundance at the next time step using the McKendrick-von Foerster equation: $$\frac{\partial N}{\partial t} + \frac{\partial}{\partial w} \left( g N - \frac{1}{2}\frac{\partial(D N)}{\partial w} \right) = -\mu N$$ which is solved using a semi-implicit upwind finite volume scheme.
project, mizerRates