Photosynthesis

Photosynthesis model

Photosynthesis.leaf_photosynthesis!Function

Per refactored Photosynthesis module, the only things one need to know is the public function leaf_photosynthesis! and some construtors from ClimaCache. See the examples in the methods below for details about how to use the function. The steps for computing photosynthetic rates are

source
Photosynthesis.leaf_photosynthesis!Method
leaf_photosynthesis!(lf::Union{Leaf{FT}, Leaves2D{FT}}, air::AirLayer{FT}, g_lc::FT, ppar::FT, t::FT = lf.t) where {FT<:AbstractFloat}
leaf_photosynthesis!(lf::Leaves1D{FT}, air::AirLayer{FT}, g_lc::FT, ppar::FT, t::FT) where {FT<:AbstractFloat}

Updates leaf photosynthetic rates based on CO₂ partial pressure (for StomataModels.jl temporary use), given

  • lf Leaf, Leaves1D, or Leaves2D type structure that stores biophysical, reaction center, and photosynthesis model structures
  • air AirLayer structure for environmental conditions like O₂ partial pressure
  • g_lc Leaf diffusive conductance to CO₂ in [mol m⁻² s⁻¹], default is leaf._g_CO₂
  • ppar APAR used for photosynthesis
  • t Leaf temperature in [K]
source
Photosynthesis.leaf_photosynthesis!Method
leaf_photosynthesis!(lf::Union{Leaf{FT}, Leaves1D{FT}, Leaves2D{FT}}, air::AirLayer{FT}, mode::Union{GCO₂Mode, PCO₂Mode}) where {FT<:AbstractFloat}

Updates leaf photosynthetic rates based on CO₂ partial pressure or CO₂ conductance, given

  • lf Leaf, Leaves1D, or Leaves2D type structure that stores biophysical, reaction center, and photosynthesis model structures
  • air AirLayer structure for environmental conditions like O₂ partial pressure
  • mode GCO₂Mode or PCO₂Mode that uses CO₂ conductance or partial pressure to compute photosynthetic rates
source
Photosynthesis.leaf_photosynthesis!Method
leaf_photosynthesis!(spac::MonoElementSPAC{FT}, mode::Union{GCO₂Mode, PCO₂Mode}) where {FT<:AbstractFloat}
leaf_photosynthesis!(spac::Union{MonoMLGrassSPAC{FT}, MonoMLPalmSPAC{FT}, MonoMLTreeSPAC{FT}}, mode::Union{GCO₂Mode, PCO₂Mode}) where {FT<:AbstractFloat}

Updates leaf photosynthetic rates for SPAC, given

  • spac MonoElementSPAC, MonoMLGrassSPAC, MonoMLPalmSPAC, or MonoMLTreeSPAC type SPAC
  • mode GCO₂Mode or PCO₂Mode
source

Temperature dependency

Photosynthesis.temperature_correctionFunction
temperature_correction(td::Arrhenius{FT}, t::FT; t_ref::FT = td.T_REF) where {FT<:AbstractFloat}
temperature_correction(td::ArrheniusPeak{FT}, t::FT; t_ref::FT = td.T_REF) where {FT<:AbstractFloat}
temperature_correction(td::Q10{FT}, t::FT; t_ref::FT = td.T_REF) where {FT<:AbstractFloat}
temperature_correction(td::Q10Peak{FT}, t::FT; t_ref::FT = td.T_REF) where {FT<:AbstractFloat}

Return the correction ratio for a temperature dependent variable, given

  • td Arrhenius, ArrheniusPeak, Q10, or Q10Peak type temperature dependency struture
  • t Target temperature in K
  • t_ref Reference temperature in K, default is td.T_REF (298.15 K)
source
Photosynthesis.temperature_corrected_valueFunction
temperature_corrected_value(td::Union{Arrhenius{FT}, ArrheniusPeak{FT}, Q10{FT}, Q10Peak{FT}}, t::FT; t_ref::FT = td.T_REF) where {FT<:AbstractFloat}

Return the temperature corrected value, given

  • td Arrhenius, ArrheniusPeak, Q10, or Q10Peak type temperature dependency struture
  • t Target temperature in K
  • t_ref Reference temperature in K, default is td.T_REF (298.15 K)
source
Photosynthesis.photosystem_temperature_dependence!Function
photosystem_temperature_dependence!(psm::C3CytochromeModel{FT}, air::AirLayer{FT}, t::FT) where {FT<:AbstractFloat}
photosystem_temperature_dependence!(psm::C3VJPModel{FT}, air::AirLayer{FT}, t::FT) where {FT<:AbstractFloat}
photosystem_temperature_dependence!(psm::C4VJPModel{FT}, air::AirLayer{FT}, t::FT) where {FT<:AbstractFloat}

Update the temperature dependencies of C3 photosynthesis model, given

  • psm C3CytochromeModel, C3VJPModel, or C4VJPModel structure for photosynthesis model
  • air AirLayer structure for environmental conditions like O₂ partial pressure
  • t Target temperature in K
source
Photosynthesis.∂R∂TFunction
∂R∂T(leaf::Leaf{FT}) where {FT<:AbstractFloat}
∂R∂T(leaves::Leaves1D{FT}) where {FT<:AbstractFloat}
∂R∂T(leaves::Leaves2D{FT}) where {FT<:AbstractFloat}

Return the marginal increase in respiration rate per temperature, given

  • leaf Leaf type leaf
  • leaves Leaves1D or Leaves2D type leaf
source

Electron transport

Photosynthesis.photosystem_electron_transport!Function
photosystem_electron_transport!(psm::C3CytochromeModel{FT}, rc::CytochromeReactionCenter{FT}, ppar::FT, p_i::FT; β::FT = FT(1)) where {FT<:AbstractFloat}
photosystem_electron_transport!(psm::C3VJPModel{FT}, rc::VJPReactionCenter{FT}, ppar::FT, p_i::FT; β::FT = FT(1)) where {FT<:AbstractFloat}
photosystem_electron_transport!(psm::C4VJPModel{FT}, rc::VJPReactionCenter{FT}, ppar::FT, p_i::FT; β::FT = FT(1)) where {FT<:AbstractFloat}

Update the electron transport rates, given

  • psm C3CytochromeModel, C3VJPModel, or C4VJPModel type C3 photosynthesis model
  • rc CytochromeReactionCenter or VJPReactionCenter type photosynthesis system reaction center
  • ppar Absorbed photosynthetically active radiation in μmol m⁻² s⁻¹
  • p_i Internal CO₂ partial pressure in Pa, used to compute etoc
  • β Tuning factor to downregulate effective Vmax, Jmax, and Rd
source

Photosynthetic rates

Photosynthesis.rubisco_limited_rate!Function

This function supports two types of calculations:

  • Calculate the rate from internal CO₂
  • Calculate the rate from CO₂ conductance by solving a quadratic function
source
Photosynthesis.rubisco_limited_rate!Method
rubisco_limited_rate!(psm::Union{C3CytochromeModel{FT},C3VJPModel{FT}}, p_i::FT; β::FT = FT(1)) where {FT<:AbstractFloat}
rubisco_limited_rate!(psm::C4VJPModel{FT}, p_i::FT; β::FT = FT(1)) where {FT<:AbstractFloat}

Update the RubisCO limited photosynthetic rate, given

  • psm C3CytochromeModel, C3VJPModel, or C4VJPModel structure for photosynthesis model
  • p_i Internal CO₂ partial pressure in Pa
  • β Tuning factor to downregulate effective Vmax, Jmax, and Rd
source
Photosynthesis.rubisco_limited_rate!Method
rubisco_limited_rate!(psm::Union{C3CytochromeModel{FT}, C3VJPModel{FT}}, air::AirLayer{FT}, g_lc::FT; β::FT = FT(1)) where {FT<:AbstractFloat}
rubisco_limited_rate!(psm::C4VJPModel{FT}, air::AirLayer{FT}, g_lc::FT; β::FT = FT(1)) where {FT<:AbstractFloat}

Update the RubisCO limited photosynthetic rate in conductance mode, given

  • psm C3CytochromeModel, C3VJPModel, or C4VJPModel structure for photosynthesis model
  • air AirLayer structure for environmental conditions like O₂ partial pressure
  • g_lc Leaf diffusive conductance to CO₂ in [mol m⁻² s⁻¹]
  • β Tuning factor to downregulate effective Vmax, Jmax, and Rd
source
Photosynthesis.light_limited_rate!Function

This function supports two types of calculations:

  • Calculate the rate from internal CO₂
  • Calculate the rate from CO₂ conductance by solving a quadratic function
source
Photosynthesis.light_limited_rate!Method
light_limited_rate!(psm::Union{C3CytochromeModel{FT}, C4VJPModel{FT}}) where {FT<:AbstractFloat}
light_limited_rate!(psm::C3VJPModel{FT}) where {FT<:AbstractFloat}

Update the electron transport limited photosynthetic rate, given

  • psm C3CytochromeModel, C3VJPModel, or C4VJPModel structure for C3 photosynthesis model
source
Photosynthesis.light_limited_rate!Method
light_limited_rate!(psm::C3CytochromeModel{FT}, rc::CytochromeReactionCenter{FT}, air::AirLayer{FT}, g_lc::FT; β::FT = FT(1)) where {FT<:AbstractFloat}
light_limited_rate!(psm::C3VJPModel{FT}, rc::VJPReactionCenter{FT}, air::AirLayer{FT}, g_lc::FT; β::FT = FT(1)) where {FT<:AbstractFloat}
light_limited_rate!(psm::C4VJPModel{FT}, rc::VJPReactionCenter{FT}, air::AirLayer{FT}, g_lc::FT; β::FT = FT(1)) where {FT<:AbstractFloat}

Update the electron transport limited photosynthetic rate in conductance mode, given

  • psm C3CytochromeModel, C3VJPModel, or C4VJPModel structure for C3 photosynthesis model
  • rc CytochromeReactionCenter or VJPReactionCenter type photosynthesis system reaction center
  • air AirLayer structure for environmental conditions like O₂ partial pressure
  • g_lc Leaf diffusive conductance to CO₂ in [mol m⁻² s⁻¹]
  • β Tuning factor to downregulate effective Vmax, Jmax, and Rd
source
Photosynthesis.product_limited_rate!Function

This function supports two types of calculations:

  • Calculate the rate from internal CO₂
  • Calculate the rate from CO₂ conductance by solving a quadratic function
source
Photosynthesis.product_limited_rate!Method
product_limited_rate!(psm::Union{C3CytochromeModel{FT}, C3VJPModel{FT}}, p_i::FT; β::FT = FT(1)) where {FT<:AbstractFloat}
product_limited_rate!(psm::C4VJPModel{FT}, p_i::FT; β::FT = FT(1)) where {FT<:AbstractFloat}

Update the product limited photosynthetic rate, given

  • psm C3CytochromeModel, C3VJPModel, or C4VJPModel structure for C3 photosynthesis model
  • p_i Internal CO₂ partial pressure in Pa, not used in this method
  • β Tuning factor to downregulate effective Vmax, Jmax, and Rd
source
Photosynthesis.product_limited_rate!Method
product_limited_rate!(psm::Union{C3CytochromeModel{FT}, C3VJPModel{FT}}, air::AirLayer{FT}, g_lc::FT; β::FT = FT(1)) where {FT<:AbstractFloat}
product_limited_rate!(psm::C4VJPModel{FT}, air::AirLayer{FT}, g_lc::FT; β::FT = FT(1)) where {FT<:AbstractFloat}

Update the electron transport limited photosynthetic rate in conductance mode, given

  • psm C3CytochromeModel, C3VJPModel, or C4VJPModel structure for C3 photosynthesis model
  • air AirLayer structure for environmental conditions like O₂ partial pressure, not used in this method
  • g_lc Leaf diffusive conductance to CO₂ in [mol m⁻² s⁻¹], not used in this method
  • β Tuning factor to downregulate effective Vmax, Jmax, and Rd
source

Colimitation

Photosynthesis.colimit_photosynthesis!Function
colimit_photosynthesis!(psm::Union{C3CytochromeModel{FT}, C3VJPModel{FT}, C4VJPModel{FT}}; β::FT = FT(1)) where {FT<:AbstractFloat}

Colimit the photosynthesis by rubisco-, light-, and product-limited photosynthetic rates, given

  • psm C3CytochromeModel, C3VJPModel, or C4VJPModel type photosynthesis model
  • β Tuning factor to downregulate effective Vmax, Jmax, and Rd (default is 1)
source
Photosynthesis.colimited_rateFunction
colimited_rate(a_1::FT, a_2::FT, colim::MinimumColimit{FT}) where {FT<:AbstractFloat}
colimited_rate(a_1::FT, a_2::FT, colim::QuadraticColimit{FT}) where {FT<:AbstractFloat}
colimited_rate(a_1::FT, a_2::FT, colim::SerialColimit{FT}) where {FT<:AbstractFloat}
colimited_rate(a_1::FT, a_2::FT, colim::SquareColimit{FT}) where {FT<:AbstractFloat}

Return the minimum of two rates, given

  • a_1 Rate 1
  • a_2 Rate 2
  • colim MinimumColimit, QuadraticColimit, or SerialColimit type struct
source

Coefficients and fluorescence

Photosynthesis.photosystem_coefficients!Function
photosystem_coefficients!(psm::C3CytochromeModel{FT}, rc::CytochromeReactionCenter{FT}, ppar::FT; β::FT = FT(1)) where {FT<:AbstractFloat}
photosystem_coefficients!(psm::Union{C3VJPModel{FT}, C4VJPModel{FT}}, rc::VJPReactionCenter{FT}, ppar::FT; β::FT = FT(1)) where {FT<:AbstractFloat}

Update the rate constants and coefficients in reaction center, given

  • psm C3CytochromeModel, C3VJPModel, or C4VJPModel type photosynthesis model
  • rc CytochromeReactionCenter or VJPReactionCenter type photosynthesis system reaction center
  • ppar Absorbed photosynthetically active radiation in μmol m⁻² s⁻¹
  • β Tuning factor to downregulate effective Vmax, Jmax, and Rd
source