clSimpleLinearGrowth Class Reference

Increments growth according to a simple linear equation. More...

#include <SimpleLinearGrowth.h>

Inheritance diagram for clSimpleLinearGrowth:

clGrowthBase clBehaviorBase clWorkerBase List of all members.

Public Member Functions

 clSimpleLinearGrowth (clSimManager *p_oSimManager)
 Constructor.
 ~clSimpleLinearGrowth ()
 Destructor.
float CalcHeightGrowthValue (clTree *p_oTree, clTreePopulation *p_oPop, float fDiameterGrowth)
 Calculates the amount of height growth increase for a particular tree using the simple linear growth equation.
float CalcDiameterGrowthValue (clTree *p_oTree, clTreePopulation *p_oPop, float fHeightGrowth)
 Calculates the amount of diameter growth increase for a particular tree using the simple linear growth equation.
void DoShellSetup (xercesc::DOMDocument *p_oDoc)
 Does the setup for this behavior.
void SetNameData (char *cNameString)
 Captures the namestring passed to this behavior.

Protected Member Functions

float CalculateFunctionValue (clTree *p_oTree)
 Calculates the value of the simple linear growth function.

Protected Attributes

float * mp_fSlope
 Growth slope - b - sized number of species.
float * mp_fIntercept
 Growth intercept - a - sized number of species.
float m_fConversionFactor
 Conversion factor to translate the results of the function to the appropriate units per timestep, depending on the type of growth behavior this is.

Detailed Description

Increments growth according to a simple linear equation.

This can be used to create a growth increment with no automatic height adjustment, a growth increment with automatic height adjustment, or a height increment.

The equation used in this behavior is:

Y = a + b * GLI
where

The name string is "simplelineargrowthshell". In the parameter file: For diameter growth with no automatic height adjustment, call "simple linear growth diam only". For diameter growth with automatic height adjustment, call "simple linear growth". For height growth, call "simple linear growth height only".

Copyright 2004 Charles D. Canham.

Author:
Lora E. Murphy

Edit history:
-----------------
June 10, 2004 - Created (LEM)


Constructor & Destructor Documentation

clSimpleLinearGrowth::clSimpleLinearGrowth ( clSimManager p_oSimManager  ) 

Constructor.

Sets the namestring.

clSimpleLinearGrowth::~clSimpleLinearGrowth (  ) 

Destructor.

Frees memory.


Member Function Documentation

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

Calculates the amount of diameter growth increase for a particular tree using the simple linear growth equation.

Parameters:
p_oTree Tree for which to calculate growth.
p_oPop Tree population object, just in case it's needed.
fHeightGrowth Amount of height growth, in m (ignored).
Returns:
Amount, in cm, by which to increase the tree's diameter.

Reimplemented from clGrowthBase.

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

Calculates the amount of height growth increase for a particular tree using the simple linear growth equation.

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.

float clSimpleLinearGrowth::CalculateFunctionValue ( clTree p_oTree  )  [protected]

Calculates the value of the simple linear growth function.

The meaning of what is returned depends on the type of growth the behavior is doing.

Parameters:
p_oTree Tree for which to calculate growth. This is needed to get the GLI.
Returns:
The value of the simple linear growth function. Units depend on the type of growth that this is.

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

Does the setup for this behavior.

This reads in the parameters from the parameter file, and validates that all species/type combos use light (each must have "Light" registered).

Parameters:
p_oDoc Parsed parameter file.
Exceptions:
modelErr if any species/type combo to which this behavior is applied does not have a light behavior.

Reimplemented from clGrowthBase.

void clSimpleLinearGrowth::SetNameData ( char *  cNameString  )  [virtual]

Captures the namestring passed to this behavior.

This is overridden from clBehaviorBase so we can capture the namestring passed. Since this class can create multiple kinds of behaviors that function differently, this will capture what kind of behavior this is supposed to be.

Parameters:
cNameString Behavior's namestring.

Reimplemented from clBehaviorBase.


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