|
The BioCro C++ Library
|
#include <cmath>#include "../framework/constants.h"#include "conductance_helpers.h"#include "../math/roots/onedim/dekker.h"#include "water_and_air_properties.h"#include "boundary_layer_conductance.h"
Include dependency graph for boundary_layer_conductance.cpp:Go to the source code of this file.
Functions | |
| double | leaf_boundary_layer_conductance_campbell (double air_temperature, double delta_t, double lw, double windspeed, double p) |
| Calculates the conductance for water vapor flow from the leaf across its boundary layer using a model described in Campbell & Norman (1998). More... | |
| double | leaf_boundary_layer_conductance_nikolov (double air_temperature, double delta_t, double ea, double gsv, double lw, double windspeed, double p) |
| Calculates the conductance for water vapor flow from the leaf across its boundary layer using a model described in Nikolov, Massman, and Schoettle (1995). More... | |
| double | canopy_boundary_layer_conductance_thornley (double CanopyHeight, double WindSpeed, double minimum_gbw, double WindSpeedHeight) |
| Calculates the conductance for water vapor flow from the canopy across its boundary layer using a model described in Thornley and Johnson (1990). More... | |
| double canopy_boundary_layer_conductance_thornley | ( | double | CanopyHeight, |
| double | WindSpeed, | ||
| double | minimum_gbw, | ||
| double | WindSpeedHeight | ||
| ) |
Calculates the conductance for water vapor flow from the canopy across its boundary layer using a model described in Thornley and Johnson (1990).
Note that when gas exchange is considered at the canopy level, this conductance characterizes the entire path to the ambient air. For a leaf within a canopy, there is an additional boundary layer separating the leaf from the canopy boundary layer; this leaf boundary layer conductance must be calculated using a separate model.
This model considers gas flow due to wind-driven eddy currents. Here, the conductance is calculated using Equation 14.9 from pages 414 - 416 of the Thornley textbook. Unfortunately, an electronic version of this reference is not available.
In this model, the minimum possible boundary layer conductance that could occur is zero, which would correspond to zero wind speed or canopy height. In realistic field conditions, boundary layer conductance can never truly be zero because of other transport processes such as buoyancy effects. To accomodate this, an option is provided for setting a minimum value for the boundary layer counductance.
This model contains two singularities, which occur when either of the following conditions are met:
WindSpeedHeight + Zeta - d = 0, which is equivalent to CanopyHeight = WindSpeedHeight / (dCoef - ZetaCoef) = WindSpeedHeight * 1.34WindSpeedHeight + ZetaM - d = 0, which is equivalent to CanopyHeight = WindSpeedHeight / (dCoef - ZetaMCoef) = WindSpeedHeight * 1.56So, as the canopy height approaches or exceeds the height at which wind speed was measured, the calculated boundary layer conductance becomes unbounded. For even larger canopy heights, the conductance eventually begins to decrease. For tall crops, this is a severe limitation to this model. Here we address this issue by limiting the canopy height to 0.98 * WindSpeedHeight.
References:
| [in] | CanopyHeight | The height of the canopy above the ground in m |
| [in] | WindSpeed | The wind speed in m / s as measured above the canopy boundary layer |
| [in] | minimum_gbw | The lowest possible value for boundary layer conductance in m / s that should be returned |
| [in] | WindSpeedHeight | The height in m at which the wind speed was measured |
Definition at line 258 of file boundary_layer_conductance.cpp.
| double leaf_boundary_layer_conductance_campbell | ( | double | air_temperature, |
| double | delta_t, | ||
| double | lw, | ||
| double | windspeed, | ||
| double | p | ||
| ) |
Calculates the conductance for water vapor flow from the leaf across its boundary layer using a model described in Campbell & Norman (1998).
Note that for an isolated leaf, this conductance characterizes the entire path from the leaf surface to the ambient air. For a leaf within a canopy, there is an additional boundary layer separating the canopy from the atmosphere; this canopy boundary layer conductance must be calculated using a separate model.
In this model, two types of gas flow are considered: "forced" flow driven by wind-created eddy currents and "free" flow driven by temperature-related buoyancy effects. The overall conductance is determined to be the larger of the free and forced conductances.
In this function, we use the "forced convection" and "free convection" equations for vapor transfer as shown in Table 7.6. The equations as presented in the table return "molecular" conductances in units of mol / m^2 / s. Here we convert these to "mass" conductances for consistency with leaf_boundary_layer_conductance_nikolov().
These form a simpler alterative to the model presented in leaf_boundary_layer_conductance_nikolov(). Specifically, the Campbell & Norman equations do not require an iterative method to solve.
References:
| [in] | air_temperature | The air temperature in degrees C |
| [in] | delta_t | The temperature difference between the leaf and air in degrees C |
| [in] | lw | The characteristic leaf dimension in m |
| [in] | windspeed | The wind speed just outside the leaf boundary layer in m / s |
| [in] | p | The atmospheric pressure in Pa |
Definition at line 52 of file boundary_layer_conductance.cpp.
References g_to_mass().
Referenced by calculate_gbw_leaf().
Here is the call graph for this function:
Here is the caller graph for this function:| double leaf_boundary_layer_conductance_nikolov | ( | double | air_temperature, |
| double | delta_t, | ||
| double | ea, | ||
| double | gsv, | ||
| double | lw, | ||
| double | windspeed, | ||
| double | p | ||
| ) |
Calculates the conductance for water vapor flow from the leaf across its boundary layer using a model described in Nikolov, Massman, and Schoettle (1995).
Note that for an isolated leaf, this conductance characterizes the entire path from the leaf surface to the ambient air. For a leaf within a canopy, there is an additional boundary layer separating the canopy from the atmosphere; this canopy boundary layer conductance must be calculated using a separate model.
In this model, two types of gas flow are considered: "forced" flow driven by wind-created eddy currents and "free" flow driven by temperature-related buoyancy effects. The overall conductance is determined to be the larger of the free and forced conductances.
In this function, we use equations 29, 33, 34, and 35 to calculate boundary layer conductance. This is the same approach taken in the MLcan model of Drewry et al. (2010).
Nikolov et al. (1995) solve the coupled equations for free boundary layer conductance using the fixed-point iteration method. Here we use the Dekker method for better stability.
Use this model with caution; it is know to exhibit multiple solutions, which can make its outputs discontinuous as inputs are varied.
References:
| [in] | air_temperature | The air temperature in degrees C |
| [in] | delta_t | The temperature difference between the leaf and air in degrees C |
| [in] | ea | The partial pressure of water vapor in the atmosphere in Pa |
| [in] | gsv | The stomatal conductance in m / s |
| [in] | lw | The characteristic leaf dimension in m |
| [in] | windspeed | The wind speed just outside the leaf boundary layer in m / s |
| [in] | p | The atmospheric pressure in Pa |
Definition at line 130 of file boundary_layer_conductance.cpp.
References saturation_vapor_pressure().
Here is the call graph for this function: