clMichMenBase Class Reference

Michaelis-Menton growth base - Version 1.0. More...

#include <MichMenGrowthBase.h>

Inheritance diagram for clMichMenBase:

clGrowthBase clBehaviorBase clWorkerBase clAbsoluteGrowth clConstantBAGrowth clConstantRadialGrowth clDoubleMMRelGrowth clRelativeGrowth

List of all members.

Public Member Functions

 clMichMenBase (clSimManager *p_oSimManager)
 Constructor.
virtual ~clMichMenBase ()
 Destructor.

Protected Member Functions

void GetParameterFileData (xercesc::DOMDocument *p_oDoc)
 Extracts growth parameters.
float CalculateMichaelisMentonDiam (short int &iSpecies, float &fGli)
 Calculates the result of the Michaelis-Menton function using diameter growth parameters.
float CalculateMichaelisMentonHeight (short int &iSpecies, float &fGli)
 Calculates the result of the Michaelis-Menton function using height growth parameters.
float ApplyGrowthLimits (const short int &iSpecies, const float &fAmountDiamIncrease, const float &fDiam)
 Applies applicable growth limits according to the flags set.
float GetGrowthMemberValue (clTree *p_oTree, float fDiameterGrowth)
 Gets the proper value for the "Growth" data member for mortality calculations based on growth.

Protected Attributes

float * mp_fSlopeDiamGrowthResponse
 Slope of diameter growth response.
float * mp_fSlopeHeightGrowthResponse
 Slope of height growth response.
float * mp_fAdultConstBAInc
 Adult constant basal area increment in cm2/timestep (parameter file value is expected in cm2/yr).
float * mp_fAdultConstRadInc
 Adult constant radial increment in cm/timestep (parameter file value is expected in mm/yr).
float * mp_fAsympDiamGrowth
 Asymptotic diameter growth.
float * mp_fAsympHeightGrowth
 Asymptotic height growth.
bool m_bConstRadialLimited
 Whether or not growth is limited to constant radial increment.
bool m_bConstBasalAreaLimited
 Whether or not growth is limited to constant basal area increment.


Detailed Description

Michaelis-Menton growth base - Version 1.0.

This is the base class for growth behavior shell classes which use the Michaelis-Menton function for growth. The variables held in common across classes are static here.

Copyright 2003 Charles D. Canham.

Author:
Lora E. Murphy

Edit history:
-----------------
April 28, 2004 - Submitted as beta (LEM)
April 14, 2008 - Added height growth support (LEM)

Constructor & Destructor Documentation

clMichMenBase::clMichMenBase ( clSimManager p_oSimManager  ) 

Constructor.

Parameters:
p_oSimManager Sim Manager object.

virtual clMichMenBase::~clMichMenBase (  )  [virtual]

Destructor.

Deletes the static arrays if they haven't already been deleted.


Member Function Documentation

void clMichMenBase::GetParameterFileData ( xercesc::DOMDocument *  p_oDoc  )  [protected]

Extracts growth parameters.

This should be called in child DoShellSetup() functions. If a child behavior wants a particular array filled, simply declare it; all non-needed arrays can be left NULL. Only those species to which a child behavior apply will be filled.

Parameters:
p_oDoc DOM tree of parsed input file.

float clMichMenBase::CalculateMichaelisMentonDiam ( short int &  iSpecies,
float &  fGli 
) [inline, protected]

Calculates the result of the Michaelis-Menton function using diameter growth parameters.

Parameters:
iSpecies Species number
fGli GLI value as a percentage between 0 and 100
Returns:
Function result.

float clMichMenBase::CalculateMichaelisMentonHeight ( short int &  iSpecies,
float &  fGli 
) [inline, protected]

Calculates the result of the Michaelis-Menton function using height growth parameters.

Parameters:
iSpecies Species number
fGli GLI value as a percentage between 0 and 100
Returns:
Function result.

float clMichMenBase::ApplyGrowthLimits ( const short int &  iSpecies,
const float &  fAmountDiamIncrease,
const float &  fDiam 
) [protected]

Applies applicable growth limits according to the flags set.

If a flag is set and the growth passed is higher than the applicable limit, the limit is returned instead; otherwise, the growth is returned.

If m_bConstRadialLimited is set to true, the limit is the value in mp_fAdultConstRadInc for that species. If m_bConstBasalAreaLimited is set to true, then the limit is the value in mp_fAdultConstBAInc divided by the tree's diameter (recall that mp_fAdultConstBAInc is in squared units).

Parameters:
iSpecies Species number
fAmountDiamIncrease Amount of diameter increase in cm/timestep
fDiam Tree diameter in cm
Returns:
The amount of growth in cm

float clMichMenBase::GetGrowthMemberValue ( clTree p_oTree,
float  fDiameterGrowth 
) [protected, virtual]

Gets the proper value for the "Growth" data member for mortality calculations based on growth.

In order to keep old slow growers from dying, if the tree's DBH is greater than 30 cm and its GLI is greater than 10, the return value is 10. Otherwise, the tree's amount of annual diameter increase is used.

Parameters:
p_oTree Tree to get "Growth" for.
fDiameterGrowth Amount of diameter growth to be added. Value to place in "Growth", in mm radial growth/yr.

Reimplemented from clGrowthBase.


Member Data Documentation

Slope of diameter growth response.

Array size is number of species. Old parameter g2.

Slope of height growth response.

Array size is number of species.

Adult constant basal area increment in cm2/timestep (parameter file value is expected in cm2/yr).

Array size is number of species.

Adult constant radial increment in cm/timestep (parameter file value is expected in mm/yr).

Old parameter g4. Array size is number of species.

Asymptotic diameter growth.

Old parameter g1. Array size is number of species.

Asymptotic height growth.

Old parameter g1. Array size is number of species.

Whether or not growth is limited to constant radial increment.

Whether or not growth is limited to constant basal area increment.


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

Generated on Tue Apr 19 13:56:13 2011 for SORTIE Core C++ Documentation by  doxygen 1.5.6