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.