input_physics.hpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #ifndef QT_INPUT_PHYSICS_HPP
  2. #define QT_INPUT_PHYSICS_HPP
  3. #include <iostream>
  4. #include <QLabel>
  5. #include <QWidget>
  6. #include <QGroupBox>
  7. #include <QComboBox>
  8. #include <QHBoxLayout>
  9. #include <QVBoxLayout>
  10. #include <QLineEdit>
  11. #include <QDoubleValidator>
  12. #include "../physics.hpp"
  13. using namespace std;
  14. static const double def_g=9.81;
  15. static const double def_rho=1e3;
  16. static const double def_phi=3e-1;
  17. static const double def_k0=3e-5;
  18. static const double def_nivrivsat=1e-2;
  19. //Brooks & Corey
  20. static const double BC_psat=-2000;
  21. static const double BC_sres=0;
  22. static const double BC_lambda=3;
  23. static const double BC_alpha=11;
  24. static const size_t max_model_parameters=6;
  25. class QtInputPhysics:public QWidget{
  26. Q_OBJECT
  27. private:
  28. QGroupBox* phy_common_box;
  29. QGroupBox* phy_model_box;
  30. QComboBox* phy_model_selection_box;
  31. QLabel* g_label;
  32. QLabel* rho_label;
  33. QLabel* phi_label;
  34. QLabel* k0_label;
  35. QLabel* nivrivsat_label;
  36. QLabel* model_label[max_model_parameters];
  37. QLineEdit* g_input;
  38. QLineEdit* rho_input;
  39. QLineEdit* phi_input;
  40. QLineEdit* k0_input;
  41. QLineEdit* nivrivsat_input;
  42. QLineEdit* model_input[max_model_parameters];
  43. QHBoxLayout* base_layout;
  44. QVBoxLayout* phy_common_layout;
  45. QVBoxLayout* phy_model_layout;
  46. QSpacerItem* phy_model_layout_spacer;
  47. QDoubleValidator* double_validator;
  48. QDoubleValidator* positive_double_validator;
  49. size_t nb_model_parameters;
  50. public:
  51. QtInputPhysics();
  52. ~QtInputPhysics();
  53. private slots:
  54. void modelChoosed(int index);
  55. };
  56. #endif