clRelativeGrowth Class Reference

Relative growth - Version 1.1. More...

#include <RelativeGrowth.h>

Inheritance diagram for clRelativeGrowth:

clMichMenBase clGrowthBase clBehaviorBase clWorkerBase List of all members.

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.
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_fDiamExp
 Diameter exponent - array size is number of species.
float m_fNumberYearsPerTimestep
 Number of years per timestep - from sim manager.

Detailed Description

Relative growth - Version 1.1.

This is a growth shell object which applies the Michaelis-Menton function to find relative growth.

The growth equation is:

Y = (A * gli) / ((A/S) + gli)
where Y is the relative annual radial growth, A is asymptotic diameter growth, gli is the amount of light, and S is the slope of growth response.

The actual amount of new growth is:

G = ((Y + 1)T - 1) * diamQ
where Y is from the equation above, T is the number of years per timestep, diam is the tree's diameter, and Q is the diameter exponent.

(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.)

The 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", "relba", and "relunlim", representing relative growth limited by constant radial increment, relative growth limited by constant basal area increment, and unlimited relative growth, respectively.

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.

Author:
Lora E. Murphy

Edit history:
-----------------
April 28, 2004 - Submitted as beta (LEM)
October 26, 2005 - Added diameter exponent and updated version to 1.1


Constructor & Destructor Documentation

clRelativeGrowth::clRelativeGrowth ( clSimManager p_oSimManager  ) 

Constructor.

Sets the namestring.

Parameters:
p_oSimManager Sim Manager object.


Member Function Documentation

float clRelativeGrowth::CalcDiameterGrowthValue ( clTree p_oTree,
clTreePopulation p_oPop,
float  fHeightGrowth 
) [virtual]

Applies growth as described in the equation above.

Parameters:
p_oTree Tree for which to calculate growth.
p_oPop Tree population.
fHeightGrowth Amount of height growth, in m (ignored).
Returns:
Amount of growth increase, 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.

Parameters:
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).

Parameters:
p_oDoc DOM tree of parsed input file.
Exceptions:
modelErr if any species/type combo to which this behavior is applied does not have a light behavior.

Reimplemented from clGrowthBase.


The documentation for this class was generated from the following file:
Generated on Thu May 24 09:30:45 2007 for SORTIE Core C++ Documentation by  doxygen 1.5.2