Rev 425 | Rev 446 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 425 | Rev 445 | ||
---|---|---|---|
Line 57... | Line 57... | ||
57 | inline double deathProb_stress(const double &stress_index) const; |
57 | inline double deathProb_stress(const double &stress_index) const; |
58 | // aging
|
58 | // aging
|
59 | double aging(const float height, const int age) const; |
59 | double aging(const float height, const int age) const; |
60 | int estimateAge(const float height) const;///< estimate age for a tree with the current age |
60 | int estimateAge(const float height) const;///< estimate age for a tree with the current age |
61 | // regeneration
|
61 | // regeneration
|
62 | void seedProduction(const float height, const QPoint &position_index); |
- | |
- | 62 | void seedProduction(const int age, const QPoint &position_index); |
|
63 | void setSeedDispersal(SeedDispersal *seed_dispersal) {mSeedDispersal=seed_dispersal; } |
63 | void setSeedDispersal(SeedDispersal *seed_dispersal) {mSeedDispersal=seed_dispersal; } |
64 | // environmental responses
|
64 | // environmental responses
|
65 | double vpdResponse(const double &vpd) const; |
65 | double vpdResponse(const double &vpd) const; |
66 | inline double temperatureResponse(const double &delayed_temp) const; |
66 | inline double temperatureResponse(const double &delayed_temp) const; |
67 | double nitrogenResponse(const double &availableNitrogen) const { return mSet->nitrogenResponse(availableNitrogen, mRespNitrogenClass); } |
67 | double nitrogenResponse(const double &availableNitrogen) const { return mSet->nitrogenResponse(availableNitrogen, mRespNitrogenClass); } |
68 | double canopyConductance() const { return mMaxCanopyConductance; } ///< maximum canopy conductance in m/s |
68 | double canopyConductance() const { return mMaxCanopyConductance; } ///< maximum canopy conductance in m/s |
69 | inline double soilwaterResponse(const double &psi_kPa) const; ///< input: matrix potential (kPa) (e.g. -15) |
69 | inline double soilwaterResponse(const double &psi_kPa) const; ///< input: matrix potential (kPa) (e.g. -15) |
70 | double lightResponse(const double lightResourceIndex) {return mSet->lightResponse(lightResourceIndex, mLightResponseClass); } |
70 | double lightResponse(const double lightResourceIndex) {return mSet->lightResponse(lightResourceIndex, mLightResponseClass); } |
71 | double psiMin() const { return mPsiMin; } |
71 | double psiMin() const { return mPsiMin; } |
- | 72 | // parameters for seed dispersal
|
|
- | 73 | void treeMigKernel(double &ras1, double &ras2, double &ks) const { ras1=mTM_as1; ras2=mTM_as2; ks=mTM_ks; } |
|
- | 74 | double fecundity_m2() const { return mFecundity_m2; } |
|
- | 75 | double nonSeedYearFraction() const { return mNonSeedYearFraction; } |
|
72 | 76 | ||
73 | const Stamp* stamp(const float dbh, const float height) const { return mLIPs.stamp(dbh, height);} |
77 | const Stamp* stamp(const float dbh, const float height) const { return mLIPs.stamp(dbh, height);} |
74 | private: |
78 | private: |
75 | Q_DISABLE_COPY(Species); |
79 | Q_DISABLE_COPY(Species); |
76 | // helpers during setup
|
80 | // helpers during setup
|
Line 121... | Line 125... | ||
121 | double mMaxCanopyConductance; ///< maximum canopy conductance for transpiration (m/s) |
125 | double mMaxCanopyConductance; ///< maximum canopy conductance for transpiration (m/s) |
122 | int mPhenologyClass; |
126 | int mPhenologyClass; |
123 | double mLightResponseClass; ///< light response class (1..5) (1=shade intolerant) |
127 | double mLightResponseClass; ///< light response class (1..5) (1=shade intolerant) |
124 | // regeneration
|
128 | // regeneration
|
125 | SeedDispersal *mSeedDispersal; ///< link to the seed dispersal map of the species |
129 | SeedDispersal *mSeedDispersal; ///< link to the seed dispersal map of the species |
- | 130 | int mMaturityYears; ///< a tree produces seeds if it is older than this parameter |
|
126 | double mSeedYearProbability; ///< probability that a year is a seed year (=1/avg.timespan between seedyears) |
131 | double mSeedYearProbability; ///< probability that a year is a seed year (=1/avg.timespan between seedyears) |
127 | bool mIsSeedYear; ///< true, if current year is a seed year. see also: |
132 | bool mIsSeedYear; ///< true, if current year is a seed year. see also: |
- | 133 | double mNonSeedYearFraction; ///< fraction of the seed production in non-seed-years |
|
- | 134 | // regeneration - seed dispersal
|
|
- | 135 | double mFecundity_m2; ///< "surviving seeds" (cf. Moles et al) per m2, see also http://iland.boku.ac.at/fecundity |
|
- | 136 | double mTM_as1; ///< seed dispersal paramaters (treemig) |
|
- | 137 | double mTM_as2; ///< seed dispersal paramaters (treemig) |
|
- | 138 | double mTM_ks; ///< seed dispersal paramaters (treemig) |
|
- | 139 | ||
128 | }; |
140 | }; |
129 | 141 | ||
130 | 142 | ||
131 | // inlined functions...
|
143 | // inlined functions...
|
132 | inline void Species::hdRange(const double dbh, double &rLowHD, double &rHighHD) const |
144 | inline void Species::hdRange(const double dbh, double &rLowHD, double &rHighHD) const |