clPRSemiStochGrowth Class Reference

Implements diameter growth according to a completely whacked-out scheme for Puerto Rico. More...

#include <PRSemiStochGrowth.h>

Inheritance diagram for clPRSemiStochGrowth:

clGrowthBase clBehaviorBase clWorkerBase List of all members.

Public Member Functions

 clPRSemiStochGrowth (clSimManager *p_oSimManager)
 Constructor.
 ~clPRSemiStochGrowth ()
 Destructor.
float CalcDiameterGrowthValue (clTree *p_oTree, clTreePopulation *p_oPop, float fHeightGrowth)
 Calculates the amount of diameter growth increase for a particular tree.
void DoShellSetup (xercesc::DOMDocument *p_oDoc)
 Does the setup for this behavior.

Protected Attributes

float * mp_fHeightThreshold
 Height threshold between deterministic and stochastic growth - in m - sized number of behavior species.
float * mp_fA
 "a" parameter for deterministic growth - sized number of behavior species
float * mp_fB
 "b" parameter for deterministic growth - sized number of behavior species
float * mp_fMeanDiam
 Mean diameter (cm) for stochastic growth - sized number of behavior species.
float * mp_fDiamStdDev
 Diameter standard deviation (cm) for stochastic growth - sized number of behavior species.
short int * mp_iIndexes
 For accessing the other arrays.

Detailed Description

Implements diameter growth according to a completely whacked-out scheme for Puerto Rico.

This was meant for palm growth, and palms are freaky. Not nice trees at all. This is merely for explanation for the insanity of this particular growth behavior. Of course it's no excuse but then again I don't make this stuff up.

Trees of less than a certain height get what is essentially an allometry shortcut: diameter is incremented in whatever direction is necessary to get it to match the outcome of an equation involving height. Trees above the height get a random diameter drawn from a normal distribution with a mean and standard deviation supplied by the user.

This can only increment diameter along with a height incrementer - i.e. no diam-with-auto-height use.

For trees below the cutoff, their growth is figured as follows:

Y = (A * EXP (-B*Height)) - Diam
where

The name string is "prsemistochgrowthshell". The parameter file call string is "PR semi-stochastic diam only".

Copyright 2005 Charles D. Canham.

Author:
Lora E. Murphy

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


Constructor & Destructor Documentation

clPRSemiStochGrowth::clPRSemiStochGrowth ( clSimManager p_oSimManager  ) 

Constructor.

Parameters:
p_oSimManager Sim manager for this run.

clPRSemiStochGrowth::~clPRSemiStochGrowth (  ) 

Destructor.

Frees memory.


Member Function Documentation

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

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

If the tree is less than the height cutoff for stochastic growth, the equation above is calculated. Otherwise, this returns the difference between the existing diameter and a randomly drawn diameter.

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

Reimplemented from clGrowthBase.

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

Does the setup for this behavior.

This reads in the parameters from the parameter file.

Parameters:
p_oDoc Parsed parameter file.

Reimplemented from clGrowthBase.


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