8 #ifndef _HYDRO_FUNCTIONS_HH
9 #define _HYDRO_FUNCTIONS_HH
13 template <
class T>
class B;
61 virtual double conductivity(
const double &phead)
const =0;
71 template <
class Model>
82 double conductivity(
const double &p_head)
const override;
113 template <
class T> T
Q_rel(
const T &h)
const;
114 template <
class T> T
Q_rel_inv(
const T &q)
const;
373 inline double cap_arg_max() const { return -0.765378926665788882857; }
376 T FK(const T &h) const
378 if (h>=0.0) return ( 2.0 );
379 return ( 2.0 / (1+h*h) );
383 T FQ(const T &h) const
385 static T pi_half =std::atan(1.0)*2;
386 if (h>=0.0) return ( 2.0*pi_half*pi_half );
388 return ( 2*pi_half*pi_half - a_tan*a_tan );
395 class HydroModel_linear
397 HydroModel_linear(ParameterHandler &prm) {};
401 T FK(const T &h) const {
406 T FQ(const T &h) const {
virtual double conductivity(const double &phead) const =0
T conductivity_(const T &h) const
k(h)=t(h)**(0.5)* (1- ((h)**n/(1+(h)**n)) **m)**2
T Q_rel(const T &h) const
void reset_(SoilData soil)
fadbad::B< double > DiffDouble
T conductivity_(const T &h) const
void reset(SoilData data) override
double water_content(const double &p_head) const override
T water_content_(const T &h) const
virtual double water_content(const double &phead) const =0
double conductivity(const double &p_head) const override
SoilModelImplBase< internal::Irmay > SoilModel_Irmay
virtual void reset(SoilData soil)=0
SoilModelBase::DiffDouble DiffDouble
SoilModelImplBase< internal::VanGenuchten > SoilModel_VanGenuchten
T Q_rel_inv(const T &q) const