#include <NCIGrowth.h>
Inheritance diagram for clNciGrowth:
Public Member Functions | |
clNciGrowth (clSimManager *p_oSimManager) | |
Constructor. | |
~clNciGrowth () | |
Destructor. | |
float | CalcDiameterGrowthValue (clTree *p_oTree, clTreePopulation *p_oPop, float fHeightGrowth) |
Returns the value in the tree's float data member that holds the value that was calculated by PreGrowthCalcs(). | |
void | PreGrowthCalcs (clTreePopulation *p_oPop) |
Calculates growth for all NCI trees. | |
void | DoShellSetup (xercesc::DOMDocument *p_oDoc) |
Does setup. | |
void | SetNameData (char *cNameString) |
Captures the namestring passed to this behavior. | |
Protected Member Functions | |
void | ValidateData () |
Makes sure all input data is valid. | |
void | GetTreeMemberCodes () |
Gets the return codes for needed tree data members. | |
void | ReadParameterFile (xercesc::DOMDocument *p_oDoc) |
Reads data from the parameter file. | |
void | AssembleUniqueTypes () |
Assembles a unique list of types applied to this behavior and places it in mp_iWhatBehaviorTypes. | |
Protected Attributes | |
short int ** | mp_iGrowthCodes |
Holds return data codes for the "Growth" tree data member. | |
short int * | mp_iWhatBehaviorTypes |
List of types managed by this behavior. | |
short int | m_iNumBehaviorTypes |
Number of types managed by this behavior. |
This is a growth shell object which applies the NCI (neighborhood competition index) function as it is defined in clNCIBase.
The amount of growth is in cm/year. For multi-year timesteps, the behavior will calculate total growth with a loop. Each loop iteration will increment DBH for one year. For each year, the Size Effect (SE) value and the DBHγ portion of the Crowding Effect is recalculated with the previous year’s new DBH value. All values for each year of growth are summed to get the growth for the timestep.
This is a generic behavior. It is expected that not all terms in the growth equation will be used. A user can turn off some of the terms by setting key parameters to 0 or 1. To be efficient, this behavior looks for this and has several alternate function forms to avoid extra math. It calls the correct function form through function pointers, which it sets during setup.
If any damage effect parameters are used, this behavior must be combined with the storm damage behaviors. If the shading effect is used, some light behavior must be used (and it really should be clSailLight, but this isn't enforced).
This cannot be applied to seedlings. An error will be thrown if seedlings are passed.
The parameter file call string for this to be diameter-incrementing with auto-height updating is "ncigrowth"; for diameter-only incrementing, use "ncigrowth diam only". The namestring for this behavior is "ncigrowthshell".
Copyright 2003 Charles D. Canham.
|
Constructor.
|
|
Returns the value in the tree's float data member that holds the value that was calculated by PreGrowthCalcs().
Reimplemented from clGrowthBase. |
|
Does setup.
Reimplemented from clGrowthBase. |
|
Gets the return codes for needed tree data members. If storm damage is used (any of the storm damage parameters are != 1), this declares and populates the mp_iDamageCodes array with the return codes for the "stm_dmg" tree int data member.
|
|
Calculates growth for all NCI trees. The values are stashed in the "Growth" tree float data member for later application. Steps:
Growth per timestep is calculated by looping over the number of years per timestep and incrementing the DBH.
Reimplemented from clGrowthBase. |
|
Reads data from the parameter file.
|
|
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.
Reimplemented from clBehaviorBase. |
|
Makes sure all input data is valid. The following must all be true:
|
|
Holds return data codes for the "Growth" tree data member. Array size is number of species to which this behavior applies by 2 (saplings and adults). |