40 friend class ::WaterCycle;
43 void setSnow(
double snow_mm) { mSnowPack = snow_mm; }
45 double flow(
const double &preciptitation_mm,
const double &temperature);
47 inline double add(
const double &preciptitation_mm,
const double &temperature);
51 double snowDepth()
const {
return mSnowPack / mSnowDensity; }
55 static double mSnowTemperature;
56 static double mSnowDensity;
72 void setStandParameters(
const double LAIneedle,
const double LAIbroadleave,
const double maxCanopyConductance);
75 double flow(
const double &preciptitation_mm);
86 double mLAIBroadleaved;
88 double mAvgMaxCanopyConductance;
95 static double mNeedleFactor;
96 static double mDecidousFactor;
97 friend class ::WaterCycle;
111 void setContent(
double content,
double snow_mm) { mContent = content; mSnowPack.
setSnow(snow_mm); }
119 const double &
psi_kPa(
const int doy)
const {
return mPsi[doy]; }
130 double estPsiMin(
int phenologyGroup)
const;
135 struct RUSpeciesShares {
138 RUSpeciesShares(
const int n_species):ground_vegetation_share(0.), adult_trees_share(0.) { lai_share.resize(n_species); }
139 QVector<double> lai_share;
140 double ground_vegetation_share;
141 double adult_trees_share;
146 void calculatePsiMin()
const;
149 inline double psiFromHeight(
const double mm)
const;
150 inline double heightFromPsi(
const double psi_kpa)
const;
151 inline double calculateBaseSoilAtmosphereResponse(
const double psi_kpa,
const double vpd_kpa,
const double psi_min,
const double vpd_exp);
161 double mFieldCapacity;
162 double mPermanentWiltingPoint;
164 void getStandValues(RUSpeciesShares &species_shares);
165 inline double calculateSoilAtmosphereResponse(RUSpeciesShares &species_share,
const double psi_kpa,
const double vpd_kpa);
167 double mLAIBroadleaved;
168 double mCanopyConductance;
169 double mEffectiveLAI;
171 double mGroundVegetationLAI;
172 double mGroundVegetationPsiMin;
178 double mMeanSoilWaterContent;
179 double mMeanGrowingSeasonSWC;
183 static QHash<int, double> mEstPsi;
185 friend class ::WaterOut;
ResourceUnit is the spatial unit that encapsulates a forest stand and links to several environmental ...
Definition: resourceunit.h:49
Canopy handles the the throughfall and evaporation from the forest canopy.
Definition: watercycle.h:67
double avgMaxCanopyConductance() const
averaged maximum canopy conductance of current species distribution (m/s)
Definition: watercycle.h:81
double evapotranspiration3PG(const ClimateDay *climate, const double daylength_h, const double combined_response)
evapotranspiration from soil (mm). returns
Definition: watercycle.cpp:610
void setStandParameters(const double LAIneedle, const double LAIbroadleave, const double maxCanopyConductance)
Definition: watercycle.cpp:593
double flow(const double &preciptitation_mm)
process the canopy layer. returns the amount of precipitation that leaves the canopy-layer.
Definition: watercycle.cpp:543
double evapotranspirationBGC(const ClimateDay *climate, const double daylength_h)
evapotranspiration from soil
const double * referenceEvapotranspiration() const
monthly reference ET (see Adair et al 2008)
Definition: watercycle.h:82
double evaporationCanopy() const
evaporation from canopy (mm)
Definition: watercycle.h:80
void setup()
setup and load parameter values
Definition: watercycle.cpp:588
double interception() const
mm water that is intercepted by the crown
Definition: watercycle.h:79
The Permafrost class simulates the permafrost layer of a resource unit.
Definition: permafrost.h:20
SnowPack handles the snow layer.
Definition: watercycle.h:39
double add(const double &preciptitation_mm, const double &temperature)
additional precipitation (e.g. non evaporated water of canopy interception).
Definition: watercycle.cpp:527
double snowDepth() const
depth of snow (m)
Definition: watercycle.h:51
void setSnow(double snow_mm)
Definition: watercycle.h:43
double snowPack() const
current snowpack (mm water)
Definition: watercycle.h:49
SnowPack()
Definition: watercycle.h:42
double flow(const double &preciptitation_mm, const double &temperature)
process the snow layer. Returns the mm of preciptitation/melt water that leaves the snow layer.
Definition: watercycle.cpp:506
WaterCycleData is a data transfer container for water-related details.
Definition: watercycle.h:191
double snow_cover[366]
height of snow cover [mm water column]
Definition: watercycle.h:196
double water_to_ground[366]
daily amount of water that actually reaches the ground (i.e., after interception)
Definition: watercycle.h:194
simulates the water cycle on a ResourceUnit.
Definition: watercycle.h:106
void setContent(double content, double snow_mm)
Definition: watercycle.h:111
const double & psi_kPa(const int doy) const
soil water potential for the day 'doy' (0-index) in kPa
Definition: watercycle.h:119
void run()
run the current year
Definition: watercycle.cpp:289
static void resetPsiMin()
reset/clear the psi-min values for establishment
Definition: watercycle.cpp:420
double effectiveLAI() const
effective LAI (including saplings and ground vegetation)
Definition: watercycle.h:124
double meanGrowingSeasonSWC() const
mean soil water content (mm) during the growing season (fixed: april - september)
Definition: watercycle.h:126
double waterHoldingCapacity() const
water holding capacity from (default) -15kpa to -4000 kpa (permanent wilting point)
Definition: watercycle.h:118
WaterCycle()
Definition: watercycle.cpp:53
const Water::Permafrost * permafrost() const
Definition: watercycle.h:132
double currentSnowPack() const
current water stored as snow (mm water)
Definition: watercycle.h:122
double soilDepth() const
soil depth in mm
Definition: watercycle.h:120
double fieldCapacity() const
field capacity (mm)
Definition: watercycle.h:116
const double * referenceEvapotranspiration() const
monthly values for PET (mm sum)
Definition: watercycle.h:128
~WaterCycle()
Definition: watercycle.cpp:63
void setup(const ResourceUnit *ru)
Definition: watercycle.cpp:69
double canopyConductance() const
current canopy conductance (LAI weighted CC of available tree species) (m/s)
Definition: watercycle.h:123
double estPsiMin(int phenologyGroup) const
psi min values for establishment for a phenology type
Definition: watercycle.cpp:437
double currentContent() const
current water content in mm
Definition: watercycle.h:121
double meanSoilWaterContent() const
mean of annual soil water content (mm)
Definition: watercycle.h:125
Definition: waterout.h:26
Water contains helper classes for the water cycle calculations.
Definition: permafrost.cpp:13
current climate variables of a day.
Definition: climate.h:28