Allometry

Agate.Library.Allometry.allometric_palatability_unimodalMethod
allometric_palatability_unimodal(prey, predator)

Compute unimodal allometric palatability from predator and prey diameters.

Formulation

\[\eta = \left[1 + \left(\frac{d_{pred}}{d_{prey}} - \rho^*\right)^2\right]^{-\sigma}\]

where $d_{pred}$ and $d_{prey}$ are predator and prey diameters, $\rho^*$ is the optimum predator:prey diameter ratio, and $\sigma$ is the specificity parameter.

Arguments

  • prey: PalatabilityPreyParameters(diameter, protection).
  • predator: PalatabilityPredatorParameters(diameter, optimum_predator_prey_ratio, specificity).
source
Agate.Library.Allometry.allometric_palatability_unimodal_protectionMethod
allometric_palatability_unimodal_protection(prey, predator)

Compute unimodal allometric palatability with multiplicative prey protection.

Formulation

\[\eta = (1 - p)\left[1 + \left(\frac{d_{pred}}{d_{prey}} - \rho^*\right)^2\right]^{-\sigma}\]

where $p$ is prey.protection. p = 0 leaves the allometric palatability unchanged, while larger values reduce palatability.

source
Agate.Library.Allometry.allometric_scaling_powerMethod
allometric_scaling_power(a, b, diameter)

Evaluate a power-law allometric scaling against spherical cell volume.

Formulation

\[f(d) = a V(d)^b, \qquad V(d) = \frac{4}{3}\pi\left(\frac{d}{2}\right)^3\]

where $d$ is equivalent spherical diameter, $V$ is spherical cell volume, $a$ is the prefactor, and $b$ is the exponent.

Arguments

  • a: scale/prefactor parameter.
  • b: exponent parameter.
  • diameter: cell equivalent spherical diameter.
source

Mortality

Agate.Library.Mortality.linear_lossMethod
linear_loss(P, rate)

Linear mortality (loss) rate.

Formulation

$l$ * $P$

where:

  • $P$ = plankton concentration
  • $l$ = mortality (loss) rate

Arguments

  • P: plankton concentration
  • rate: mortality (loss) rate
source
Agate.Library.Mortality.quadratic_lossMethod
quadratic_loss(P, rate)

Quadratic mortality (loss) rate.

Formulation

$l$ * $P$²

where:

  • $P$ = plankton concentration
  • $l$ = mortality (loss) rate

Arguments

  • P: plankton concentration
  • rate: mortality (loss) rate
source

Nutrients

Agate.Library.Nutrients.liebig_minimumMethod
liebig_minimum(a, b, rest...)
liebig_minimum(values::NTuple)

Return the minimum value among the given limitation factors.

Formulation

minimum(nutrient_limitations)

Arguments

  • a, b, rest...: limitation factors
  • values: an NTuple of limitation factors

This is an explicit alias around LiebigMinimum() for clearer model code.

source
Agate.Library.Nutrients.monod_limitationMethod
monod_limitation(R, K)

Monod (Michaelis–Menten) nutrient limitation.

Formulation

$R$ / ($K$ + $R$)

where:

  • $R$ = nutrient concentration
  • $K$ = nutrient half-saturation constant

Arguments

  • R: nutrient concentration
  • K: nutrient half-saturation constant
Tip

This functional form is sometimes also used for predation (≈ Holling type II).

source
Agate.Library.Nutrients.smooth_liebig_minimumMethod
smooth_liebig_minimum(a, b, rest...; sharpness = 50.0)
smooth_liebig_minimum(values::NTuple; sharpness = 50.0)

Return a smooth approximation to the minimum value among the given limitation factors. Larger sharpness values approach liebig_minimum.

source

Photosynthesis

Agate.Library.Photosynthesis.geider_growthMethod
geider_growth(resources, P, PAR, maximum_growth_rate, half_saturations, alpha,
              chlorophyll_to_carbon_ratio)

Compute Geider-style phytoplankton biomass growth with Liebig nutrient limitation.

Formulation

\[G_G = \gamma\,L_G(I)\,P, \qquad \gamma = \min_i \frac{R_i}{K_i + R_i}\]

where $P$ is phytoplankton biomass, $I$ is PAR, $L_G$ is the Geider light-dependent growth rate, and $\gamma$ is the minimum Monod nutrient limitation across the supplied resources. A single nutrient is represented by a tuple of length one.

Arguments

  • resources: tuple of nutrient concentrations $R_i$.
  • P: phytoplankton biomass.
  • PAR: photosynthetically active radiation $I$.
  • maximum_growth_rate: maximum carbon-specific growth rate $P^C_{max}$.
  • half_saturations: tuple of nutrient half-saturation constants $K_i$.
  • alpha: chlorophyll-specific initial slope $\alpha^{chl}$.
  • chlorophyll_to_carbon_ratio: chlorophyll-to-carbon ratio $\theta^C$.
source
Agate.Library.Photosynthesis.geider_light_limitationMethod
geider_light_limitation(PAR, alpha, maximum_growth_rate, chlorophyll_to_carbon_ratio)

Evaluate the Geider-style light-dependent growth rate.

Formulation

\[L_G(I) = P^C_{max} \left[1 - \exp\left(-\frac{\alpha^{chl}\theta^C I}{P^C_{max}}\right)\right]\]

Arguments

  • PAR: photosynthetically active radiation $I$.
  • alpha: chlorophyll-specific initial slope $\alpha^{chl}$.
  • maximum_growth_rate: maximum carbon-specific growth rate $P^C_{max}$.
  • chlorophyll_to_carbon_ratio: chlorophyll-to-carbon ratio $\theta^C$.
source
Agate.Library.Photosynthesis.smith_growthMethod
smith_growth(resources, P, PAR, maximum_growth_0C, half_saturations, alpha)

Compute Smith-style phytoplankton biomass growth with Liebig nutrient limitation.

Formulation

\[G_S = \mu_0\,\gamma\,L_S(I)\,P, \qquad \gamma = \min_i \frac{R_i}{K_i + R_i}\]

where $P$ is phytoplankton biomass, $I$ is PAR, $L_S$ is the Smith light-limitation factor, and $\gamma$ is the minimum Monod nutrient limitation across the supplied resources. A single nutrient is represented by a tuple of length one.

Arguments

  • resources: tuple of nutrient concentrations $R_i$.
  • P: phytoplankton biomass.
  • PAR: photosynthetically active radiation $I$.
  • maximum_growth_0C: maximum growth rate $\mu_0$ at 0 °C.
  • half_saturations: tuple of nutrient half-saturation constants $K_i$.
  • alpha: initial photosynthetic slope $\alpha$.
source
Agate.Library.Photosynthesis.smith_light_limitationMethod
smith_light_limitation(PAR, alpha, maximum_growth_0C)

Evaluate the Smith (1936) light-limitation factor.

Formulation

\[L_S(I) = \frac{\alpha I}{\sqrt{\mu_0^2 + (\alpha I)^2}}\]

Arguments

  • PAR: photosynthetically active radiation $I$.
  • alpha: initial photosynthetic slope $\alpha$.
  • maximum_growth_0C: maximum growth rate $\mu_0$ at 0 °C.
source

Predation

Agate.Library.Predation.holling_type_iiMethod
holling_type_ii(P, K)

Holling (1959) type-II functional response.

Formulation

$P$ / ($K$ + $P$)

Arguments

  • P: prey concentration
  • K: prey half-saturation (prey density at which predation is half its maximum)
source
Agate.Library.Predation.idealized_predation_gainMethod
idealized_predation_gain(P, Z, assimilation_efficiency, maximum_grazing_rate, half_saturation)

Assimilated gain rate to predator Z feeding on prey P.

Formulation

β * g

where g = idealized_predation_loss(P, Z, gₘₐₓ, K).

Arguments

  • P: prey concentration
  • Z: predator concentration
  • assimilation_efficiency: assimilation efficiency β
  • maximum_grazing_rate: maximum grazing rate gₘₐₓ
  • half_saturation: prey half-saturation K
source
Agate.Library.Predation.idealized_predation_lossMethod
idealized_predation_loss(P, Z, maximum_grazing_rate, half_saturation)

Loss rate of prey P to predator Z using a squared Holling term.

Formulation

gₘₐₓ * (P² / (K² + P²)) * Z

Arguments

  • P: prey concentration
  • Z: predator concentration
  • maximum_grazing_rate: maximum grazing rate gₘₐₓ
  • half_saturation: prey half-saturation K
source
Agate.Library.Predation.idealized_predation_unassimilated_lossMethod
idealized_predation_unassimilated_loss(P, Z, assimilation_efficiency, maximum_grazing_rate, half_saturation)

Unassimilated fraction of idealized predation loss ("sloppy feeding").

Formulation

(1 - β) * g

where g = idealized_predation_loss(P, Z, gₘₐₓ, K).

Arguments

  • P: prey concentration
  • Z: predator concentration
  • assimilation_efficiency: assimilation efficiency β
  • maximum_grazing_rate: maximum grazing rate gₘₐₓ
  • half_saturation: prey half-saturation K
source
Agate.Library.Predation.preferential_predation_gainMethod
preferential_predation_gain(P, Z, assimilation_efficiency, maximum_grazing_rate, half_saturation, palatability)

Assimilated preferential predation gain.

Formulation

β * g

where g = preferential_predation_loss(P, Z, gₘₐₓ, K, η).

Arguments

  • P: prey concentration
  • Z: predator concentration
  • assimilation_efficiency: assimilation efficiency β
  • maximum_grazing_rate: maximum grazing rate gₘₐₓ
  • half_saturation: prey half-saturation K
  • palatability: palatability η
source
Agate.Library.Predation.preferential_predation_lossMethod
preferential_predation_loss(P, Z, maximum_grazing_rate, half_saturation, palatability)

Preferential predation loss from prey P to predator Z.

Formulation

gₘₐₓ * η * (P / (K + P)) * Z

Arguments

  • P: prey concentration
  • Z: predator concentration
  • maximum_grazing_rate: maximum grazing rate gₘₐₓ
  • half_saturation: prey half-saturation K
  • palatability: palatability η
source
Agate.Library.Predation.preferential_predation_unassimilated_lossMethod
preferential_predation_unassimilated_loss(P, Z, assimilation_efficiency, maximum_grazing_rate, half_saturation, palatability)

Unassimilated fraction of preferential predation loss ("sloppy feeding").

Formulation

(1 - β) * g

where g = preferential_predation_loss(P, Z, gₘₐₓ, K, η).

Arguments

  • P: prey concentration
  • Z: predator concentration
  • assimilation_efficiency: assimilation efficiency β
  • maximum_grazing_rate: maximum grazing rate gₘₐₓ
  • half_saturation: prey half-saturation K
  • palatability: palatability η
source

Remineralization

Agate.Library.Remineralization.linear_remineralizationMethod
linear_remineralization(D, rate)

Idealized remineralization of detritus into dissolved nutrients.

Formulation

r * D

where:

  • D = detritus concentration
  • r = remineralization rate

Arguments

  • D: detritus concentration
  • rate: remineralization rate
source