Subversion Repositories public iLand

Rev

Rev 328 | Rev 369 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 328 Rev 367
1
Redirecting to URL 'https://iland.boku.ac.at/svn/iland/tags/release_1.0/src/core/speciesresponse.h':
1
Redirecting to URL 'https://iland.boku.ac.at/svn/iland/tags/release_1.0/src/core/speciesresponse.h':
2
#ifndef SPECIESRESPONSE_H
2
#ifndef SPECIESRESPONSE_H
3
#define SPECIESRESPONSE_H
3
#define SPECIESRESPONSE_H
4
class ResourceUnit;
4
class ResourceUnit;
5
class ResourceUnitSpecies;
5
class ResourceUnitSpecies;
6
class Species;
6
class Species;
7
7
8
class SpeciesResponse
8
class SpeciesResponse
9
{
9
{
10
public:
10
public:
11
    SpeciesResponse();
11
    SpeciesResponse();
12
    // actions
12
    // actions
13
    void setup(ResourceUnitSpecies *rus);
13
    void setup(ResourceUnitSpecies *rus);
14
    /// calculate the species specific environmental response values for the resource unit.
14
    /// calculate the species specific environmental response values for the resource unit.
15
    /// this function called before the 3pg production.
15
    /// this function called before the 3pg production.
16
    void calculate();
16
    void calculate();
17
    // access responses
17
    // access responses
18
    const double *tempResponse() const { return mTempResponse; }
18
    const double *tempResponse() const { return mTempResponse; }
19
    const double *soilWaterResponse() const { return mSoilWaterResponse; }
19
    const double *soilWaterResponse() const { return mSoilWaterResponse; }
20
    const double *absorbedRadiation() const { return mRadiation; } ///< radiation sum in MJ/m2
20
    const double *absorbedRadiation() const { return mRadiation; } ///< radiation sum in MJ/m2
21
    const double *utilizableRadiation() const {return mUtilizableRadiation; } ///< utilizable radiation (rad*responses)
21
    const double *utilizableRadiation() const {return mUtilizableRadiation; } ///< utilizable radiation (rad*responses)
22
    const double *vpdResponse() const {return mVpdResponse; }
22
    const double *vpdResponse() const {return mVpdResponse; }
23
    const double *co2Response() const { return mCO2Response; }
23
    const double *co2Response() const { return mCO2Response; }
24
    double nitrogenResponse() const { return mNitrogenResponse; }
24
    double nitrogenResponse() const { return mNitrogenResponse; }
-
 
25
    /// response calculation called during water cycle
-
 
26
    /// calculates minimum-response of vpd-response and soilwater response
-
 
27
    void soilAtmosphereResponses(const double psi_kPa, const double vpd, double &rMinResponse) const;
-
 
28
25
private:
29
private:
26
    void clear();
30
    void clear();
27
    const ResourceUnit *mRu;
31
    const ResourceUnit *mRu;
28
    const Species *mSpecies;
32
    const Species *mSpecies;
29
33
30
    double mRadiation[12]; ///<  radiation sums per month (within vegetation period)
34
    double mRadiation[12]; ///<  radiation sums per month (within vegetation period)
31
    double mUtilizableRadiation[12]; ///< sum of daily radiation*minResponse
35
    double mUtilizableRadiation[12]; ///< sum of daily radiation*minResponse
32
    double mTempResponse[12]; ///< average of temperature response
36
    double mTempResponse[12]; ///< average of temperature response
33
    double mSoilWaterResponse[12]; ///< average of soilwater response
37
    double mSoilWaterResponse[12]; ///< average of soilwater response
34
    double mVpdResponse[12]; ///< mean of vpd-response
38
    double mVpdResponse[12]; ///< mean of vpd-response
35
    double mNitrogenResponse;
39
    double mNitrogenResponse;
36
    double mCO2Response[12];
40
    double mCO2Response[12];
37
};
41
};
38
42
39
#endif // SPECIESRESPONSE_H
43
#endif // SPECIESRESPONSE_H
40
 
44