From cd07f3aa8db6cdec7050a4b03ec62c15608e7696 Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Mon, 21 Aug 2023 10:55:27 +0200
Subject: [PATCH] Sediment: Add SL to geometry into DB and minor change.

---
 src/Model/Geometry/PointXYZ.py                     | 4 +++-
 src/Model/Geometry/ProfileXYZ.py                   | 4 +++-
 src/Model/SolverParameters/SolverParametersList.py | 7 +++++++
 src/Model/Study.py                                 | 2 +-
 src/Solver/Mage.py                                 | 4 ++--
 src/View/SolverParameters/translate.py             | 4 ++--
 6 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/src/Model/Geometry/PointXYZ.py b/src/Model/Geometry/PointXYZ.py
index 33a3bebf..19695c77 100644
--- a/src/Model/Geometry/PointXYZ.py
+++ b/src/Model/Geometry/PointXYZ.py
@@ -44,7 +44,9 @@ class PointXYZ(Point, SQLSubModel):
             y INTEGER NOT NULL,
             z INTEGER NOT NULL,
             profile INTEGER NOT NULL,
-            FOREIGN KEY(profile) REFERENCES profileXYZ(id)
+            sl INTEGER,
+            FOREIGN KEY(profile) REFERENCES profileXYZ(id),
+            FOREIGN KEY(sl) REFERENCES sedimentary_layer(id)
           )
         """)
 
diff --git a/src/Model/Geometry/ProfileXYZ.py b/src/Model/Geometry/ProfileXYZ.py
index 12c4ea77..e818eabc 100644
--- a/src/Model/Geometry/ProfileXYZ.py
+++ b/src/Model/Geometry/ProfileXYZ.py
@@ -76,7 +76,9 @@ class ProfileXYZ(Profile, SQLSubModel):
             num INTEGER NOT NULL,
             code1 INTEGER NOT NULL,
             code2 INTEGER NOT NULL,
-            FOREIGN KEY(reach) REFERENCES river_reach(id)
+            sl INTEGER,
+            FOREIGN KEY(reach) REFERENCES river_reach(id),
+            FOREIGN KEY(sl) REFERENCES sedimentary_layer(id)
           )
         """)
 
diff --git a/src/Model/SolverParameters/SolverParametersList.py b/src/Model/SolverParameters/SolverParametersList.py
index a6471356..ce62ff7c 100644
--- a/src/Model/SolverParameters/SolverParametersList.py
+++ b/src/Model/SolverParameters/SolverParametersList.py
@@ -93,6 +93,13 @@ class SolverParametersList(SQLSubModel):
 
     @classmethod
     def _sql_update(cls, execute, version):
+        major, minor, release = version.strip().split(".")
+
+        if major == minor == "0":
+            if int(release) < 3:
+                execute(f"UPDATE solver_parameter SET name='mage_implicitation' WHERE name='mage_implication'")
+                execute(f"UPDATE solver_parameter SET name='mage_iteration_type' WHERE name='mage_iter_type'")
+
         return cls._update_submodel(execute, version)
 
     @classmethod
diff --git a/src/Model/Study.py b/src/Model/Study.py
index c907da3e..5b44d0a7 100644
--- a/src/Model/Study.py
+++ b/src/Model/Study.py
@@ -40,7 +40,7 @@ class Study(SQLModel):
 
     def __init__(self, filename = None, init_new = True):
         # Metadata
-        self._version = "0.0.2"
+        self._version = "0.0.3"
         self.creation_date = datetime.now()
         self.last_modification_date = datetime.now()
         self.last_save_date = datetime.now()
diff --git a/src/Solver/Mage.py b/src/Solver/Mage.py
index 81f99722..77cc83d3 100644
--- a/src/Solver/Mage.py
+++ b/src/Solver/Mage.py
@@ -61,11 +61,11 @@ class Mage(AbstractSolver):
             ("mage_timestep_tra", "3600"),
             ("mage_timestep_bin", "0"),
             # ("mage_timestep_melissa", "0"),
-            ("mage_implication", "0.70"),
+            ("mage_implicitation", "0.70"),
             ("mage_continuity_discretization", "S"),
             ("mage_qsj_discretization", "B"),
             ("mage_stop_criterion_iterations", "R"),
-            ("mage_iter_type", "0"),
+            ("mage_iteration_type", "0"),
             ("mage_smooth_coef", "0"),
             ("mage_cfl_max", "-1."),
             ("mage_min_height", "0.1"),
diff --git a/src/View/SolverParameters/translate.py b/src/View/SolverParameters/translate.py
index 76cb70ac..3d07e6b3 100644
--- a/src/View/SolverParameters/translate.py
+++ b/src/View/SolverParameters/translate.py
@@ -59,11 +59,11 @@ def init():
         "mage_min_timestep": _translate("SolverParameters", "Minimum timestep (second)"),
         "mage_timestep_tra": _translate("SolverParameters", "Time step of writing on .TRA"),
         "mage_timestep_bin": _translate("SolverParameters", "Time step of writing on .BIN"),
-        "mage_implication": _translate("SolverParameters", "Implicitation parameter"),
+        "mage_implicitation": _translate("SolverParameters", "Implicitation parameter"),
         "mage_continuity_discretization": _translate("SolverParameters", "Continuity discretization type (S/L)"),
         "mage_qsj_discretization": _translate("SolverParameters", "QSJ discretization (A/B)"),
         "mage_stop_criterion_iterations": _translate("SolverParameters", "Stop criterion iterations (G/A/R)"),
-        "mage_iter_type": _translate("SolverParameters", "Iteration type"),
+        "mage_iteration_type": _translate("SolverParameters", "Iteration type"),
         "mage_smooth_coef": _translate("SolverParameters", "Smoothing coefficient"),
         "mage_cfl_max": _translate("SolverParameters", "Maximun accepted number of CFL"),
         "mage_min_height": _translate("SolverParameters", "Minimum water height (meter)"),
-- 
GitLab