#include <RelativeGrowth.h>
Public Member Functions | |
clRelativeGrowth (clSimManager *p_oSimManager) | |
Constructor. | |
~clRelativeGrowth () | |
Destructor. | |
float | CalcDiameterGrowthValue (clTree *p_oTree, clTreePopulation *p_oPop, float fHeightGrowth) |
Applies growth as described in the equation above. | |
float | CalcHeightGrowthValue (clTree *p_oTree, clTreePopulation *p_oPop, float fDiameterGrowth) |
Applies growth as described in the equation above. | |
void | SetNameData (char *cNameString) |
Captures the behavior name passed from the parameter file. | |
void | DoShellSetup (xercesc::DOMDocument *p_oDoc) |
Does setup. | |
Protected Attributes | |
float * | mp_fExp |
Diameter or height exponent - array size is number of species. | |
float | m_fNumberYearsPerTimestep |
Number of years per timestep - from sim manager. |
This is a growth shell object which applies the Michaelis-Menton function to find relative growth. It can be used to grow either the diameter or the height. Height and diameter growth are calculated slightly differently; the diameter growth matches the historical method which goes back to Pacala 1996, and the height growth grows the way I think it should be grown.
The growth equation is:
The actual amount of new diameter growth is:
(There are some strangenesses in the math - 1s are added and subtracted at various times and I don't know why. This is based on code I didn't originally write.)
Height growth is:
Diameter growth may be limited to a max of the adult constant area increment or the adult constant radial increment (see clConstantRadialGrowth and clConstantBAGrowth for more on how these increments are calculated and applied).
An object of this class can be created by the strings "relradial" (relative diameter growth limited by constant radial increment), "relba" (relative diameter growth limited by constant basal area increment), "relunlim" (non-limited relative diameter growth), and "relative michaelis-menton height growth" (height growth, always non-limited).
The namestring for this class is "relativegrowthshell". It is probable that there will be more than one object of this class created.
Copyright 2003 Charles D. Canham.
clRelativeGrowth::clRelativeGrowth | ( | clSimManager * | p_oSimManager | ) |
Constructor.
Sets the namestring.
p_oSimManager | Sim Manager object. |
clRelativeGrowth::~clRelativeGrowth | ( | ) |
Destructor.
float clRelativeGrowth::CalcDiameterGrowthValue | ( | clTree * | p_oTree, | |
clTreePopulation * | p_oPop, | |||
float | fHeightGrowth | |||
) | [virtual] |
Applies growth as described in the equation above.
p_oTree | Tree for which to calculate growth. | |
p_oPop | Tree population. | |
fHeightGrowth | Amount of height growth, in m (ignored). |
Reimplemented from clGrowthBase.
float clRelativeGrowth::CalcHeightGrowthValue | ( | clTree * | p_oTree, | |
clTreePopulation * | p_oPop, | |||
float | fDiameterGrowth | |||
) | [virtual] |
Applies growth as described in the equation above.
p_oTree | Tree for which to calculate growth. | |
p_oPop | Tree population object, just in case it's needed. | |
fDiameterGrowth | Amount of diameter growth for this tree, in cm. |
Reimplemented from clGrowthBase.
void clRelativeGrowth::SetNameData | ( | char * | cNameString | ) | [virtual] |
Captures the behavior name passed from the parameter file.
This is useful since this class can produce a few different kinds of behaviors.
cNameString | Behavior name from parameter file. |
Reimplemented from clBehaviorBase.
void clRelativeGrowth::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. |
Reimplemented from clGrowthBase.
float* clRelativeGrowth::mp_fExp [protected] |
Diameter or height exponent - array size is number of species.
float clRelativeGrowth::m_fNumberYearsPerTimestep [protected] |
Number of years per timestep - from sim manager.