Productivity

The term used to calculate basal species productivity is:

$

ri * Gi * B_i $

  • \[r_i\]
    is species $i$ intrinsic growth rate
  • \[B-i\]
    is species $i$ biomass

The term $G_i$ however can take different form depending on the mechanism you are interested in including in your model. There are three possible alternatives:

  • basic logistic growth (with either a system-wide or a species-specific carrying capacity)
  • logistic growth with explicit relative competition
  • nutrient intake.

Logistic growth

The general formula for $G_i$ is:

$

Gi = 1 - \frac {\sumc B_c} {effK} $

  • \[effK\]
    is the effective carrying capacity
  • \[c\]
    is any species $i$ compete ith (including potentially itself)

System-wide carrying capacity

  • \[i\]
    compete only with itself $\sum_c B_c = B_i$
  • \[effK = K/nP\]
    where nP is the number of producer (basal species)
A = nichemodel(10, 0.2)
p = model_parameters(A, productivity = :system, K = 20)

Species-specific carrying capacity

  • \[i\]
    compete only with itself $\sum_c B_c = B_i$
  • \[effK = K_i\]
    note that you can pass a vector of species-specific carrying capacity if you are using this alternative
A = nichemodel(10, 0.2)
#temperature effect on carrying capacity
function carrying(m, k0, T)
    #m = body mass ; k0 = intercept for Baltzman function, T = temperature (Kelvins)
    βk = 0.28
    Ek = 0.71
    return exp(k0) .* (m .^ βk) .* exp.(Ek .* (293.15 .- T ) ./ (8.617e-5 .* T .* 293.15))
end
M = 10 .^ trophic_rank(A)
carryingcap = carrying(M, 10, 30+273.15) #T = 30C
p = model_parameters(A, productivity = :species, K = carryingcap)

Competition

  • \[\sum_c B_c = \sum_c \alpha * B_c\]
    where $\alpha$ represent the strength of inter-specific competition relatively to intra-specific competition
  • \[effK = K_i\]

If $\alpha = 1.0$ then this alternative is equivalent to the species-specific alternative.

A = nichemodel(10, 0.2)
p = model_parameters(A, productivity = :competitive, K = 20, α = 1.2)

Nutrient intake

Following [Brose, Berlow and Martinez 2005][https://books.google.ca/books?hl=en&lr=&id=NHFBDX9-7L0C&oi=fnd&pg=PP1&ots=SHS7qYzWGY&sig=2sRhzLl4pbgi01g4PdaJy59ABHE&redir_esc=y#v=onepage&q&f=false] we implemented a nutrient intake model:

\[G_i(N) = MIN(\frac {N_1} {K_{1i} + N_1} , \frac {N_2} {K_{2i} + N_2})\]

Where the concentrations of the two nutrients $N_1$ and $N_2$ are given by:

\[dN_l/dt = D(S_l - N_l) - \sum_{i = 1}^n (ν_l r_i G(N) B_i)\]
  • \[ν_{li}\]
    is the content of nutrient $l$ in the biomass of species $i$, it's controlled by the argument ν (default = [1.0, 0.5])
  • \[D\]
    is the turnover rate (expressed relative to the time scale of the growth rate of the basal species), it's controlled by the argument D (default = 0.25)
  • \[S_l\]
    is the supply concentration, controlled by the argument of the simulate function, (default = )
  • \[K_{li}\]
    is the species and nutrient specific half-saturation density. If all the producer species have similar $r_i$ and $x_i$ the half-saturation densities for the nutrient with the highest $ν_{l}$ define the competitive hierarchy among the producers. It's controlled by the arguments K1 and K2 (default = [0.15]). If only one value is passed for each, all species have the same half-saturation densities for K1 and K2, it is also possible to pass a vector of size S (where S is the number of species) for species-specific K1 and K2.
A = [0 1 0 0 ; 0 0 1 1 ; 0 0 0 0 ; 0 0 0 0]
p = model_parameters(A, productivity = :nutrients, D = 0.25, ν = [1.0, 0.7], K1 = [0.2], K2 = [0.15])