clGrowthHeightIncrementer Class Reference

Calculates a basic height increment. More...

#include <GrowthHeightIncrementer.h>

Inheritance diagram for clGrowthHeightIncrementer:

clGrowthBase clBehaviorBase clWorkerBase List of all members.

Public Member Functions

 clGrowthHeightIncrementer (clSimManager *p_oSimManager)
 Constructor.
float CalcHeightGrowthValue (clTree *p_oTree, clTreePopulation *p_oPop, float fDiameterGrowth)
 Calculates the amount of height growth increase for a particular tree.
void DoShellSetup (xercesc::DOMDocument *p_oDoc)
 Does the setup for this behavior.

Protected Attributes

clAllometrymp_oAllom
 Pointer to the allometry object.

Detailed Description

Calculates a basic height increment.

The amount of height increment is found by:

inc = f(DIAMa) - f(DIAMb)

where inc is the height increment, f(x) is the height as a function of diameter allometry equation appropriate for the tree type, DIAMa is the tree's diameter before the growth increment is applied, and DIAMb is the tree's diameter after the growth increment is applied. The tree height cannot be greater than the maximum tree height for a species.

If the tree type is seedling, DIAM is diameter at 10 cm. Otherwise, it's DBH. When calculating the height increment, the same allometric equation is used for both, even if the tree would be making a type transition. For example, if the tree is a seedling and the amount of diameter growth is enough to make it into a sapling, the seedling diam10-height relationship is still used for both values.

This behavior cannot be used to calculate a diameter growth increment.

The namestring for this behavior is "height incrementer growthshell". The parameter file call string is "height incrementer".

Copyright 2003 Charles D. Canham.

Author:
Lora E. Murphy

Edit history:
-----------------
May 21, 2004 - Created (LEM)


Constructor & Destructor Documentation

clGrowthHeightIncrementer::clGrowthHeightIncrementer ( clSimManager p_oSimManager  ) 

Constructor.

Sets the namestring.


Member Function Documentation

float clGrowthHeightIncrementer::CalcHeightGrowthValue ( clTree p_oTree,
clTreePopulation p_oPop,
float  fDiameterGrowth 
) [virtual]

Calculates the amount of height growth increase for a particular tree.

The height increment is calculated as the normal allometric height of the DBH before diameter growth is applied minus the normal allometric height of the DBH after diameter growth is applied.

If the tree is a seedling, the diam10 before and after the growth increment is used in the seedling diam10-height allometric equation. If the tree is a sapling, the diam10 before and after the growth increment is converted to a DBH value and that value is used in the sapling DBH-height allometric equation. If the tree is an adult, then DBH before and after the growth increment is used in the adult DBH-height allometric equation.

This doesn't need to compound height by timestep length, since diameter should already take that into account.

Parameters:
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.
Returns:
Amount, in m, by which to increase the tree's height.

Reimplemented from clGrowthBase.

void clGrowthHeightIncrementer::DoShellSetup ( xercesc::DOMDocument *  p_oDoc  )  [virtual]

Does the setup for this behavior.

This queries the tree population for a pointer to the allometry object.

Reimplemented from clGrowthBase.


The documentation for this class was generated from the following file:
Generated on Wed Nov 29 08:42:21 2006 for SORTIE Core C++ Documentation by  doxygen 1.4.7