clFoliarChemistry Class Reference

Foliar Chemistry Calculator Version 1.0. More...

#include <FoliarChemistry.h>

Inheritance diagram for clFoliarChemistry:

clBehaviorBase clWorkerBase

List of all members.

Public Member Functions

 clFoliarChemistry (clSimManager *p_oSimManager)
 Constructor.
 ~clFoliarChemistry ()
 Destructor.
void Action ()
 Makes value calculations.
void GetData (xercesc::DOMDocument *p_oDoc)
 Does setup for this behavior.

Protected Member Functions

void GetAppliesTo ()
 Sets up the mp_bWhichAppliesTo array with the flags for each species and tree type and whether this behavior applies to it.
void GetTreeCodes (clTreePopulation *p_oPop)
 Sets up the mp_iDbhCodes.
void GetParameterFileData (xercesc::DOMDocument *p_oDoc, clTreePopulation *p_oPop)
 Reads values from the parameter file.
void FormatQueryString (clTreePopulation *p_oPop)
 Formats the string in m_cQuery.
void SetupGrid ()
 Sets up the "Foliar Chemistry" grid.

Protected Attributes

clGridBasemp_oGrid
 Grid holding total values for each species.
float * mp_fA
 "a" for foliar dry weight.
float * mp_fB
 "b" for foliar dry weight.
float * mp_fN
 Concentration for N.
float * mp_fP
 Concentration for P.
float * mp_fLignin
 Concentration for lignin.
float * mp_fFiber
 Concentration for fiber.
float * mp_fCellulose
 Concentration for cellulose.
float * mp_fTannins
 Concentration for tannins.
float * mp_fPhenolics
 Concentration for phenolics.
float * mp_fSLA
 Concentration for SLA.
char * m_cQuery
 String to pass to clTreePopulation::Find() in order to get the trees for which to calculate volume.
short int ** mp_iDbhCodes
 Holds codes for DBH data member.
short int ** mp_iXCodes
 Holds codes for X data member.
short int ** mp_iYCodes
 Holds codes for Y data member.
bool ** mp_bAppliesTo
 Whether this behavior applies to each kind of tree.
short int * mp_iNCodes
 Holds data member codes for the "N_x" data members of the "Foliar Chemistry" grid.
short int * mp_iPCodes
 Holds data member codes for the "P_x" data members of the "Foliar Chemistry" grid.
short int * mp_iSLACodes
 Holds data member codes for the "SLA_x" data members of the "Foliar Chemistry" grid.
short int * mp_iLigninCodes
 Holds data member codes for the "lignin_x" data members of the "Foliar Chemistry" grid.
short int * mp_iFiberCodes
 Holds data member codes for the "fiber_x" data members of the "Foliar Chemistry" grid.
short int * mp_iCelluloseCodes
 Holds data member codes for the "cellulose_x" data members of the "Foliar Chemistry" grid.
short int * mp_iTanninsCodes
 Holds data member codes for the "tannins_x" data members of the "Foliar Chemistry" grid.
short int * mp_iPhenolicsCodes
 Holds data member codes for the "phenolics_x" data members of the "Foliar Chemistry" grid.
short int m_iNumTotalSpecies
 Total number of species.


Detailed Description

Foliar Chemistry Calculator Version 1.0.

This behavior calculates foliar chemistry, partitioned by component. The components are N, P, SLA, lignins, tannins, phenolics, fiber, and cellulose.

Foliar dry weight is calculated as a * DBH ^ b. For each of the components, the foliar dry weight is multiplied by the concentration for that component. Any negative values are set to zero. Values are in kilograms.

The values are collected into a grid called "Foliar Chemistry".

This class's namestring and parameter file call string is "Foliar Chemistry."

This behavior may not be applied to seedlings.


Edit history:
-----------------
December 2, 2008 - Created (LEM)
February 13, 2009 - Corrected component calculation (LEM)
April 6, 2009 - Changed grid units from Mg to kg (LEM)


Constructor & Destructor Documentation

clFoliarChemistry::clFoliarChemistry ( clSimManager p_oSimManager  ) 

Constructor.

Parameters:
p_oSimManager clSimManager object.

clFoliarChemistry::~clFoliarChemistry (  ) 

Destructor.

Deletes arrays.


Member Function Documentation

void clFoliarChemistry::Action (  )  [virtual]

Makes value calculations.

First, the values in the "Foliar Chemistry" grid are cleared. Then a query is sent to the tree population to get all trees to which this behavior is applied. For each, the amount of each component is calculated, and the species values are totaled and placed in the "Foliar Chemistry" grid.

Reimplemented from clBehaviorBase.

void clFoliarChemistry::GetData ( xercesc::DOMDocument *  p_oDoc  )  [virtual]

Does setup for this behavior.

Calls:

  1. GetAppliesTo()
  2. GetParameterFileData()
  3. FormatQueryString()
  4. SetupGrid()
  5. Action() so that the initial conditions value will be added
Parameters:
p_oDoc DOM tree of parsed input file.
Exceptions:
modelErr if this behavior has been applied to seedlings.

Implements clWorkerBase.

void clFoliarChemistry::GetAppliesTo (  )  [protected]

Sets up the mp_bWhichAppliesTo array with the flags for each species and tree type and whether this behavior applies to it.

void clFoliarChemistry::GetTreeCodes ( clTreePopulation p_oPop  )  [protected]

Sets up the mp_iDbhCodes.

Parameters:
p_oPop Tree population object

void clFoliarChemistry::GetParameterFileData ( xercesc::DOMDocument *  p_oDoc,
clTreePopulation p_oPop 
) [protected]

Reads values from the parameter file.

Parameters:
p_oDoc DOM tree of parsed input file.
p_oPop Tree population object.

void clFoliarChemistry::FormatQueryString ( clTreePopulation p_oPop  )  [protected]

Formats the string in m_cQuery.

This value will be used in Action() to pass to clTreePopulation::Find() in order to get the trees to act on.

Parameters:
p_oPop Tree population object.

void clFoliarChemistry::SetupGrid (  )  [protected]

Sets up the "Foliar Chemistry" grid.

This ignores any maps.


Member Data Documentation

Grid holding total values for each species.

The grid name is "Foliar Chemistry". It has 5 times X float data members, where X = the total number of species. The data member names are "N_x", "P_x", "SLA_x", "lignin_x", "fiber_x", "cellulose_x", "tannins_x", and "phenolics_x", where "x" is the species number.

float* clFoliarChemistry::mp_fA [protected]

"a" for foliar dry weight.

Array size is # total species.

float* clFoliarChemistry::mp_fB [protected]

"b" for foliar dry weight.

Array size is # total species.

float* clFoliarChemistry::mp_fN [protected]

Concentration for N.

Array size is # total species.

float* clFoliarChemistry::mp_fP [protected]

Concentration for P.

Array size is # total species.

float* clFoliarChemistry::mp_fLignin [protected]

Concentration for lignin.

Array size is # total species.

float* clFoliarChemistry::mp_fFiber [protected]

Concentration for fiber.

Array size is # total species.

Concentration for cellulose.

Array size is # total species.

float* clFoliarChemistry::mp_fTannins [protected]

Concentration for tannins.

Array size is # total species.

Concentration for phenolics.

Array size is # total species.

float* clFoliarChemistry::mp_fSLA [protected]

Concentration for SLA.

Array size is # total species.

char* clFoliarChemistry::m_cQuery [protected]

String to pass to clTreePopulation::Find() in order to get the trees for which to calculate volume.

This will instigate a species/type search for all the species and types to which this behavior applies.

short int** clFoliarChemistry::mp_iDbhCodes [protected]

Holds codes for DBH data member.

First array index is total # species, second is number types (3 - sapling, adult, snag).

short int** clFoliarChemistry::mp_iXCodes [protected]

Holds codes for X data member.

First array index is total # species, second is number types (3 - sapling, adult, snag).

short int** clFoliarChemistry::mp_iYCodes [protected]

Holds codes for Y data member.

First array index is total # species, second is number types (3 - sapling, adult, snag).

Whether this behavior applies to each kind of tree.

First array index is total # species, second is number types (3 - sapling, adult, snag).

short int* clFoliarChemistry::mp_iNCodes [protected]

Holds data member codes for the "N_x" data members of the "Foliar Chemistry" grid.

Array size is total # species.

short int* clFoliarChemistry::mp_iPCodes [protected]

Holds data member codes for the "P_x" data members of the "Foliar Chemistry" grid.

Array size is total # species.

short int* clFoliarChemistry::mp_iSLACodes [protected]

Holds data member codes for the "SLA_x" data members of the "Foliar Chemistry" grid.

Array size is total # species.

short int* clFoliarChemistry::mp_iLigninCodes [protected]

Holds data member codes for the "lignin_x" data members of the "Foliar Chemistry" grid.

Array size is total # species.

short int* clFoliarChemistry::mp_iFiberCodes [protected]

Holds data member codes for the "fiber_x" data members of the "Foliar Chemistry" grid.

Array size is total # species.

short int* clFoliarChemistry::mp_iCelluloseCodes [protected]

Holds data member codes for the "cellulose_x" data members of the "Foliar Chemistry" grid.

Array size is total # species.

short int* clFoliarChemistry::mp_iTanninsCodes [protected]

Holds data member codes for the "tannins_x" data members of the "Foliar Chemistry" grid.

Array size is total # species.

short int* clFoliarChemistry::mp_iPhenolicsCodes [protected]

Holds data member codes for the "phenolics_x" data members of the "Foliar Chemistry" grid.

Array size is total # species.

Total number of species.

For the destructor.


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

Generated on Wed Oct 28 13:58:45 2009 for SORTIE Core C++ Documentation by  doxygen 1.5.6