diff --git a/src/View/BoundaryCondition/Edit/Window.py b/src/View/BoundaryCondition/Edit/Window.py index 34c9e503..dba64da5 100644 --- a/src/View/BoundaryCondition/Edit/Window.py +++ b/src/View/BoundaryCondition/Edit/Window.py @@ -204,12 +204,17 @@ class EditBoundaryConditionWindow(PamhyrWindow): self.find(QAction, "action_generate_critical").triggered.connect( self.generate_critical ) + self.find(QAction, "action_increasing").triggered.connect( + self.make_increasing + ) if self._data.bctype != "ZD" or not self._data.has_node: self.find(QAction, "action_generate_uniform").setVisible(False) self.find(QAction, "action_generate_critical").setVisible(False) + self.find(QAction, "action_increasing").setVisible(False) else: self.find(QAction, "action_generate_uniform").setVisible(True) self.find(QAction, "action_generate_critical").setVisible(True) + self.find(QAction, "action_increasing").setVisible(True) self._table.dataChanged.connect(self.update) self._table.layoutChanged.connect(self.update) @@ -382,3 +387,21 @@ class EditBoundaryConditionWindow(PamhyrWindow): height[i] += z_min self._table.replace_data(height, q) return + + def make_increasing(self): + if self._data.has_node: + node = self._data.node + if node is None: + return + if len(self._table._data) < 2: + return + h = [self._data.get_i(0)[0]] + q = [self._data.get_i(0)[1]] + for i in range(len(self._table._data)): + if i == 0: + continue + row = self._data.get_i(i) + if row[1] > q[-1]: + h.append(row[0]) + q.append(row[1]) + self._table.replace_data(h, q) diff --git a/src/View/ui/EditBoundaryConditions.ui b/src/View/ui/EditBoundaryConditions.ui index c2c81378..f24120f4 100644 --- a/src/View/ui/EditBoundaryConditions.ui +++ b/src/View/ui/EditBoundaryConditions.ui @@ -75,6 +75,7 @@ + @@ -140,6 +141,14 @@ Generate rating curve as Q(z) = Sqrt(g*S(z)^3/L(z)) + + + Make increasing + + + Remove points to make the curve increasing + + diff --git a/src/View/ui/InitialConditions_Dialog_Generator_Height.ui b/src/View/ui/InitialConditions_Dialog_Generator_Height.ui index ee015bd1..414c3d12 100644 --- a/src/View/ui/InitialConditions_Dialog_Generator_Height.ui +++ b/src/View/ui/InitialConditions_Dialog_Generator_Height.ui @@ -22,7 +22,7 @@ - Upstream Height (m) + Upstream height (m) @@ -64,7 +64,7 @@ - Downstream Height (m) + Downstream height (m) @@ -95,7 +95,7 @@ - Generate Constant Discharge + Generate constant discharge