|
The BioCro C++ Library
|
#include <cmath>#include "../framework/constants.h"#include "boundary_layer_conductance.h"#include "conductance_helpers.h"#include "../math/roots/onedim/dekker.h"#include "water_and_air_properties.h"#include "leaf_energy_balance.h"
Include dependency graph for leaf_energy_balance.cpp:Go to the source code of this file.
Functions | |
| double | calculate_Phi_N (double const epsilon_s, double const J_a, double const leaf_temperature) |
| Calculates the total energy available to the leaf for transpiration and sensible heat loss, often denoted as \( \Phi_N \). More... | |
| double | calculate_gbw_leaf (double const air_pressure, double const air_temperature, double const leaf_temperature, double const leaf_width, double const wind_speed) |
| Calculates the leaf boundary layer conductance using the Nikolov model. More... | |
| double | check_leaf_temp (double const air_pressure, double const air_temperature, double const Delta_rho, double const epsilon_s, double const gamma, double const gbw_canopy, double const J_a, double const lambda, double const leaf_temperature, double const leaf_width, double const s, double const stomatal_conductance, double const wind_speed) |
| Calculates a difference in leaf temperature; this function will return zero only if leaf temperature satisfies the energy balance equations. More... | |
| energy_balance_outputs | leaf_energy_balance (double absorbed_longwave_energy, double absorbed_shortwave_energy, double air_pressure, double air_temperature, double gbw_canopy, double leaf_width, double relative_humidity, double stomatal_conductance, double wind_speed) |
| Calculates leaf-level temperature and transpiration rate for a leaf within a canopy using a Penman-Monteith approach. More... | |
| double calculate_gbw_leaf | ( | double const | air_pressure, |
| double const | air_temperature, | ||
| double const | leaf_temperature, | ||
| double const | leaf_width, | ||
| double const | wind_speed | ||
| ) |
Calculates the leaf boundary layer conductance using the Nikolov model.
This is a simple wrapper to reduce repeated code in the energy balance calculations.
Definition at line 48 of file leaf_energy_balance.cpp.
References leaf_boundary_layer_conductance_campbell().
Referenced by check_leaf_temp(), and leaf_energy_balance().
Here is the call graph for this function:
Here is the caller graph for this function:| double calculate_Phi_N | ( | double const | epsilon_s, |
| double const | J_a, | ||
| double const | leaf_temperature | ||
| ) |
Calculates the total energy available to the leaf for transpiration and sensible heat loss, often denoted as \( \Phi_N \).
This is a simple helping function to reduce repeated code in the energy balance calculations.
| [in] | epsilon_s | Emissivity of the leaf surface (dimensionless) |
| [in] | J_a | Absorbed shortwave and longwave energy (J / m^2 / s) |
| [in] | leaf_temperature | Leaf temperature (degrees C) |
Definition at line 25 of file leaf_energy_balance.cpp.
Referenced by check_leaf_temp(), and leaf_energy_balance().
Here is the caller graph for this function:| double check_leaf_temp | ( | double const | air_pressure, |
| double const | air_temperature, | ||
| double const | Delta_rho, | ||
| double const | epsilon_s, | ||
| double const | gamma, | ||
| double const | gbw_canopy, | ||
| double const | J_a, | ||
| double const | lambda, | ||
| double const | leaf_temperature, | ||
| double const | leaf_width, | ||
| double const | s, | ||
| double const | stomatal_conductance, | ||
| double const | wind_speed | ||
| ) |
Calculates a difference in leaf temperature; this function will return zero only if leaf temperature satisfies the energy balance equations.
Definition at line 68 of file leaf_energy_balance.cpp.
References calculate_gbw_leaf(), calculate_Phi_N(), g_to_mass(), and sequential_conductance().
Referenced by leaf_energy_balance().
Here is the call graph for this function:
Here is the caller graph for this function:| energy_balance_outputs leaf_energy_balance | ( | double | absorbed_longwave_energy, |
| double | absorbed_shortwave_energy, | ||
| double | air_pressure, | ||
| double | air_temperature, | ||
| double | gbw_canopy, | ||
| double | leaf_width, | ||
| double | relative_humidity, | ||
| double | stomatal_conductance, | ||
| double | wind_speed | ||
| ) |
Calculates leaf-level temperature and transpiration rate for a leaf within a canopy using a Penman-Monteith approach.
Here we consider the path of water vapor to pass through three sequential barriers: the stomata, the leaf boundary layer, and finally the canopy boundary layer. Conductance across the leaf boundary layer is calculated using the leaf_boundary_layer_conductance_nikolov() function, while the other conductances must be provided as inputs.
Leaf temperature and transpiration are calculated using Equations 14.11e and 14.4c, respectively, from Thornley & Johnson (1990).
| [in] | absorbed_longwave_energy | Absorbed light energy in the longwave (infrared) band (J / m^2 / s) |
| [in] | absorbed_shortwave_energy | Absorbed light energy in the shortwave (PAR and near-infrared) band (J / m^2 / s) |
| [in] | air_pressure | Total air pressure (Pa) |
| [in] | air_temperature | Bulk air temperature (degrees C) |
| [in] | gbw_canopy | Conductance to H2O diffusion across the canopy boundary layer (m / s) |
| [in] | leaf_width | Characteristic dimension of a typical leaf (m) |
| [in] | relative_humidity | Relative humidity in the bulk air (dimensionless from Pa / Pa) |
| [in] | stomatal_conductance | Conductance to H2O diffusion across the stomata (mol / m^2 / s) |
| [in] | wind_speed | Wind speed within the canopy just outside the leaf boundary layer (m / s) |
Definition at line 147 of file leaf_energy_balance.cpp.
References calculate_gbw_leaf(), calculate_Phi_N(), check_leaf_temp(), dry_air_density(), g_to_mass(), g_to_molecular(), saturation_vapor_pressure(), sequential_conductance(), TempToCp(), TempToSFS(), vapor_density_from_pressure(), and water_latent_heat_of_vaporization_henderson().
Referenced by c3CanAC(), and CanAC().
Here is the call graph for this function:
Here is the caller graph for this function: