NADPH production
NADP > NADPH
PGA consumption
PGA > RuBP
PGA production - v_c
RuBP + CO2 + {2.0}NADPH > {2.0}PGA
PGA production - v_o
{2.0}NADPH + RuBP + CO2 > {1.5}PGA
NADP = Nt - NADPH
jp = 1.0 / 2.0 * (1.0 - f) * Ipar
phi = 0.21 * (O2 / Ko) / (CO2 / Kc)
j = (abs(jp + 467.0) - abs(jp - 467.0)) / 2.0 / 65.0
oxygenation(phi, kc, S2, K, R, KI, Epar, S1) = phi * (kc * S2 / (S2 + K * (1 + R / KI)) * Epar + kc * S2 / (S2 + K * (1 + R / KI)) * S1 - abs(kc * S2 / (S2 + K * (1 + R / KI)) * Epar - kc * S2 / (S2 + K * (1 + R / KI)) * S1)) / 2
PGA_consumption(S1, Rp, Nt, kc, Epar, R) = S1 / Rp * (R / Nt) * kc * Epar
carboxylation(kc, S2, K, R, KI, Epar, S1) = (kc * S2 / (S2 + K * (1 + R / KI)) * Epar + kc * S2 / (S2 + K * (1 + R / KI)) * S1 - abs(kc * S2 / (S2 + K * (1 + R / KI)) * Epar - kc * S2 / (S2 + K * (1 + R / KI)) * S1)) / 2
NADPH_production(j, S1, Nt) = j / 2 * (S1 / Nt)
Note that constraints are not enforced in simulations. It remains the responsibility of the user to verify that simulation results satisfy these constraints.