Calculates the density-independent rate of total egg production \(R_{di}\) (units 1/year) before density dependence, by species.

  n = initialN(params),
  n_pp = initialNResource(params),
  n_other = initialNOther(params),
  t = 0,



A MizerParams object


A matrix of species abundances (species x size).


A vector of the resource abundance by size


A list of abundances for other dynamical components of the ecosystem


The time for which to do the calculation (Not used by standard mizer rate functions but useful for extensions with time-dependent parameters.)




A numeric vector the length of the number of species.


This rate is obtained by taking the per capita rate \(E_r(w)\psi(w)\) at which energy is invested in reproduction, as calculated by getERepro(), multiplying it by the number of individuals\(N(w)\) and integrating over all sizes \(w\) and then multiplying by the reproductive efficiency \(\epsilon\) and dividing by the egg size w_min, and by a factor of two to account for the two sexes: $$R_{di} = \frac{\epsilon}{2 w_{min}} \int N(w) E_r(w) \psi(w) \, dw$$

Used by getRDD() to calculate the actual, density dependent rate. See setReproduction() for more details.

Your own reproduction function

By default getRDI() calls mizerRDI(). However you can replace this with your own alternative reproduction function. If your function is called "myRDI" then you register it in a MizerParams object params with

params <- setRateFunction(params, "RDI", "myRDI")

Your function will then be called instead of mizerRDI(), with the same arguments. For an example of an alternative reproduction function see constantEggRDI().

See also


if (FALSE) { params <- newMultispeciesParams(NS_species_params_gears, inter) # Project with constant fishing effort for all gears for 20 time steps sim <- project(params, t_max = 20, effort = 0.5) # Get the density-independent reproduction rate at a particular time step getRDI(params, n = N(sim)[15, , ], n_pp = NResource(sim)[15, ], t = 15) }