Calculates the energy rate
\(E_{r.i}(w)\) (grams/year) available to an
individual of species i and size w for reproduction and growth after
metabolism and movement have been accounted for.
You would not usually call this function directly but instead use
getEReproAndGrowth(), which then calls this function unless an alternative
function has been registered, see below.
mizerEReproAndGrowth(
params,
n,
n_pp,
n_other,
t,
encounter,
feeding_level,
...
)A two dimensional array (species x size) holding $$E_{r.i}(w) = \max(0, \alpha_i\, (1 - {\tt feeding\_level}_i(w))\, {\tt encounter}_i(w) - {\tt metab}_i(w)).$$
Due to the form of the feeding level, calculated by
getFeedingLevel(), if the feeding level is nonzero this can also be expressed as
$$E_{r.i}(w) = \max(0, \alpha_i\, {\tt feeding\_level}_i(w)\,
h_i(w) - {\tt metab}_i(w))$$
where \(h_i\) is the maximum intake rate, set with
setMaxIntakeRate(). However this function is using the first equation
above so that it works also when the maximum intake rate is infinite, i.e.,
there is no satiation.
The assimilation rate \(\alpha_i\) is taken from the species parameter
data frame in params. The metabolic rate metab is taken from
params and set with setMetabolicRate().
The return value can be negative, which means that the energy intake does not cover the cost of metabolism and movement.
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.)
An array (species x size) with the encounter rate as
calculated by getEncounter().
An array (species x size) with the feeding level as
calculated by getFeedingLevel().
Unused
By default getEReproAndGrowth() calls mizerEReproAndGrowth(). However you
can replace this with your own alternative energy rate function. If
your function is called "myEReproAndGrowth" then you register it in a
MizerParams object params with
params <- setRateFunction(params, "EReproAndGrowth", "myEReproAndGrowth")
Your function will then be called instead of mizerEReproAndGrowth(), with
the same arguments.
Other mizer rate functions:
mizerEGrowth(),
mizerERepro(),
mizerEncounter(),
mizerFMort(),
mizerFMortGear(),
mizerFeedingLevel(),
mizerMort(),
mizerPredMort(),
mizerPredRate(),
mizerRDI(),
mizerRates(),
mizerResourceMort()