Energy balance model class. More...
#include <EnergyBalanceModel.h>
Public Member Functions | |
EnergyBalanceModel (helios::Context *context) | |
Constructor. | |
void | enableMessages () |
Enable standard output from this plug-in (default) | |
void | disableMessages () |
Disable standard output from this plug-in. | |
void | run () |
Function to run the energy balance model for all primitives in the Context. | |
void | run (float dt) |
Function to run the dynamic /non steady state energy balance model for one timestep of length "dt" seconds. | |
void | run (const std::vector< uint > &UUIDs) |
Function to run the energy balance model for a select set of primitives. | |
void | run (const std::vector< uint > &UUIDs, float dt) |
Function to run the energy balance model for a select set of primitives for one timestep of length "dt" seconds. | |
void | addRadiationBand (const char *band) |
Add the label of a radiation band in the RadiationModel plug-in that should be used in calculation of the absorbed all-wave radiation flux. | |
void | addRadiationBand (const std::vector< std::string > &bands) |
Add the labels of radiation bands in the RadiationModel plug-in that should be used in calculation of the absorbed all-wave radiation flux. | |
void | enableAirEnergyBalance () |
Enable the air energy balance model, which computes the average air temperature and water vapor mole fraction based on the energy balance of the air layer in the canopy. | |
void | enableAirEnergyBalance (float canopy_height_m, float reference_height_m) |
Enable the air energy balance model, which computes the average air temperature and water vapor mole fraction based on the energy balance of the air layer in the canopy. | |
void | evaluateAirEnergyBalance (float dt_sec, float time_advance_sec) |
Advance the air energy balance over time for all primitives in the Context. | |
void | evaluateAirEnergyBalance (const std::vector< uint > &UUIDs, float dt_sec, float time_advance_sec) |
Advance the air energy balance over time for primitives specified by UUIDs. | |
void | optionalOutputPrimitiveData (const char *label) |
Add optional output primitive data values to the Context. | |
void | printDefaultValueReport () const |
Print a report detailing usage of default input values for all primitives in the Context. | |
void | printDefaultValueReport (const std::vector< uint > &UUIDs) const |
Print a report detailing usage of default input values based on a subset of primitive UUIDs. | |
Static Public Member Functions | |
static int | selfTest (int argc=0, char **argv=nullptr) |
Self-test. | |
Energy balance model class.
This model computes surface temperatures based on a local energy balance
Definition at line 40 of file EnergyBalanceModel.h.
EnergyBalanceModel::EnergyBalanceModel | ( | helios::Context * | context | ) |
Constructor.
[in] | context | Pointer to the Helios context |
Definition at line 23 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::addRadiationBand | ( | const char * | band | ) |
Add the label of a radiation band in the RadiationModel plug-in that should be used in calculation of the absorbed all-wave radiation flux.
[in] | band | Name of radiation band (e.g., PAR, NIR, LW, etc.) |
Definition at line 445 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::addRadiationBand | ( | const std::vector< std::string > & | bands | ) |
Add the labels of radiation bands in the RadiationModel plug-in that should be used in calculation of the absorbed all-wave radiation flux.
[in] | bands | Vector of names of radiation bands (e.g., PAR, NIR, LW, etc.) |
Definition at line 451 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::disableMessages | ( | ) |
Disable standard output from this plug-in.
Definition at line 441 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::enableAirEnergyBalance | ( | ) |
Enable the air energy balance model, which computes the average air temperature and water vapor mole fraction based on the energy balance of the air layer in the canopy.
Calling this version of enableAirEnergyBalance() will compute the canopy height based on a bounding box of all primitives in the Context, or the UUIDs based to evaluateAirEnergyBalance(). It also assumes that the reference height for ambient air temperature, humidity, and wind speed is at the canopy top. This routine sets primitive data 'air_temperature' and 'air_humidity' to the average air temperature and humidity in the canopy for all primitives.
Definition at line 457 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::enableAirEnergyBalance | ( | float | canopy_height_m, |
float | reference_height_m | ||
) |
Enable the air energy balance model, which computes the average air temperature and water vapor mole fraction based on the energy balance of the air layer in the canopy.
This routine sets primitive data 'air_temperature' and 'air_humidity' to the average air temperature and humidity in the canopy for all primitives.
[in] | canopy_height_m | Height of the canopy in meters. |
[in] | reference_height_m | Height at which the ambient air temperature, humidity, and wind speed are measured in meters. |
Definition at line 461 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::enableMessages | ( | ) |
Enable standard output from this plug-in (default)
Definition at line 437 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::evaluateAirEnergyBalance | ( | const std::vector< uint > & | UUIDs, |
float | dt_sec, | ||
float | time_advance_sec | ||
) |
Advance the air energy balance over time for primitives specified by UUIDs.
[in] | UUIDs | Universal unique identifiers for primitives that should be included in the air energy balance calculations. |
[in] | dt_sec | Time step in seconds. |
[in] | time_advance_sec | Total time to advance the model in seconds (T must be greater than or equal to dt). |
Definition at line 89 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::evaluateAirEnergyBalance | ( | float | dt_sec, |
float | time_advance_sec | ||
) |
Advance the air energy balance over time for all primitives in the Context.
[in] | dt_sec | Time step in seconds. |
[in] | time_advance_sec | Total time to advance the model in seconds (T must be greater than or equal to dt). |
Definition at line 85 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::optionalOutputPrimitiveData | ( | const char * | label | ) |
Add optional output primitive data values to the Context.
[in] | label | Name of primitive data (e.g., vapor_pressure_deficit) |
Definition at line 474 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::printDefaultValueReport | ( | ) | const |
Print a report detailing usage of default input values for all primitives in the Context.
Definition at line 483 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::printDefaultValueReport | ( | const std::vector< uint > & | UUIDs | ) | const |
Print a report detailing usage of default input values based on a subset of primitive UUIDs.
[in] | UUIDs | Universal unique identifiers for report |
Definition at line 487 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::run | ( | void | ) |
Function to run the energy balance model for all primitives in the Context.
Definition at line 53 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::run | ( | const std::vector< uint > & | UUIDs | ) |
Function to run the energy balance model for a select set of primitives.
[in] | UUIDs | Unique universal identifiers (UUIDs) for primitives that should be included in energy balance calculations. All other primitives will be skipped by the model. |
Definition at line 61 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::run | ( | const std::vector< uint > & | UUIDs, |
float | dt | ||
) |
Function to run the energy balance model for a select set of primitives for one timestep of length "dt" seconds.
[in] | UUIDs | Unique universal identifiers (UUIDs) for primitives that should be included in energy balance calculations. All other primitives will be skipped by the model. |
[in] | dt | Time step in seconds. |
Definition at line 66 of file EnergyBalanceModel.cpp.
void EnergyBalanceModel::run | ( | float | dt | ) |
Function to run the dynamic /non steady state energy balance model for one timestep of length "dt" seconds.
[in] | dt | Time step in seconds. |
Definition at line 57 of file EnergyBalanceModel.cpp.
|
static |
Self-test.
Definition at line 351 of file selfTest.cpp.