iLand
solarradiation.h
Go to the documentation of this file.
1#ifndef SolarRadiation_H
2#define SolarRadiation_H
3//---------------------------------------------------------------------------
4
5class HemiGrid;
10{
11public:
12 SolarRadiation(): mMinDay(-1), mMaxDay(367), mDiffusRadFraction(0.5) {}
13 void Setup(double BreiteGrad);
14
20 void calculateRadMatrix(const float Step_deg, HemiGrid &Grid);
22 void setDiffusRadFraction(double fraction_of_diffus_rad) { mDiffusRadFraction = fraction_of_diffus_rad; }
24 void setLatidude(const double lat_degree) { Latitude = lat_degree * M_PI/180.; }
25 void setVegetationPeriod(int day_start, int day_end) { mMinDay=day_start; mMaxDay=day_end; }
26private:
27 int FTime;
28 double DayLength[366];
29 double RadExtraTerrestrisch[366];
30 double SolarConstant;
31 double Latitude;
32 int mMinDay;
33 int mMaxDay;
34 double mDiffusRadFraction;
35 void calcDay(int day);
37};
38
39#endif
Grid class (template).
Definition: grid.h:44
HemiGrid represents a grid covering the hemisphehre as well as some operations.
Definition: hemigrid.h:13
Handles sun and radiation calculations.
Definition: solarradiation.h:10
void setVegetationPeriod(int day_start, int day_end)
Definition: solarradiation.h:25
SolarRadiation()
Definition: solarradiation.h:12
void calculateRadMatrix(const float Step_deg, HemiGrid &Grid)
calculate radiation matrix.
Definition: solarradiation.cpp:53
void setLatidude(const double lat_degree)
set latitude in degree
Definition: solarradiation.h:24
void setDiffusRadFraction(double fraction_of_diffus_rad)
set fraction of diffuse radiation (1: only diffuse rad, 0: only direct rad)
Definition: solarradiation.h:22
void Setup(double BreiteGrad)
Definition: solarradiation.cpp:16