clLogisticGrowth Class Reference

Increments growth according to a logistic equation. More...

#include <LogisticGrowth.h>

Inheritance diagram for clLogisticGrowth:

clGrowthBase clBehaviorBase clWorkerBase

List of all members.

Public Member Functions

 clLogisticGrowth (clSimManager *p_oSimManager)
 Constructor.
 ~clLogisticGrowth ()
 Destructor.
float CalcHeightGrowthValue (clTree *p_oTree, clTreePopulation *p_oPop, float fDiameterGrowth)
 Calculates the amount of height growth increase for a particular tree using the logistic 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 logistic 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 logistic growth function.

Protected Attributes

float * mp_fAsympGrowthAtFullLight
 Asymptotic growth at full light - a - sized number of behavior species.
float * mp_fShape1
 Shape parameter 1 - b - sized number of behavior species.
float * mp_fShape2
 Shape parameter 2 - c - sized number of behavior species.
short int * mp_iIndexes
 For accessing the other arrays.
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 logistic 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/(1 + e(b - c * GLI))
where

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

Copyright 2004 Charles D. Canham.

Author:
Lora E. Murphy

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

Constructor & Destructor Documentation

clLogisticGrowth::clLogisticGrowth ( clSimManager p_oSimManager  ) 

Constructor.

Sets the namestring.

clLogisticGrowth::~clLogisticGrowth (  ) 

Destructor.

Frees memory.


Member Function Documentation

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

Calculates the amount of height growth increase for a particular tree using the logistic 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 clLogisticGrowth::CalcDiameterGrowthValue ( clTree p_oTree,
clTreePopulation p_oPop,
float  fHeightGrowth 
) [inline, virtual]

Calculates the amount of diameter growth increase for a particular tree using the logistic 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.

void clLogisticGrowth::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 clLogisticGrowth::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.

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

Calculates the value of the logistic 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 logistic growth function. Units depend on the type of growth that this is.


Member Data Documentation

Asymptotic growth at full light - a - sized number of behavior species.

float* clLogisticGrowth::mp_fShape1 [protected]

Shape parameter 1 - b - sized number of behavior species.

float* clLogisticGrowth::mp_fShape2 [protected]

Shape parameter 2 - c - sized number of behavior species.

short int* clLogisticGrowth::mp_iIndexes [protected]

For accessing the other arrays.

Conversion factor to translate the results of the function to the appropriate units per timestep, depending on the type of growth behavior this is.


The documentation for this class was generated from the following file:

Generated on Wed Oct 28 13:58:46 2009 for SORTIE Core C++ Documentation by  doxygen 1.5.6