27#include "globalsettings.h"
87 const QString &
id()
const {
return mId; }
89 const QString &
name()
const {
return mName; }
91 const QColor displayColor()
const {
return mDisplayColor; }
93 int index()
const {
return mIndex; }
102 inline double biomassFoliage(
const double dbh)
const {
return mFoliage_a * pow(dbh, mFoliage_b); }
103 inline double biomassStem(
const double dbh)
const {
return mStem_a * pow(dbh, mStem_b); }
104 inline double biomassRoot(
const double dbh)
const {
return mRoot_a * pow(dbh, mRoot_b); }
105 inline double biomassBranch(
const double dbh)
const {
return mBranch_a * pow(dbh, mBranch_b); }
112 double barkThickness(
const double dbh)
const {
return dbh * mBarkThicknessFactor; }
116 double cnWood()
const {
return mCNWood; }
127 void hdRange(
const double dbh,
double &rMinHD,
double &rMaxHD)
const;
130 double density()
const {
return mWoodDensity; }
136 double aging(
const float height,
const int age)
const;
149 double psiMin()
const {
return mPsiMin; }
153 void treeMigKernel(
double &ras1,
double &ras2,
double &ks)
const { ras1=mTM_as1; ras2=mTM_as2; ks=mTM_ks; }
163 const Stamp*
stamp(
const float dbh,
const float height)
const {
return mLIPs.
stamp(dbh, height);}
167 bool boolVar(
const QString s) {
return mSet->
var(s).toBool(); }
168 double doubleVar(
const QString s) {
return mSet->
var(s).toDouble(); }
169 int intVar(
const QString s) {
return mSet->
var(s).toInt(); }
170 QString stringVar(
const QString s) {
return mSet->
var(s).toString(); }
180 double mFoliage_a, mFoliage_b;
181 double mStem_a, mStem_b;
182 double mRoot_a, mRoot_b;
183 double mBranch_a, mBranch_b;
185 double mCNFoliage, mCNFineroot, mCNWood;
186 double mBarkThicknessFactor;
188 double mSpecificLeafArea;
190 double mTurnoverLeaf;
191 double mTurnoverRoot;
192 double mFinerootFoliageRatio;
199 double mVolumeFactor;
204 double mSnagHalflife;
206 double mDeathProb_intrinsic;
207 double mDeathProb_stress;
210 double mMaximumHeight;
213 double mRespVpdExponent;
216 double mRespNitrogenClass;
219 double mMaxCanopyConductance;
221 double mLightResponseClass;
225 double mSeedYearProbability;
227 double mNonSeedYearFraction;
229 double mFecundity_m2;
236 double mSerotinyFecundity;
239 QColor mDisplayColor;
256 return exp(mRespVpdExponent * vpd);
266 double x = qMax(delayed_temp-mRespTempMin, 0.);
267 x = qMin(x/(mRespTempMax-mRespTempMin), 1.);
275 const double psi_mpa = psi_kPa / 1000.;
276 double result =
limit( (psi_mpa - mPsiMin) / (-0.015 - mPsiMin) , 0., 1.);
283 if (stress_index==0.)
285 double result = 1. - exp(-mDeathProb_stress*stress_index);
An expression engine for mathematical expressions provided as strings.
Definition: expression.h:29
double calculate(const double Val1=0., const double Val2=0., const bool forceExecution=false) const
calculate formula.
Definition: expression.cpp:487
The class encapsulates the dispersal of seeds of one species over the whole landscape.
Definition: seeddispersal.h:28
The behavior and general properties of tree species.
Definition: species.h:75
int estimateAge(const float height) const
estimate age for a tree with the current age
Definition: species.cpp:268
double density() const
density of stem wood [kg/m3]
Definition: species.h:130
double biomassStem(const double dbh) const
Definition: species.h:103
double allometricExponentStem() const
Definition: species.h:107
double cnFineroot() const
Definition: species.h:115
int index() const
unique index of species within current set
Definition: species.h:93
double soilwaterResponse(const double &psi_kPa) const
input: matrix potential (kPa) (e.g. -15)
Definition: species.h:273
void setSeedDispersal(SeedDispersal *seed_dispersal)
Definition: species.h:141
const SaplingGrowthParameters & saplingGrowthParameters() const
Definition: species.h:161
double volumeFactor() const
factor for volume calculation: V = factor * D^2*H (incorporates density and the form of the bole)
Definition: species.h:129
void seedProduction(const Tree *tree)
check the maturity of the tree and flag the position as seed source appropriately
Definition: species.cpp:278
double snagHalflife() const
Definition: species.h:122
double barkThickness(const double dbh) const
Definition: species.h:112
double nitrogenResponse(const double &availableNitrogen) const
Definition: species.h:145
const Stamp * stamp(const float dbh, const float height) const
Definition: species.h:163
void hdRange(const double dbh, double &rMinHD, double &rMaxHD) const
Definition: species.h:247
bool isConiferous() const
Definition: species.h:96
double biomassBranch(const double dbh) const
Definition: species.h:105
void setup()
main setup routine for tree species.
Definition: species.cpp:52
double snagKyl() const
decomposition rate for labile matter (litter) used in soil model
Definition: species.h:123
Species(SpeciesSet *set)
Definition: species.h:77
bool isSeedYear() const
Definition: species.h:98
double deathProb_intrinsic() const
Definition: species.h:133
double nonSeedYearFraction() const
Definition: species.h:155
int phenologyClass() const
phenology class defined in project file. class 0 = evergreen
Definition: species.h:95
double biomassFoliage(const double dbh) const
Definition: species.h:102
double cnFoliage() const
Definition: species.h:114
void treeMigKernel(double &ras1, double &ras2, double &ks) const
Definition: species.h:153
int maturityAge() const
Definition: species.h:152
bool isTreeSerotinous(const int age) const
returns true of a tree with given age/height is serotinous (i.e. seed release after fire)
Definition: species.cpp:294
bool isEvergreen() const
Definition: species.h:97
double vpdResponse(const double &vpd) const
vpdResponse calculates response on vpd.
Definition: species.h:254
double temperatureResponse(const double &delayed_temp) const
temperatureResponse calculates response on delayed daily temperature.
Definition: species.h:264
const QString & name() const
the full name (e.g. Picea Abies) of the species
Definition: species.h:89
double psiMin() const
Definition: species.h:149
double canopyConductance() const
maximum canopy conductance in m/s
Definition: species.h:146
const SpeciesSet * speciesSet() const
Definition: species.h:83
double specificLeafArea() const
Definition: species.h:131
double cnWood() const
Definition: species.h:116
double allometricFractionStem(const double dbh) const
calculate fraction of stem wood increment base on dbh.
Definition: species.cpp:240
const QString & id() const
Definition: species.h:87
double vpdResponseExponent() const
Definition: species.h:150
const EstablishmentParameters & establishmentParameters() const
Definition: species.h:160
double biomassRoot(const double dbh) const
Definition: species.h:104
double fecunditySerotiny() const
Definition: species.h:156
double turnoverRoot() const
Definition: species.h:119
double snagKsw() const
Definition: species.h:121
double finerootFoliageRatio() const
ratio of fineroot mass (kg) to foliage mass (kg)
Definition: species.h:111
double allometricExponentBranch() const
Definition: species.h:108
double deathProb_stress(const double &stress_index) const
calculate probabilty of death based on the current stress index.
Definition: species.h:281
SeedDispersal * seedDispersal() const
Definition: species.h:85
~Species()
Definition: species.cpp:41
double snagKyr() const
decomposition rate for refractory matter (woody) used in soil model
Definition: species.h:124
double fecundity_m2() const
Definition: species.h:154
bool active() const
active??? todo!
Definition: species.h:94
double allometricExponentFoliage() const
Definition: species.h:109
void newYear()
newYear is called by the SpeciesSet at the beginning of a year before any growth occurs.
Definition: species.cpp:310
double turnoverLeaf() const
Definition: species.h:118
double aging(const float height, const int age) const
Aging formula.
Definition: species.cpp:255
double lightResponse(const double lightResourceIndex) const
Definition: species.h:148
A SpeciesSet acts as a container for individual Species objects.
Definition: speciesset.h:30
double lightResponse(const double lightResourceIndex, const double lightResponseClass) const
calculates the lightResponse based on a value for LRI and the species lightResponseClass.
Definition: speciesset.cpp:320
QVariant var(const QString &varName)
return variable as QVariant
Definition: speciesset.cpp:211
double nitrogenResponse(const double availableNitrogen, const double &responseClass) const
calculate nitrogen response for a given amount of available nitrogen and a respone class for fraction...
Definition: speciesset.cpp:266
int count() const
Definition: speciesset.h:42
Collection of Stamp for one tree species.
Definition: stampcontainer.h:33
const Stamp * stamp(const float bhd_cm, const float height_m) const
fast access for an individual stamp using a lookup table.
Definition: stampcontainer.cpp:198
Stamp is the basic class for the LIP field of a individual tree.
Definition: stamp.h:32
A tree is the basic simulation entity of iLand and represents a single tree.
Definition: tree.h:44
const int cPxPerHectare
Definition: globalsettings.h:12
double limit(const double value, const double lower, const double upper)
Definition: global.h:82
parameters for establishment
Definition: species.h:37
int frost_free
minimum number of annual frost-free days required
Definition: species.h:43
double GDD_baseTemperature
for GDD-calc: GDD=sum(T - baseTemp)
Definition: species.h:41
int chill_requirement
days of chilling requirement
Definition: species.h:39
double psi_min
minimum soil water potential for establishment
Definition: species.h:45
double frost_tolerance
factor in growing season frost tolerance calculation
Definition: species.h:44
EstablishmentParameters()
Definition: species.h:47
int GDD_min
Definition: species.h:40
double SOL_thickness
effect of thick soil organic layer (0: no effect)
Definition: species.h:46
int GDD_max
GDD thresholds.
Definition: species.h:40
double min_temp
degC
Definition: species.h:38
int bud_birst
GDDs needed until bud burst.
Definition: species.h:42
parameters for sapling growth
Definition: species.h:53
int maxStressYears
trees die, if they are "stressed" for this number of consectuive years
Definition: species.h:55
double ReinekesR
Reinekes R, i.e. maximum stem number for a dg of 25cm.
Definition: species.h:58
void setupReinekeLookup()
Definition: species.cpp:323
SaplingGrowthParameters()
Definition: species.h:60
double adultSproutProbability
annual chance of creating a sprouting sapling cell from an adult tree of resprouting species
Definition: species.h:68
float hdSapling
fixed height-diameter ratio used for saplings
Definition: species.h:57
double referenceRatio
f_ref (eq. 3) -> ratio reference site / optimum site
Definition: species.h:59
double browsingProbability
browsing probability
Definition: species.h:66
double representedStemNumber(const double dbh) const
represented stem number by one cohort (using Reinekes Law):
Definition: species.h:64
double sproutGrowth
multiplier of growth for saplings regenerated by sprouts (0: no sprouts)
Definition: species.h:67
QVector< double > mRepresentedClasses
lookup table for represented trees
Definition: species.h:69
Expression heightGrowthPotential
formula that expresses height growth potential
Definition: species.h:54
double stressThreshold
tree is considered as "stressed" if f_env_yr is below that threhold
Definition: species.h:56
double representedStemNumberH(const double height) const
represented stem number by height of one cohort (using Reinekes Law): this uses a lookup table to imp...
Definition: species.h:62