horizontal_problem.hpp 789 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef HORIZONTAL_PROBLEM_HPP
  2. #define HORIZONTAL_PROBLEM_HPP
  3. #include "geometry.hpp"
  4. #include "physics.hpp"
  5. namespace Kernel{
  6. /*! Class for Horzontal problem.
  7. *! Here we code only homogeneus Neumann conditions.
  8. */
  9. class HorizontalProblem{
  10. private:
  11. const Geometry* geometry;
  12. double* sup_M;
  13. double* diag_M;
  14. double* sub_M;
  15. double* F;
  16. void solve_system();
  17. void compute_error();
  18. public:
  19. //Input
  20. double* previous_hydr;
  21. double* l;
  22. double* Pl;
  23. double n1_init_hydr;
  24. //Output
  25. double* hydr;
  26. double total_error;
  27. double* error_x;
  28. HorizontalProblem();
  29. void init(const Geometry* geometry);
  30. void run();
  31. double get_error(size_t ix);
  32. };
  33. inline HorizontalProblem::HorizontalProblem(){
  34. }
  35. }
  36. #endif