clDoubleMMRelGrowth Class Reference

Double-resource relative growth - Version 1.0. More...

#include <DoubleMMRelGrowth.h>

Inheritance diagram for clDoubleMMRelGrowth:

clMichMenBase clGrowthBase clBehaviorBase clWorkerBase List of all members.

Public Member Functions

 clDoubleMMRelGrowth (clSimManager *p_oSimManager)
 Constructor.
 ~clDoubleMMRelGrowth ()
 Destructor.
float CalcDiameterGrowthValue (clTree *p_oTree, clTreePopulation *p_oPop, float fHeightGrowth)
 Applies growth as described in the equation above.
void SetNameData (char *cNameString)
 Captures the behavior name passed from the parameter file.
void DoShellSetup (xercesc::DOMDocument *p_oDoc)
 Does setup.

Protected Attributes

clGridBasemp_oResourceGrid
 Grid containing the levels of the second resource.
float * mp_fResourceInfluence
 Parameter governing the influence of the second resource (C in equation above).
float m_fNumberYearsPerTimestep
 Number of years per timestep - from sim manager.
short int m_iResourceCode
 The float data member code for the resource grid.

Detailed Description

Double-resource relative growth - Version 1.0.

This is a growth shell object which applies a double Michaelis-Menton function to find relative growth as a function of light and some other resource.

The growth equation is:

Y = ((A + C*R) * GLI) / (((A + C*R)/S) + GLI)
where

To compound the growth over the number of years per timestep, the following equation is used:

G = ((Y + 1)T - 1) * diam
where:

The identity of the second resource (R) in the Michaelis-Menton function is unimportant. It is assumed that the parameters will be scaled appropriately for the data range for whatever resource it is. The resource levels are obtained from a grid object called "Resource", with a single float data member called "Resource" which contains the level of the resource in question. If the grid is not present, this is considered a fatal error by this behavior.

To call this from the parameter file, use either "Double resource relative diam with auto height" (for diam with auto height growth) or "Double resource relative diam only" (for diam only growth).

The namestring for this class is "doublemmrelgrowthshell".

Copyright 2003 Charles D. Canham.

Author:
Lora E. Murphy

Edit history:
-----------------
February 8, 2004 - Created (LEM)


Constructor & Destructor Documentation

clDoubleMMRelGrowth::clDoubleMMRelGrowth ( clSimManager p_oSimManager  ) 

Constructor.

Sets the namestring.

Parameters:
p_oSimManager Sim Manager object.

clDoubleMMRelGrowth::~clDoubleMMRelGrowth (  ) 

Destructor.

Frees memory.


Member Function Documentation

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

Applies growth as described in the equation above.

Parameters:
p_oTree Tree for which to calculate growth.
p_oPop Tree population.
fHeightGrowth Amount of height growth, in m (ignored).
Returns:
Amount of growth increase, in cm.

Reimplemented from clGrowthBase.

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

Does setup.

Reads in values from the parameter file, and validates that all species/type combos use light (each must have "lgm" registered).

Parameters:
p_oDoc DOM tree of parsed input file.
Exceptions:
modelErr if any species/type combo to which this behavior is applied does not have a light behavior, or if there is no grid called "Resource".

Reimplemented from clGrowthBase.

void clDoubleMMRelGrowth::SetNameData ( char *  cNameString  )  [virtual]

Captures the behavior name passed from the parameter file.

This is useful since this class can produce a few different kinds of behaviors.

Parameters:
cNameString Behavior name from parameter file.

Reimplemented from clBehaviorBase.


Member Data Documentation

float* clDoubleMMRelGrowth::mp_fResourceInfluence [protected]

Parameter governing the influence of the second resource (C in equation above).

Array size is number of behavior species.

clGridBase* clDoubleMMRelGrowth::mp_oResourceGrid [protected]

Grid containing the levels of the second resource.

This is not created by this behavior; it is expected to already be available. It should be named "Resource" and have one float data member called "Resource".


The documentation for this class was generated from the following file:
Generated on Wed Nov 29 08:42:21 2006 for SORTIE Core C++ Documentation by  doxygen 1.4.7