Subversion Repositories public iLand

Rev

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