Models / FvCB

FvCB

The FvCB model (Farquhar, von Caemmerer & Berry, 1980) is a widely used framework for C3 photosynthesis. It describes net carbon assimilation An as the minimum of three potential rates — the RuBisCO-limited rate Wc, the electron-transport-limited rate Wj, and the triose-phosphate-utilisation-limited rate Wp — evaluated across a range of intercellular CO₂ (Ci).

tune

Parameters

analytics

Sweeps

Assimilation vs Ci

Model Details

Review and edit the model parameters and the algebraic assignments that define its outputs.

NameTex nameInitial valueActions

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

preview

Generated LaTeX Code

\begin{align*}
  \text{Q} &= \frac{\mathrm{PAR}}{1000000} \\ 
  \text{C} &= \frac{\mathrm{CO_2}}{1000000} \\ 
  \text{O} &= \frac{\mathrm{O_2}}{1000} \\ 
  V_{qmax} &= \mathrm{CB6F} \cdot k_q \\ 
  V_{cmax} &= \mathrm{RUB} \cdot k_c \\ 
  R_d &= V_{cmax} \cdot R_{ds} \\ 
  \text{S} &= \frac{k_c}{K_c} \cdot \frac{K_o}{k_o} \\ 
  \Gamma^* &= \frac{\text{O}}{2 \cdot \text{S}} \\ 
  \eta &= 1 - \frac{n_l}{n_c} + \frac{3 + \frac{7 \cdot \Gamma^*}{\text{C}}}{(4 + \frac{8 \cdot \Gamma^*}{\text{C}}) \cdot n_c} \\ 
  \text{phi1P_max} &= \frac{K_{p1}}{K_{p1} + K_d + K_f} \\ 
  \text{a2} &= \mathrm{Abs} \cdot \beta \\ 
  \text{a1} &= \mathrm{Abs} - \text{a2} \\ 
  \text{JP700_j} &= \frac{\text{Q} \cdot V_{qmax}}{\text{Q} + \frac{V_{qmax}}{\text{a1} \cdot \text{phi1P_max}}} \\ 
  \text{JP680_j} &= \frac{\text{JP700_j}}{\eta} \\ 
  \text{Vc_j} &= \frac{\text{JP680_j}}{4 \cdot (1 + \frac{2 \cdot \Gamma^*}{\text{C}})} \\ 
  \text{Vo_j} &= \frac{\text{Vc_j} \cdot 2 \cdot \Gamma^*}{\text{C}} \\ 
  \text{Ag_j} &= \text{Vc_j} - \frac{\text{Vo_j}}{2} \\ 
  \text{Vc_c} &= \frac{\text{C} \cdot V_{cmax}}{\text{C} + K_c \cdot (1 + \frac{\text{O}}{K_o})} \\ 
  \text{Vo_c} &= \frac{\text{Vc_c} \cdot 2 \cdot \Gamma^*}{\text{C}} \\ 
  \text{Ag_c} &= \text{Vc_c} - \frac{\text{Vo_c}}{2} \\ 
  \text{JP680_c} &= \frac{\text{Ag_c} \cdot 4 \cdot (1 + \frac{2 \cdot \Gamma^*}{\text{C}})}{1 - \frac{\Gamma^*}{\text{C}}} \\ 
  \text{JP700_c} &= \text{JP680_c} \cdot \eta \\ 
  \text{JP680_a} &= \min(\frac{\text{JP680_j} + \text{JP680_c} + \sqrt[2]{\max({\text{JP680_j} + \text{JP680_c}}^{2} - 4 \cdot \theta_1 \cdot \text{JP680_j} \cdot \text{JP680_c}, 0)}}{2 \cdot \theta_1}, \frac{\text{JP680_j} + \text{JP680_c} - \sqrt[2]{\max({\text{JP680_j} + \text{JP680_c}}^{2} - 4 \cdot \theta_1 \cdot \text{JP680_j} \cdot \text{JP680_c}, 0)}}{2 \cdot \theta_1}) \\ 
  \text{JP700_a} &= \min(\frac{\text{JP700_j} + \text{JP700_c} + \sqrt[2]{\max({\text{JP700_j} + \text{JP700_c}}^{2} - 4 \cdot \theta_1 \cdot \text{JP700_j} \cdot \text{JP700_c}, 0)}}{2 \cdot \theta_1}, \frac{\text{JP700_j} + \text{JP700_c} - \sqrt[2]{\max({\text{JP700_j} + \text{JP700_c}}^{2} - 4 \cdot \theta_1 \cdot \text{JP700_j} \cdot \text{JP700_c}, 0)}}{2 \cdot \theta_1}) \\ 
  A_g &= \begin{cases}\min(\frac{\text{Ag_j} + \text{Ag_c} + \sqrt[2]{\max({\text{Ag_j} + \text{Ag_c}}^{2} - 4 \cdot \theta_1 \cdot \text{Ag_j} \cdot \text{Ag_c}, 0)}}{2 \cdot \theta_1}, \frac{\text{Ag_j} + \text{Ag_c} - \sqrt[2]{\max({\text{Ag_j} + \text{Ag_c}}^{2} - 4 \cdot \theta_1 \cdot \text{Ag_j} \cdot \text{Ag_c}, 0)}}{2 \cdot \theta_1}) & \text{C} > \Gamma^* \\ \max(\frac{\text{Ag_j} + \text{Ag_c} + \sqrt[2]{\max({\text{Ag_j} + \text{Ag_c}}^{2} - 4 \cdot \theta_1 \cdot \text{Ag_j} \cdot \text{Ag_c}, 0)}}{2 \cdot \theta_1}, \frac{\text{Ag_j} + \text{Ag_c} - \sqrt[2]{\max({\text{Ag_j} + \text{Ag_c}}^{2} - 4 \cdot \theta_1 \cdot \text{Ag_j} \cdot \text{Ag_c}, 0)}}{2 \cdot \theta_1}) & \text{else}\end{cases} \\ 
  A_n &= A_g - R_d \\ 
  \text{phi1P_a0} &= \frac{\text{JP700_a}}{\text{Q} \cdot \text{a1}} \\ 
  \text{q1_a} &= \frac{\text{phi1P_a0}}{\text{phi1P_max}} \\ 
  \text{phi2P_a0} &= \frac{\text{JP680_a}}{\text{Q} \cdot \text{a2}} \\ 
  \text{CB6F_a} &= \frac{\text{JP700_j}}{k_q} \\ 
  \text{q2_a} &= \min(\max(1 - \frac{\text{CB6F_a}}{\mathrm{CB6F}}, 0), 1) \\ 
  \text{num_kn} &= \max({K_{p2}}^{2} \cdot {\text{phi2P_a0}}^{2} - 2 \cdot {K_{p2}}^{2} \cdot \text{phi2P_a0} \cdot \text{q2_a} + {K_{p2}}^{2} \cdot {\text{q2_a}}^{2} - 4 \cdot K_{p2} \cdot K_{u2} \cdot {\text{phi2P_a0}}^{2} \cdot \text{q2_a} + 2 \cdot K_{p2} \cdot K_{u2} \cdot {\text{phi2P_a0}}^{2} + 2 \cdot K_{p2} \cdot K_{u2} \cdot \text{phi2P_a0} \cdot \text{q2_a} + {K_{u2}}^{2} \cdot {\text{phi2P_a0}}^{2}, 0) \\ 
  K_{n2} &= \frac{\sqrt[2]{\text{num_kn}} - K_{p2} \cdot \text{phi2P_a0} + K_{u2} \cdot \text{phi2P_a0} + K_{p2} \cdot \text{q2_a}}{2 \cdot \text{phi2P_a0}} - K_f - K_{u2} - K_d \\ 
  \text{denom2} &= K_{p2} + K_{n2} + K_d + K_f + K_{u2} \\ 
  \text{denom2c} &= K_{n2} + K_d + K_f + K_{u2} \\ 
  \text{phi2p_a} &= \frac{\text{q2_a} \cdot K_{p2}}{\text{denom2}} \\ 
  \text{phi2n_a} &= \frac{\text{q2_a} \cdot K_{n2}}{\text{denom2}} + \frac{(1 - \text{q2_a}) \cdot K_{n2}}{\text{denom2c}} \\ 
  \text{phi2d_a} &= \frac{\text{q2_a} \cdot K_d}{\text{denom2}} + \frac{(1 - \text{q2_a}) \cdot K_d}{\text{denom2c}} \\ 
  \text{phi2f_a} &= \frac{\text{q2_a} \cdot K_f}{\text{denom2}} + \frac{(1 - \text{q2_a}) \cdot K_f}{\text{denom2c}} \\ 
  \text{phi2u_a} &= \frac{\text{q2_a} \cdot K_{u2}}{\text{denom2}} + \frac{(1 - \text{q2_a}) \cdot K_{u2}}{\text{denom2c}} \\ 
  \text{phi2P_a} &= \frac{\text{phi2p_a}}{1 - \text{phi2u_a}} \\ 
  \text{phi2N_a} &= \frac{\text{phi2n_a}}{1 - \text{phi2u_a}} \\ 
  \text{phi2D_a} &= \frac{\text{phi2d_a}}{1 - \text{phi2u_a}} \\ 
  \text{phi2F_a} &= \frac{\text{phi2f_a}}{1 - \text{phi2u_a}} \\ 
  \text{denom1_open} &= K_{p1} + K_d + K_f \\ 
  \text{denom1_closed} &= K_{n1} + K_d + K_f \\ 
  \text{phi1P_a} &= \frac{\text{q1_a} \cdot K_{p1}}{\text{denom1_open}} \\ 
  \text{phi1N_a} &= \frac{(1 - \text{q1_a}) \cdot K_{n1}}{\text{denom1_closed}} \\ 
  \text{phi1D_a} &= \frac{\text{q1_a} \cdot K_d}{\text{denom1_open}} + \frac{(1 - \text{q1_a}) \cdot K_d}{\text{denom1_closed}} \\ 
  \text{phi1F_a} &= \frac{\text{q1_a} \cdot K_f}{\text{denom1_open}} + \frac{(1 - \text{q1_a}) \cdot K_f}{\text{denom1_closed}} \\ 
  \text{Fm_a} &= \frac{\text{a2} \cdot K_f}{K_d + K_f} \cdot \epsilon_2 + \frac{\text{a1} \cdot K_f}{K_{n1} + K_d + K_f} \cdot \epsilon_1 \\ 
  \text{Fo_a} &= \frac{\text{a2} \cdot K_f}{K_{p2} + K_d + K_f} \cdot \epsilon_2 + \frac{\text{a1} \cdot K_f}{K_{p1} + K_d + K_f} \cdot \epsilon_1 \\ 
  \text{Fmp_a} &= \frac{\text{a2} \cdot K_f}{K_{n2} + K_d + K_f} \cdot \epsilon_2 + \frac{\text{a1} \cdot K_f}{K_{n1} + K_d + K_f} \cdot \epsilon_1 \\ 
  \text{Fop_a} &= \frac{\text{a2} \cdot K_f}{K_{p2} + K_{n2} + K_d + K_f} \cdot \epsilon_2 + \frac{\text{a1} \cdot K_f}{K_{p1} + K_d + K_f} \cdot \epsilon_1 \\ 
  \text{Fs_a} &= \text{a2} \cdot \text{phi2F_a} \cdot \epsilon_2 + \text{a1} \cdot \text{phi1F_a} \cdot \epsilon_1 \\ 
  \text{PAM1_a} &= 1 - \frac{\text{Fs_a}}{\text{Fmp_a}} \\ 
  \text{PAM2_a} &= \text{Fs_a} \cdot (\frac{1}{\text{Fmp_a}} - \frac{1}{\text{Fm_a}}) \\ 
  \text{PAM3_a} &= \frac{\text{Fs_a}}{\text{Fm_a}} \\ 
  \text{ETR} &= \frac{\text{Q} \cdot 0.85}{2} \cdot \text{PAM1_a} \\ 
  \text{qP} &= \frac{\text{Fmp_a} - \text{Fs_a}}{\text{Fmp_a} - \text{Fop_a}} \\ 
  \text{qL} &= \frac{(\text{Fmp_a} - \text{Fs_a}) \cdot \text{Fop_a}}{(\text{Fmp_a} - \text{Fop_a}) \cdot \text{Fs_a}} \\ 
  \text{kPuddle} &= \frac{\text{ETR}}{1 - \text{qP}} \\ 
  \text{kLake} &= \frac{\text{ETR}}{1 - \text{qL}} \\ 
  \text{NPQ} &= \frac{\text{Fm_a}}{\text{Fmp_a}} - 1 \\ 
  \text{active_cb6f} &= \max(\mathrm{CB6F} \cdot (1 - \text{q2_a}), 1e-12) \\ 
  \text{k_CB6F} &= \begin{cases}k_q & \text{JP700_a} \geq \text{JP700_j} \cdot 0.999 \\ \frac{\text{JP700_a}}{\text{active_cb6f}} & \text{else}\end{cases}
\end{align*}

Edit sweep

Plot options

Output selection
Show Normalize

Build your own model

Choose how you want to define your system.

ODE models

Steady-state models