clLogBiLevelGrowth Class Reference

Increments height growth according to a lognormal equation, with the possibility of two sets of parameters for each species. More...

#include <LogBiLevelGrowth.h>

Inheritance diagram for clLogBiLevelGrowth:

clGrowthBase clBehaviorBase clWorkerBase List of all members.

Public Member Functions

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

Protected Attributes

clGridBasemp_oStormLight
 "Storm Light" grid object
float * mp_fLoLightMaxGrowth
 Max growth, in m, in low light - sized number of behavior species.
float * mp_fLoLightX0
 X0 in low light - sized number of behavior species.
float * mp_fLoLightXb
 Xb in low light - sized number of behavior species.
float * mp_fHiLightMaxGrowth
 Max growth, in m, in high light - sized number of behavior species.
float * mp_fHiLightX0
 X0 in high light - sized number of behavior species.
float * mp_fHiLightXb
 Xb in high light - sized number of behavior species.
float * mp_fHiLightThreshold
 Threshold between low light and high light growth, as a value between 0 and 100 - sized number of behavior species.
int * mp_iIndexes
 To help access the other arrays.
float m_fYearsPerTimestep
 Conversion factor to translate the results of the function to the appropriate units per timestep.
int m_iLightCode
 Code for the "Light" data member of the "Storm Light" grid.

Detailed Description

Increments height growth according to a lognormal equation, with the possibility of two sets of parameters for each species.

The two sets of parameters can be used for two different growth rates at high and low light. This behavior can only be used to create a height growth increment.

The equation used in this behavior is:

Y = MG * exp(0.5 * (ln(H/X0)/Xb)2)
where

This behavior can also take into account light levels coming from the "Storm Light" grid object produced by clStormLight. This behavior can use two different sets of parameter values - one at low light and one at high light. The user sets the threshold between the two. The equation remains the same.

The name string is "logbilevelgrowthshell". The parameter file call string is "log bilevel growth height only".

Copyright 2005 Charles D. Canham.

Author:
Lora E. Murphy

Edit history:
-----------------
May 9, 2005 - Created (LEM)


Constructor & Destructor Documentation

clLogBiLevelGrowth::clLogBiLevelGrowth ( clSimManager p_oSimManager  ) 

Constructor.

Sets the namestring.

clLogBiLevelGrowth::~clLogBiLevelGrowth (  ) 

Destructor.

Frees memory.


Member Function Documentation

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

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

If the light grid is present, this retrieves the light level in the tree's grid cell. If it is above the threshold, the high-light parameters are used. If it is below the threshold, the low-light parameters are used. If the light grid is not present, the low-light parameters are used.

Parameters:
p_oTree Tree for which to calculate growth.
p_oPop Tree population object, just in case it's needed.
fDiameterGrowth Diameter growth, in cm.
Returns:
Amount, in m, by which to increase the tree's height.

Reimplemented from clGrowthBase.

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

Does the setup for this behavior.

This reads in the parameters from the parameter file, and retrieves the "Storm Light" grid if present.

Parameters:
p_oDoc Parsed parameter file.
Exceptions:
modelErr if:
  • the high-light growth threshold is not between 0 and 100
  • a value for an Xb is 0
  • a value for an X0 is 0
  • a value for max growth is less than 0

Reimplemented from clGrowthBase.


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