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_diff(
const DiffDouble &p_head)->DiffDouble
const =0;
64 virtual double water_content(
const double &phead)
const =0;
65 virtual auto water_content_diff(
const DiffDouble &p_head)->DiffDouble
const =0;
71 template <
class Model>
86 double conductivity(
const double &p_head)
const override;
87 auto conductivity_diff(
const DiffDouble &p_head)->DiffDouble
const override;
89 double water_content(
const double &p_head)
const override;
90 auto water_content_diff(
const DiffDouble &p_head)->DiffDouble
const override;
111 T conductivity_(
const T &h)
const;
114 T water_content_(
const T &h)
const;
118 template <
class T> T Q_rel(
const T &h)
const;
119 template <
class T> T Q_rel_inv(
const T &q)
const;
146 T conductivity_(
const T &h)
const;
378 inline double cap_arg_max() const { return -0.765378926665788882857; }
381 T FK(const T &h) const
383 if (h>=0.0) return ( 2.0 );
384 return ( 2.0 / (1+h*h) );
388 T FQ(const T &h) const
390 static T pi_half =std::atan(1.0)*2;
391 if (h>=0.0) return ( 2.0*pi_half*pi_half );
393 return ( 2*pi_half*pi_half - a_tan*a_tan );
400 class HydroModel_linear
402 HydroModel_linear(ParameterHandler &prm) {};
406 T FK(const T &h) const {
411 T FQ(const T &h) const {
fadbad::B< double > DiffDouble
SoilModelImplBase< internal::Irmay > SoilModel_Irmay
SoilModelBase::DiffDouble DiffDouble
SoilModelImplBase< internal::VanGenuchten > SoilModel_VanGenuchten