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;
62 virtual auto conductivity(
const DiffDouble &p_head)->DiffDouble
const =0;
64 virtual double water_content(
const double &phead)
const =0;
65 virtual auto water_content(
const DiffDouble &p_head)->DiffDouble
const =0;
71 template <
class Model>
82 double conductivity(
const double &p_head)
const override;
83 auto conductivity(
const DiffDouble &p_head)->DiffDouble
const override;
85 double water_content(
const double &p_head)
const override;
86 auto water_content(
const DiffDouble &p_head)->DiffDouble
const override;
106 T conductivity_(
const T &h)
const;
109 T water_content_(
const T &h)
const;
113 template <
class T> T Q_rel(
const T &h)
const;
114 template <
class T> T Q_rel_inv(
const T &q)
const;
141 T conductivity_(
const T &h)
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 {
fadbad::B< double > DiffDouble
SoilModelImplBase< internal::Irmay > SoilModel_Irmay
SoilModelBase::DiffDouble DiffDouble
SoilModelImplBase< internal::VanGenuchten > SoilModel_VanGenuchten