all_vertical_richards.hpp 805 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef ALL_VERTICAL_RICHARDS_HPP
  2. #define ALL_VERTICAL_RICHARDS_HPP
  3. #include "geometry.hpp"
  4. #include "richards_evolutive_time.hpp"
  5. namespace Kernel{
  6. class AllVerticalRichards{
  7. private:
  8. const Geometry* geometry;
  9. bool* indice_x_Richards;
  10. RichardsEvolutiveTime* richards_evolutive_time;
  11. public:
  12. //Input
  13. double dt;
  14. double** init_P; //P_0
  15. double** previous_P; //P_{k-1}
  16. double* hydr;
  17. double* l;
  18. double* Pl;
  19. double* Psoil;
  20. //Output
  21. double** P; //P_k
  22. double* hsat;
  23. bool has_converged;
  24. AllVerticalRichards();
  25. void init(const Geometry* geometry);
  26. void init_indice_x_Richards();
  27. void compute_hsat();
  28. void run();
  29. };
  30. inline
  31. AllVerticalRichards::AllVerticalRichards(){
  32. richards_evolutive_time=nullptr;
  33. }
  34. }
  35. #endif