TF24

model

TF24 is the hydraulically-explicit strategy. It keeps the trait-based functional-balance growth and allocation machinery of FF16 but replaces FF16’s fixed light-use efficiency with a mechanistic leaf model: at each instant the plant chooses stomatal conductance to maximise carbon profit net of the hydraulic cost of transpiration.

That leaf-level optimisation — photosynthetic revenue from the Farquhar model, hydraulic cost from a xylem vulnerability curve, and the golden-section search that balances them — is the heart of TF24 and is documented in full on the core theory page:

How TF24 relates to FF16

FF16 TF24
Carbon income fixed leaf-level light-use efficiency Farquhar photosynthesis coupled to stomatal conductance
Water implicit explicit supply–demand hydraulics with a vulnerability curve
Stomata conductance set by profit maximisation
Allocation / growth functional balance (shared) functional balance (shared)

Everything below the leaf model — how assimilate is turned into height, diameter, and tissue pools, and how those feed the size-structured PDE — is inherited from FF16.

Soil water and root uptake

TF24’s hydraulics terminate at the root collar. The supply side — the soil water balance and multi-layer root water uptake that feed water to it — is documented on its own core theory page:

  • Soil water & root uptake — the multi-layer bucket model, infiltration and drainage, the retention curve, and the root-collar solve that couples soil moisture into the leaf model.

The original prototyping and benchmarking of this machinery lives in the notebook:

NoteStrategy-level documentation is partial

The original strategy_TF24 vignette was an empty stub. This page assembles TF24 from its documented parts (the leaf model and the inherited FF16 machinery). A full strategy-level write-up — the exact coupling of the leaf model into whole-plant growth, and the complete TF24 parameter set — is still TODO and should be supplied by the model authors rather than guessed.

TF24f: acclimation lag instead of instantaneous re-optimisation

TF24f is a variant of TF24, not a different physiology. It subclasses TF24_Strategy and reuses TF24’s leaf model, its xylem vulnerability curve, and its soil-water coupling untouched — every carbon-income and water-transport calculation is exactly the one described on Assimilation & hydraulics. The one thing TF24f changes is how the plant finds its operating point on the profit curve.

TF24 treats stomatal/hydraulic behaviour as quasi-steady-state: at every ODE step it re-solves the profit-maximisation problem from scratch, using a golden-section search over root-collar water potential to find the \(\psi\) that maximises the profit \(P(\psi_l)\) defined on the assimilation & hydraulics page. This assumes the plant’s hydraulic operating point adjusts instantaneously to its physical and environmental optimum at every instant — a reasonable simplification, but one that leaves no room for a plant that is still adjusting.

TF24f relaxes that assumption. It adds a sixth ODE state, opt_root_psi_state, that tracks the plant’s current root-collar water potential and lets it climb toward the profit-maximising optimum by gradient ascent, rather than jumping straight to it:

\[ \frac{d\psi}{dt} = k_{\text{acclim}} \cdot \frac{dP}{d\psi} \]

Instead of a golden-section search, TF24f’s leaf-solve step evaluates profit at the tracked \(\psi\) and hands the local profit gradient \(dP/d\psi\) back to the ODE system, which integrates the state forward. The tracked state is seeded at the true optimum at establishment, so there is no birth transient — the lag only shows up once the environment moves the optimum away from where the plant is sitting.

The gradient itself can be computed two ways, controlled by use_ad_gradient:

  • use_ad_gradient = true (the default) — an exact gradient, Leaf::dprofit_droot_collar_psi, built from forward-mode automatic differentiation of the photosynthesis/cost algebra, the implicit-function theorem applied at the \(\psi_l \to C_i\) root-find, and analytic spline derivatives for the transport terms.
  • use_ad_gradient = false — a finite-difference approximation, stepping \(\psi\) by psi_fd_step (MPa) and differencing profit either side.

k_acclim is the acclimation-rate knob, and it is what makes TF24f a family of behaviours rather than a single alternative to TF24:

Small k_acclim Large k_acclim
Behaviour slow, lagged tracking of the optimum tight tracking — approaches TF24’s instantaneous optimum
Interpretation a real acclimation delay in stomatal/hydraulic adjustment quasi-steady-state recovered as a limiting case
Cost cheaper: no per-step search, just one gradient evaluation
Risk plant can be caught away from the optimum by fast environmental change stiff ODE state; may demand a smaller integration step

TF24 vs TF24f

TF24 TF24f
Operating-point solve golden-section search for the profit optimum, every step gradient-ascent relaxation toward the optimum, tracked as an ODE state
Assumption instantaneous (quasi-steady-state) acclimation finite acclimation lag, set by k_acclim
Extra state opt_root_psi_state (6th ODE state)
Gradient source not needed (search only evaluates profit) Leaf::dprofit_droot_collar_psi (AD) or finite difference (psi_fd_step)
Physiology, hydraulics, soil coupling shared shared (inherited unchanged from TF24)
Bit-for-bit match to TF24 no — by design, it tracks rather than reproduces the optimum

Reach for TF24f when the question is about dynamics of acclimation — how quickly a plant’s stomatal/hydraulic behaviour can respond to a shifting environment — rather than assuming it is always instantaneously optimal, or when running many individuals/steps makes TF24’s per-step search the bottleneck and a large k_acclim is an acceptable stand-in for the instantaneous optimum. Stick with TF24 when the quasi-steady-state assumption is the thing you want (no extra state, no acclimation-rate parameter to choose), or when you need results that match TF24 exactly rather than approach it as \(k_{\text{acclim}} \to \infty\).