clNCIMort Class Reference

NCI Mortality - Version 2.0. More...

#include <NCIMort.h>

Inheritance diagram for clNCIMort:

clMortalityBase clNCIBase clBehaviorBase clWorkerBase List of all members.

Public Member Functions

 clNCIMort (clSimManager *p_oSimManager)
 Constructor.
 ~clNCIMort ()
 Destructor.
bool DoMort (clTree *p_oTree, const float &fDbh, const short int &iSpecies)
 Determines mortality for a tree.
void DoShellSetup (xercesc::DOMDocument *p_oDoc)
 Performs behavior setup.
void PreMortCalcs (clTreePopulation *p_oPop)
 Performs calculations before any trees have been killed.
void RegisterTreeDataMembers ()
 Registers the "NCI Mort" boolean tree data member, then calls this function for clMortalityBase.
short int GetNewTreeBools ()
 Indicates registration of one additional bool tree data member above and beyond "dead".

Protected Member Functions

void ValidateData ()
 Makes sure all input data is valid.
void ReadParameterFile (xercesc::DOMDocument *p_oDoc)
 Reads data from the parameter file.
void GetTreeMemberCodes ()
 Gets the return codes for needed tree data members.
void FormatQuery ()
 Populates m_cQuery with the query for getting NCI trees.

Protected Attributes

float m_fNumberYearsPerTimestep
 Number of years per timestep.
short int ** mp_iNCIMortCodes
 Codes for the "NCI Mort" bool data member that this behavior is adding.
char * m_cQuery
 Query string to get NCI trees.

Detailed Description

NCI Mortality - Version 2.0.

This is a mortality shell object which applies an NCI (neighborhood competition index) function to assess probability of survival.

The function for annual survival probability:

Survival probability = Max Probability * Damage Effect * Size Effect * Crowding Effect * Shading Effect

All NCI calculations are performed according to clNCIBase.

The annual survival probability is compounded for multi-year timesteps by taking it to the X power, where X is the number of years per timestep.

This is a generic behavior. It is expected that not all terms in the 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.

The namestring for this class is "ncimortshell". The parameter file call string is "NCI Mortality".

This behavior adds a new boolean data member called "NCI Mort". This holds the result of the mortality calculation that happens before the main mortality process. This is so neighbors that die this timestep aren't artificially excluded from the NCI calculation.

This behavior can only be applied to saplings and adults.

If the user is using damage parameters, this behavior must be used in conjunction with the storm damage behavior. If the user is using shading, then this must be used in conjunction with a light behavior.

Copyright 2003 Charles D. Canham.

Author:
Lora E. Murphy

Edit history:
-----------------
October 4, 2004 - Created (LEM)
March 14, 2005 - Generalized the NCI function, removed all references to "Puerto Rico", and updated to version 2.0. (LEM)
April 5, 2005 - Added pre-mortality calculation for NCI. Version 2.0 retained because it had not yet been released. (LEM)


Constructor & Destructor Documentation

clNCIMort::clNCIMort ( clSimManager p_oSimManager  ) 

Constructor.

Parameters:
p_oSimManager Sim Manager object.

clNCIMort::~clNCIMort (  ) 

Destructor.

Frees memory.


Member Function Documentation

bool clNCIMort::DoMort ( clTree p_oTree,
const float &  fDbh,
const short int &  iSpecies 
) [virtual]

Determines mortality for a tree.

This just returns the value in the "NCI Mort" bool tree data member.

Parameters:
p_oTree Tree being evaluated.
fDbh DBH of tree being evaluated.
iSpecies Species of tree being evaluated.

Implements clMortalityBase.

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

Performs behavior setup.

First, ReadParameterFile() is called to read the parameter file's data. Then ValidateData() is called to validate the data. Then GetTreeMemberCodes() is called to get tree data return codes.

Parameters:
p_oDoc DOM tree of parsed input tree.

Reimplemented from clMortalityBase.

short int clNCIMort::GetNewTreeBools (  )  [virtual]

Indicates registration of one additional bool tree data member above and beyond "dead".

This calles the version in clMortalityBase and then adds 1 to the result.

Returns:
Number of new tree bools; at least 1.

Reimplemented from clMortalityBase.

void clNCIMort::GetTreeMemberCodes (  )  [protected]

Gets the return codes for needed tree data members.

This declares and populates the mp_iDamageCodes array with the return codes for the "stm_dmg" tree int data member, and does the same for the mp_iLightCodes array and the "Light" tree float data member for any species which uses the shading effect (shading coefficient != 0).

Exceptions:
modelErr if a light code comes back -1 for any species which uses the shading effect.

void clNCIMort::PreMortCalcs ( clTreePopulation p_oPop  )  [virtual]

Performs calculations before any trees have been killed.

This finds all trees to which this behavior applies and performs their NCI calculations. Then, having done all that work, this function goes ahead and assesses the tree's mortality. Whether it lives or dies is then stashed in the "NCI Mort" bool tree data member.

Parameters:
p_oPop Tree population.

Reimplemented from clMortalityBase.

void clNCIMort::ReadParameterFile ( xercesc::DOMDocument *  p_oDoc  )  [protected]

Reads data from the parameter file.

Parameters:
p_oDoc DOM tree of parsed input tree.
Exceptions:
modelErr if this behavior has been applied to any types except sapling and adult.

void clNCIMort::ValidateData (  )  [protected]

Makes sure all input data is valid.

The following must all be true:

Exceptions:
modelErr if any of the above conditions are not met.


Member Data Documentation

float clNCIMort::m_fNumberYearsPerTimestep [protected]

Number of years per timestep.

From sim manager

short int** clNCIMort::mp_iNCIMortCodes [protected]

Codes for the "NCI Mort" bool data member that this behavior is adding.

Array size is number of species to which this behavior applies by 2 (saplings and adults).


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