clMastingNonSpatialDisperse Class Reference

Masting non-spatial disperse - Version 1.0. More...

#include <MastingNonSpatialDisperse.h>

Inheritance diagram for clMastingNonSpatialDisperse:

clDisperseBase clBehaviorBase clWorkerBase

List of all members.

Public Member Functions

 clMastingNonSpatialDisperse (clSimManager *p_oSimManager)
 Constructor.
 ~clMastingNonSpatialDisperse ()
 Destructor.
mastEvent GetMastEvent (int iSp)
 Get whether a given species masted this timestep.

Protected Member Functions

enum mastEvent *mp_iEvent pdf
**mp_iFunction bool
m_bGroupsUsed void 
DoShellSetup (xercesc::DOMDocument *p_oDoc)
 Which event is occurring in the current timestep for each species.
void ComputeBasalArea ()
 Computes the total "basal area" of all adults for each species.
void AddSeeds ()
 Does dispersal.

Protected Attributes

float ** mp_fInvGaussMu
 Mu parameter for inverse gaussian distribution.
float ** mp_fInvGaussLambda
 Lambda parameter for inverse gaussian distribution.
float ** mp_fNormalMean
 Mean for normal distribution.
float ** mp_fNormalStandardDev
 Standard deviation for normal distribution.
float * mp_fBinomialP
 P parameter for binomial distribution for deciding when to mast - array size = number behavior species.
float * mp_fBasalArea
 "Basal area" for each species.
short int * mp_iGroup
 Group affiliation of the species.


Detailed Description

Masting non-spatial disperse - Version 1.0.

This class performs non-spatial dispersal with masting. The actual dispersal is non-density dependent, or bath, dispersal. This is a constant seed rain which does not depend on the presence of parent trees in the plot. The actual disperal - just dropping a constant amount of seed everywhere - is easy. Figuring out how much seed to drop is the complicated bit.

The first decision is whether or not there will be masting. This is done by using a random draw on a binomial probability distribution. Each species gets its parameters for this distribution.

Once it is known whether masting will occur, the actual number of seeds per square meter is drawn from a random distribution. Each species can use its own probability function, and can use different functions in masting and non-masting timesteps.

Once the number of seeds per square meter is known, they are evenly distributed to the seed grid cells.

As an additional refinement, species can mast together in groups. In this case, all the species in a group are treated as one entity - masting together, and using the same parameters for seed dispersal - except that at the end, once the number of seeds per square meter is known, they are divided up according to the relative basal areas of the adults in the group across the entire plot. If there are no adults of any of the species in the plot, the seeds are divided evenly.

Apart from grouping, species operate completely independently and the masting activities of one species do not affect the others in any way.

This behavior's namestring and parameter file call string are both "masting non spatial disperse".

Copyright 2008 Charles D. Canham.

Author:
Lora E. Murphy

Edit history:
-----------------
July 31, 2008 - Created (LEM)

Constructor & Destructor Documentation

clMastingNonSpatialDisperse::clMastingNonSpatialDisperse ( clSimManager p_oSimManager  ) 

Constructor.

Parameters:
p_oSimManager Sim Manager object.

clMastingNonSpatialDisperse::~clMastingNonSpatialDisperse (  ) 

Destructor.


Member Function Documentation

mastEvent clMastingNonSpatialDisperse::GetMastEvent ( int  iSp  ) 

Get whether a given species masted this timestep.

Parameters:
iSp Species to check
Returns:
mast or nonmast.

enum mastEvent* mp_iEvent pdf** mp_iFunction bool m_bGroupsUsed void clMastingNonSpatialDisperse::DoShellSetup ( xercesc::DOMDocument *  p_oDoc  )  [protected, virtual]

Which event is occurring in the current timestep for each species.

PDF to use for seed draw. The array is 2D - the first index is masting or non-masting. The second index is number behavior species. Whether or not species are put into groups. Reads in parameter file values.

Parameters:
p_oDoc DOM tree of parsed parameter file.

Implements clDisperseBase.

void clMastingNonSpatialDisperse::ComputeBasalArea (  )  [protected]

Computes the total "basal area" of all adults for each species.

This will allow calculation of relative basal area for each group. Basal area is not actually basal area, since we don't need to multiply by pi to get the relative values. We'll just square the radii. Totals are placed in mp_fBasalArea.

void clMastingNonSpatialDisperse::AddSeeds (  )  [protected, virtual]

Does dispersal.

This calculates basal area as necessary for groups; checks to see if masting is occurring or not; then uses the appropriate random draw and the appropriate parameters to pick the number of seeds to add to each grid cell.

Implements clDisperseBase.


Member Data Documentation

Mu parameter for inverse gaussian distribution.

The array is 2D - the first index is masting or non-masting. The second index is number behavior species.

Lambda parameter for inverse gaussian distribution.

The array is 2D - the first index is masting or non-masting. The second index is number behavior species.

Mean for normal distribution.

The array is 2D - the first index is masting or non-masting. The second index is species.

Standard deviation for normal distribution.

The array is 2D - the first index is masting or non-masting. The second index is species.

P parameter for binomial distribution for deciding when to mast - array size = number behavior species.

"Basal area" for each species.

Since all we care about is relative proportion, this will just add up the squares of the radii. Array size = number behavior species.

Group affiliation of the species.

Any species with the same group number will always mast together. Array size is number behavior species.


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

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