You would not usually call this function directly but instead use getFeedingLevel(), which then calls this function unless an alternative function has been registered, see below.

mizerFeedingLevel(params, n, n_pp, n_other, t, encounter, ...)



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 two dimensional array (predator species x predator size) with the encounter rate.




A two dimensional array (predator species x predator size) with the feeding level.

Feeding level

The feeding level \(f_i(w)\) is the proportion of its maximum intake rate at which the predator is actually taking in fish. It is calculated from the encounter rate \(E_i\) and the maximum intake rate \(h_i(w)\) as $$f_i(w) = \frac{E_i(w)}{E_i(w)+h_i(w)}.$$ The encounter rate \(E_i\) is passed as an argument or calculated with getEncounter(). The maximum intake rate \(h_i(w)\) is taken from the params object, and is set with setMaxIntakeRate(). As a consequence of the above expression for the feeding level, \(1-f_i(w)\) is the proportion of the food available to it that the predator actually consumes.

Your own feeding level function

By default getFeedingLevel() calls mizerFeedingLevel(). However you can replace this with your own alternative feeding level function. If your function is called "myFeedingLevel" then you register it in a MizerParams object params with

params <- setRateFunction(params, "FeedingLevel", "myFeedingLevel")

Your function will then be called instead of mizerFeedingLevel(), with the same arguments.

See also