The BioCro C++ Library
standardBML Namespace Reference

This is the standard BioCro module library; it includes the essential modules used in typical BioCro crop growth simulations. More...

Classes

class  aba_decay
 
class  ball_berry
 Uses ball_berry_gs() to evaluate the Ball-Berry model for stomatal conductance. More...
 
class  biomass_leaf_n_limitation
 
class  broyden_test
 
class  buck_swvp
 Determines the saturation water vapor pressure of atmospheric air using the saturation_vapor_pressure() function, which implements the Arden Buck equation. More...
 
class  bucket_soil_drainage
 
class  c3_assimilation
 Calculates net assimilation, stomatal conductance, and intercellular CO2 concentration for a C3 leaf using c3photoC(). More...
 
class  c3_canopy
 
class  c3_leaf_photosynthesis
 Uses the method from c3CanAC() to calculate leaf photosynthesis parameters for C3 plants. More...
 
class  c3_parameters
 Uses c3_temperature_response() to calculate the values of key C3 photosynthesis parameters at leaf temperature. More...
 
class  c4_assimilation
 Calculates net assimilation, stomatal conductance, and intercellular CO2 concentration for a C4 leaf using c4photoC(). More...
 
class  c4_canopy
 
class  c4_leaf_photosynthesis
 Uses the method from CanAC() to calculate leaf photosynthesis parameters for C4 plants. More...
 
class  canopy_gbw_thornley
 Calculates the boundary layer conductance using the canopy_boundary_layer_conductance_thornley() function. More...
 
class  carbon_assimilation_to_biomass
 Converts the canopy assimilation rate from a flux of CO2 molecules to a rate of dry biomass accumulation. More...
 
class  cumulative_carbon_dynamics
 Enables calculations of cumulative carbon dynamics. More...
 
class  cumulative_water_dynamics
 Enables calculations of cumulative water dynamics. More...
 
class  daylength_calculator
 Computes day_length using a model described by Forsythe et al. (1995). More...
 
class  development_index
 Calculates the development index (DVI) corresponding to plant growth rate. More...
 
class  development_index_from_thermal_time
 Calculates the development index from the thermal time. More...
 
class  example_model_mass_gain
 An example for the BioCro II manuscript. More...
 
class  example_model_partitioning
 An example for the BioCro II manuscript. More...
 
class  fake_solar
 Class created by EBL for testing and experimentation ... not meant for real simulations! More...
 
struct  fixed_point_test_function
 
class  format_time
 Converts time (expressed as the number of hours since midnight on January 1) to day of year (doy) and hour values. More...
 
class  FvCB
 Uses FvCB_assim() to evaluate the Farquhar-von-Caemmerer-Berry model for C3 photosynthesis. More...
 
class  golden_ratio_hyperbola
 Represents a simple hyperbola defined by f(x) = 1 + 1 / x. Intended to be used as a simple test case for simultaneous eqation solvers. The solution to f(x) = x is x = (1 + sqrt(5))/2, the "golden ratio.". More...
 
class  grimm_soybean_flowering
 Model for soybean development and flowering based on Grimm et al. (1993). More...
 
class  grimm_soybean_flowering_calculator
 Model for soybean development and flowering based on Grimm et al. (1993) More...
 
class  harmonic_energy
 
class  harmonic_oscillator
 
class  height_from_lai
 Estimates the canopy height as being proportional to LAI. More...
 
class  hyperbola_2d
 Represents two 2D hyperbolas defined by f(x,y) = 1 + 1 / (x + y) and g(x,y) = 1 + 1 / (2x - y). Intended to be used as a simple test case for simultaneous equation solvers. One solution to f(x,y) = x, g(x,y) = y exists at x = -1.126529, y = 0.656279 (determined numerically). More...
 
class  incident_shortwave_from_ground_par
 Uses a value for total PAR flux density measured at the Earth's surface to calculate the total light flux density in the direct beam and as diffuse radiation in both the PAR and NIR bands. More...
 
class  leaf_evapotranspiration
 Uses leaf_energy_balance() to determine transpiration rate and leaf temperature. More...
 
class  leaf_evapotranspiration_check
 Uses check_leaf_temp() to calculate a temperature difference. More...
 
class  leaf_gbw_campbell
 Calculates the boundary layer conductance using the leaf_boundary_layer_conductance_campbell() function. More...
 
class  leaf_gbw_nikolov
 Calculates the boundary layer conductance using the leaf_boundary_layer_conductance_nikolov() function. More...
 
class  leaf_shape_factor
 Determines the leaf shape factor k from the solar zenith angle and the leaf shape chi_l (expressed as the ratio between horizontal and vertical leaf elements, where chi = 0, 1, and infinity for horizontal, spherical, and vertical leaf distributions, respectively). More...
 
class  leaf_water_stress_exponential
 
class  light_from_solar
 
class  linear_vmax_from_leaf_n
 
class  litter_cover
 Estimates the fraction of ground covered by leaf litter. More...
 
class  magic_clock
 
class  maintenance_respiration
 Includes maintenance respiration losses in the rate of change of each organ biomass. More...
 
class  maintenance_respiration_calculator
 Calculates the rate of change in plant organ biomasses due to maintenance respiration; these are referred to as "maintenance respiration rates," and the associated quantity names end with _mr_rate. More...
 
class  Module_1
 
class  Module_2
 
class  Module_3
 
class  module_library
 
class  multilayer_canopy_integrator
 Calculates canopy-level values for assimilation and other quantities by adding the individual values from the sunlit and shaded leaves in each canopy layer, weighted by the relative fractions of sunlit and shaded leaves in each layer. More...
 
class  multilayer_canopy_photosynthesis
 Applies a leaf photosynthesis module to each layer and leaf class of a multilayer canopy. More...
 
class  multilayer_canopy_properties
 Calculates environmental properties for sunlit and shaded leaves in each layer of a multilayer canopy, mostly using functions found in AuxBioCro.cpp. More...
 
class  night_and_day_trackers
 
class  nr_ex
 
class  one_layer_soil_profile
 
class  one_layer_soil_profile_derivatives
 
class  oscillator_clock_calculator
 
class  parameter_calculator
 
class  partitioning_coefficient_logistic
 Calculates carbon partitioning coefficients based on logistic-based functions and development index using the logistic-based functions from Osborne et al 2015. More...
 
class  partitioning_coefficient_selector
 
class  partitioning_growth
 This module determines the growth rate for several plant organs from the net rate of carbon assimilation due to photosynthesis (determined by a "partitioning growth calculator" module) and any additional carbon that may come from retranslocation. More...
 
class  partitioning_growth_calculator
 Uses a set of partitioning coefficients to determine net assimilation rates due to photosynthesis and respiration for several plant organs. More...
 
class  partitioning_growth_calculator_leaf_costs
 Uses a set of partitioning coefficients to determine net assimilation rates due to photosynthesis and respiration for several plant organs. More...
 
class  penman_monteith_leaf_temperature
 
class  penman_monteith_transpiration
 
class  phase_clock
 
class  poincare_clock
 
class  priestley_transpiration
 
class  rasmussen_specific_heat
 Determines the specific heat capacity of atmospheric air at constant pressure using the rasmussen_specific_heat_of_air() function. More...
 
class  rh_to_mole_fraction
 Converts atmospheric relative humidity into a water vapor concentration expressed as a dimensionless mole fraction. More...
 
class  root_onedim_test
 Function object for Kepler's equation. Kepler's equation relates the mean anomaly \(y\) to the eccentric anomaly \(x\) of an elliptical orbit of eccentricity \(\varepsilon\). More...
 
struct  root_test_function
 Function object for Kepler's equation. Kepler's equation relates the mean anomaly \(y\) to the eccentric anomaly \(x\) of an elliptical orbit of eccentricity \(\varepsilon\). More...
 
class  rue_leaf_photosynthesis
 Calculates leaf photosynthesis parameters using a simple radiation use efficiency (RUE) model where net CO2 assimilation is assumed to be directly proportional to the incident photosynthetically active photon flux density (PPFD). More...
 
class  senescence_coefficient_logistic
 Calculates coefficients representing fraction of biomass senesced for each organ; coefficents are represented as a logistic functions depending on development index. More...
 
class  senescence_logistic
 Calculates the change in plant organ biomasses due to senescence. More...
 
class  shortwave_atmospheric_scattering
 Uses lightME() to calculate the amount of sunlight scattered out of the direct beam by the atmosphere. More...
 
class  sla_linear
 Calculates the specific leaf area as a linear function of thermal time. More...
 
class  sla_logistic
 Calculates the specific leaf area as a logistic function of thermal time. More...
 
class  soil_evaporation
 
class  soil_sunlight
 Determines the fraction of ground area under the canopy exposed to direct sunlight. More...
 
class  solar_position_michalsky
 Calculates the solar position using the model described in Michalsky, J. J. "The Astronomical Almanac's algorithm for approximate solar position (1950–2050)" Solar Energy 40, 227–235 (1988) More...
 
class  song_flowering
 
class  soybean_development_rate_calculator
 Determines hourly soybean developments rate using photothermal functions. More...
 
class  stefan_boltzmann_longwave
 
class  stomata_water_stress_exponential
 
class  stomata_water_stress_linear
 
class  stomata_water_stress_linear_and_aba_response
 
class  stomata_water_stress_sigmoid
 
class  ten_layer_c3_canopy
 Represents a ten layer canopy where leaf-level photosynthesis is calculated using the Farquhar-von-Cammerer-Berry model for C3 photosynthesis; see the c3_leaf_photosynthesis class for more information about this model. More...
 
class  ten_layer_c4_canopy
 Represents a ten layer canopy where leaf-level photosynthesis is calculated using the Collatz et al. model for C4 photosynthesis; see the c4_leaf_photosynthesis class for more information about this model. More...
 
class  ten_layer_canopy_integrator
 A child class of multilayer_canopy_integrator where the number of layers has been defined. Instances of this class can be created using the module factory, unlike the parent class multilayer_canopy_integrator. More...
 
class  ten_layer_canopy_properties
 A child class of multilayer_canopy_properties where the number of layers has been defined. Instances of this class can be created using the module factory, unlike the parent class multilayer_canopy_properties. More...
 
class  ten_layer_rue_canopy
 Represents a ten layer canopy where leaf-level photosynthesis is calculated using a simple radiation use efficiency (RUE) model; see the rue_leaf_photosynthesis class for more information about this model. More...
 
class  thermal_time_and_frost_senescence
 Determines senescence rates for several plant organs based on thermal time thresholds, the occurrence of frost, and magical time travel; only compatible with a fixed-step Euler solver. More...
 
class  thermal_time_beta
 Calculates the rate of thermal time accumulation using a beta distribution function. More...
 
class  thermal_time_bilinear
 Calculates the rate of thermal time accumulation using a bilinear model. More...
 
class  thermal_time_development_rate_calculator
 Calculates hourly plant development rate based on thermal time ranges of emergence, vegetative, and reproductive growth stages. More...
 
class  thermal_time_linear
 Calculates the rate of thermal time accumulation using a linear model. More...
 
class  thermal_time_linear_extended
 Calculates the rate of thermal time accumulation using an extended linear model. More...
 
class  thermal_time_senescence
 Determines senescence rates for several plant organs based on thermal time thresholds and magical time travel; only compatible with a fixed-step Euler solver. More...
 
class  thermal_time_trilinear
 Calculates the rate of thermal time accumulation using a trilinear model. More...
 
class  total_biomass
 Calculates the total intact and senesced biomass and returns them as 'total_intact_biomass' and 'total_litter_biomass', respectively. More...
 
class  total_growth_and_maintenance_respiration
 Calculates the total growth and maintenance respiration and returns them as 'total_growth_respiration' and 'total_maintenance_respiration', respectively. More...
 
class  two_layer_soil_profile
 
class  varying_Jmax25
 Allows Jmax_at_25 to vary based on development index. More...
 
class  water_vapor_properties_from_air_temperature
 

Typedefs

using ten_layer_c3_canopy_parent = multilayer_canopy_photosynthesis< ten_layer_canopy_properties, c3_leaf_photosynthesis >
 
using ten_layer_c4_canopy_parent = multilayer_canopy_photosynthesis< ten_layer_canopy_properties, c4_leaf_photosynthesis >
 
using ten_layer_rue_canopy_parent = multilayer_canopy_photosynthesis< ten_layer_canopy_properties, rue_leaf_photosynthesis >
 

Functions

std::array< double, 2 > test_function (const std::array< double, 2 > &x)
 
double range_adjusted_atan2 (double y, double x)
 
double strength_term (double const alpha, double const beta, double const DVI)
 
double ksene (double rate, double alpha, double beta, double DVI)
 
double photoFunc (double P, double Popt, double Pcrit)
 
double tempFunc (double T, double Tmin, double Topt, double Tmax)
 

Detailed Description

This is the standard BioCro module library; it includes the essential modules used in typical BioCro crop growth simulations.

Typedef Documentation

◆ ten_layer_c3_canopy_parent

◆ ten_layer_c4_canopy_parent

◆ ten_layer_rue_canopy_parent

Function Documentation

◆ ksene()

double ksene ( double  rate,
double  alpha,
double  beta,
double  DVI 
)

Definition at line 154 of file senescence_coefficient_logistic.h.

◆ photoFunc()

double photoFunc ( double  P,
double  Popt,
double  Pcrit 
)

Definition at line 240 of file soybean_development_rate_calculator.h.

◆ range_adjusted_atan2()

double range_adjusted_atan2 ( double  y,
double  x 
)
inline

This is like atan2 but with a range of [0, 2pi) instead of (-pi, pi]: When the point (x, y) is in the third or fourth quadrant (i.e., when y < 0), add 2pi to the value in (-pi, 0) returned by atan2 so that dawn_phase is always in the interval [0, 2pi).

Definition at line 122 of file oscillator_clock_calculator.h.

◆ strength_term()

double strength_term ( double const  alpha,
double const  beta,
double const  DVI 
)

Definition at line 215 of file partitioning_coefficient_logistic.h.

◆ tempFunc()

double tempFunc ( double  T,
double  Tmin,
double  Topt,
double  Tmax 
)

Definition at line 222 of file soybean_development_rate_calculator.h.

◆ test_function()

std::array< double, 2 > test_function ( const std::array< double, 2 > &  x)

Definition at line 13 of file broyden_test.h.