#include <MichMenNegGrowth.h>
Public Member Functions | |
clMichMenNegGrowth (clSimManager *p_oSimManager) | |
Constructor. | |
~clMichMenNegGrowth () | |
Destructor. | |
float | CalcHeightGrowthValue (clTree *p_oTree, clTreePopulation *p_oPop, float fDiameterGrowth) |
Calculates the amount of height growth increase for a particular tree using the growth equation described ablove. | |
void | DoShellSetup (xercesc::DOMDocument *p_oDoc) |
Does setup. | |
void | RegisterTreeDataMembers () |
Registers the float data member and captures the return codes. | |
Protected Attributes | |
float * | mp_fAlpha |
alpha - sized number of behavior species | |
float * | mp_fBeta |
beta - sized number of behavior species | |
float * | mp_fPhi |
phi - sized number of behavior species | |
float * | mp_fGamma |
gamma - sized number of behavior species | |
float * | mp_fStdDev |
standard deviation of growth stochasticity in cm/year | |
float * | mp_fProbAutoCorr |
one year probability of autocorrelation | |
int * | mp_iIndexes |
To help access the other arrays. | |
short int ** | mp_iAutoCorrCodes |
Return codes for the "autocorr" tree float data member variable. | |
float | m_fYearsPerTimestep |
Conversion factor to translate the results of the function to the appropriate units per timestep. |
This behavior can only be used to create a height growth increment.
The equation used in this behavior is:
This is looped over the number of years per timestep, allowing H to increment at each intermediate year.
Growth has a stochastic component. The user provides a standard deviation for a normal distribution of mean zero and a draw on this distribution is added to the growth for each year. Growth can also be autocorrelated. Each species has a probability of autocorrelation from year to year and if a random draw triggers autocorrelation, the next year gets the same random additional growth factor as the previous year. This may mean multiple random draws per timestep in a multiyear timestep.
All trees must have the "Light" data member registered (i.e. must have a light behavior applied).
The name string is "michmenneggrowthshell". The parameter file call string is "Michaelis Menten negative growth height only". This creates a growth data member called "autocorr".
Copyright 2008 Charles D. Canham.
clMichMenNegGrowth::clMichMenNegGrowth | ( | clSimManager * | p_oSimManager | ) |
Constructor.
Sets the namestring.
clMichMenNegGrowth::~clMichMenNegGrowth | ( | ) |
Destructor.
Frees memory.
float clMichMenNegGrowth::CalcHeightGrowthValue | ( | clTree * | p_oTree, | |
clTreePopulation * | p_oPop, | |||
float | fDiameterGrowth | |||
) | [virtual] |
Calculates the amount of height growth increase for a particular tree using the growth equation described ablove.
p_oTree | Tree for which to calculate growth. | |
p_oPop | Tree population object, just in case it's needed. | |
fDiameterGrowth | Diameter growth, in cm. |
Reimplemented from clGrowthBase.
void clMichMenNegGrowth::DoShellSetup | ( | xercesc::DOMDocument * | p_oDoc | ) | [virtual] |
Does setup.
Reads in values from the parameter file, and validates that all species/type combos use light (each must have "Light" registered).
p_oDoc | DOM tree of parsed input file. |
modelErr | if any species/type combo to which this behavior is applied does not have a light behavior, or if beta = 0. |
Reimplemented from clGrowthBase.
void clMichMenNegGrowth::RegisterTreeDataMembers | ( | ) | [virtual] |
float* clMichMenNegGrowth::mp_fAlpha [protected] |
alpha - sized number of behavior species
float* clMichMenNegGrowth::mp_fBeta [protected] |
beta - sized number of behavior species
float* clMichMenNegGrowth::mp_fPhi [protected] |
phi - sized number of behavior species
float* clMichMenNegGrowth::mp_fGamma [protected] |
gamma - sized number of behavior species
float* clMichMenNegGrowth::mp_fStdDev [protected] |
standard deviation of growth stochasticity in cm/year
float* clMichMenNegGrowth::mp_fProbAutoCorr [protected] |
one year probability of autocorrelation
int* clMichMenNegGrowth::mp_iIndexes [protected] |
To help access the other arrays.
short int** clMichMenNegGrowth::mp_iAutoCorrCodes [protected] |
Return codes for the "autocorr" tree float data member variable.
Array of behavior species by type (even if not every type is represented).
float clMichMenNegGrowth::m_fYearsPerTimestep [protected] |
Conversion factor to translate the results of the function to the appropriate units per timestep.