overland.hpp 924 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef OVERLAND_HPP
  2. #define OVERLAND_HPP
  3. #include "geometry.hpp"
  4. #include "physics.hpp"
  5. namespace Kernel{
  6. class Overland{
  7. private:
  8. const Geometry* geometry;
  9. double* flux_soil;
  10. void compute_flux_soil();
  11. void apply_flow();
  12. void runoff_to_local_min();
  13. void basin_transfer();
  14. public:
  15. //Input
  16. double dt;
  17. double* init_hov;
  18. double** P;
  19. double* l;
  20. double* Pl;
  21. double* hydr;
  22. double n1_init_hov;
  23. double* previous_hov;
  24. //Output
  25. double* Psoil; //Own by Overland object
  26. double* hov;
  27. double* error_x;
  28. double total_error;
  29. Overland();
  30. void init(const Geometry* geometry);
  31. void run();
  32. };
  33. inline
  34. Overland::Overland(){
  35. }
  36. inline void
  37. Overland::init(const Geometry* geometry_){
  38. geometry=geometry_;
  39. Psoil=new double[geometry->nX];
  40. flux_soil=new double[geometry->nX];
  41. hov=new double[geometry->nX];
  42. }
  43. }
  44. #endif