#include <MichMenGrowthBase.h>
Public Member Functions | |
clMichMenBase (clSimManager *p_oSimManager) | |
Constructor. | |
virtual | ~clMichMenBase () |
Destructor. | |
Protected Member Functions | |
void | GetParameterFileData (xercesc::DOMDocument *p_oDoc) |
Extracts growth parameters. | |
float | CalculateMichaelisMentonDiam (short int &iSpecies, float &fGli) |
Calculates the result of the Michaelis-Menton function using diameter growth parameters. | |
float | CalculateMichaelisMentonHeight (short int &iSpecies, float &fGli) |
Calculates the result of the Michaelis-Menton function using height growth parameters. | |
float | ApplyGrowthLimits (const short int &iSpecies, const float &fAmountDiamIncrease, const float &fDiam) |
Applies applicable growth limits according to the flags set. | |
float | GetGrowthMemberValue (clTree *p_oTree, float fDiameterGrowth) |
Gets the proper value for the "Growth" data member for mortality calculations based on growth. | |
Protected Attributes | |
float * | mp_fSlopeDiamGrowthResponse |
Slope of diameter growth response. | |
float * | mp_fSlopeHeightGrowthResponse |
Slope of height growth response. | |
float * | mp_fAdultConstBAInc |
Adult constant basal area increment in cm2/timestep (parameter file value is expected in cm2/yr). | |
float * | mp_fAdultConstRadInc |
Adult constant radial increment in cm/timestep (parameter file value is expected in mm/yr). | |
float * | mp_fAsympDiamGrowth |
Asymptotic diameter growth. | |
float * | mp_fAsympHeightGrowth |
Asymptotic height growth. | |
bool | m_bConstRadialLimited |
Whether or not growth is limited to constant radial increment. | |
bool | m_bConstBasalAreaLimited |
Whether or not growth is limited to constant basal area increment. |
This is the base class for growth behavior shell classes which use the Michaelis-Menton function for growth. The variables held in common across classes are static here.
Copyright 2003 Charles D. Canham.
clMichMenBase::clMichMenBase | ( | clSimManager * | p_oSimManager | ) |
Constructor.
p_oSimManager | Sim Manager object. |
virtual clMichMenBase::~clMichMenBase | ( | ) | [virtual] |
Destructor.
Deletes the static arrays if they haven't already been deleted.
void clMichMenBase::GetParameterFileData | ( | xercesc::DOMDocument * | p_oDoc | ) | [protected] |
Extracts growth parameters.
This should be called in child DoShellSetup() functions. If a child behavior wants a particular array filled, simply declare it; all non-needed arrays can be left NULL. Only those species to which a child behavior apply will be filled.
p_oDoc | DOM tree of parsed input file. |
float clMichMenBase::CalculateMichaelisMentonDiam | ( | short int & | iSpecies, | |
float & | fGli | |||
) | [inline, protected] |
Calculates the result of the Michaelis-Menton function using diameter growth parameters.
iSpecies | Species number | |
fGli | GLI value as a percentage between 0 and 100 |
float clMichMenBase::CalculateMichaelisMentonHeight | ( | short int & | iSpecies, | |
float & | fGli | |||
) | [inline, protected] |
Calculates the result of the Michaelis-Menton function using height growth parameters.
iSpecies | Species number | |
fGli | GLI value as a percentage between 0 and 100 |
float clMichMenBase::ApplyGrowthLimits | ( | const short int & | iSpecies, | |
const float & | fAmountDiamIncrease, | |||
const float & | fDiam | |||
) | [protected] |
Applies applicable growth limits according to the flags set.
If a flag is set and the growth passed is higher than the applicable limit, the limit is returned instead; otherwise, the growth is returned.
If m_bConstRadialLimited is set to true, the limit is the value in mp_fAdultConstRadInc for that species. If m_bConstBasalAreaLimited is set to true, then the limit is the value in mp_fAdultConstBAInc divided by the tree's diameter (recall that mp_fAdultConstBAInc is in squared units).
iSpecies | Species number | |
fAmountDiamIncrease | Amount of diameter increase in cm/timestep | |
fDiam | Tree diameter in cm |
float clMichMenBase::GetGrowthMemberValue | ( | clTree * | p_oTree, | |
float | fDiameterGrowth | |||
) | [protected, virtual] |
Gets the proper value for the "Growth" data member for mortality calculations based on growth.
In order to keep old slow growers from dying, if the tree's DBH is greater than 30 cm and its GLI is greater than 10, the return value is 10. Otherwise, the tree's amount of annual diameter increase is returned.
p_oTree | Tree to get "Growth" for. | |
fDiameterGrowth | Amount of diameter growth to be added. |
Reimplemented from clGrowthBase.
float* clMichMenBase::mp_fSlopeDiamGrowthResponse [protected] |
Slope of diameter growth response.
Array size is number of species. Old parameter g2.
float* clMichMenBase::mp_fSlopeHeightGrowthResponse [protected] |
Slope of height growth response.
Array size is number of species.
float* clMichMenBase::mp_fAdultConstBAInc [protected] |
Adult constant basal area increment in cm2/timestep (parameter file value is expected in cm2/yr).
Array size is number of species.
float* clMichMenBase::mp_fAdultConstRadInc [protected] |
Adult constant radial increment in cm/timestep (parameter file value is expected in mm/yr).
Old parameter g4. Array size is number of species.
float* clMichMenBase::mp_fAsympDiamGrowth [protected] |
Asymptotic diameter growth.
Old parameter g1. Array size is number of species.
float* clMichMenBase::mp_fAsympHeightGrowth [protected] |
Asymptotic height growth.
Old parameter g1. Array size is number of species.
bool clMichMenBase::m_bConstRadialLimited [protected] |
Whether or not growth is limited to constant radial increment.
bool clMichMenBase::m_bConstBasalAreaLimited [protected] |
Whether or not growth is limited to constant basal area increment.