From 65cd92d79333c9b6c54c60b71a4c5f16de2d9791 Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Wed, 14 Jun 2023 11:15:15 +0200
Subject: [PATCH] SolverParameters: Add defautl and mage parameters.

---
 src/Solver/ASolver.py                  |  8 +++++++-
 src/Solver/Mage.py                     | 27 ++++++++++++++++++++++++--
 src/View/SolverParameters/translate.py | 23 +++++++++++++++++++++-
 3 files changed, 54 insertions(+), 4 deletions(-)

diff --git a/src/Solver/ASolver.py b/src/Solver/ASolver.py
index 3f2491c7..8510d41a 100644
--- a/src/Solver/ASolver.py
+++ b/src/Solver/ASolver.py
@@ -45,7 +45,13 @@ class AbstractSolver(object):
 
     @classmethod
     def default_parameters(cls):
-        return []
+        lst = [
+            ("all_time_init", "00:00:00:00"),
+            ("all_time_final", "01:00:00:00"),
+            ("all_time_step", "300"),
+        ]
+
+        return lst
 
     @property
     def name(self):
diff --git a/src/Solver/Mage.py b/src/Solver/Mage.py
index 94c1e7a0..ec212361 100644
--- a/src/Solver/Mage.py
+++ b/src/Solver/Mage.py
@@ -17,7 +17,24 @@ class Mage(GenericSolver):
         lst = super(Mage, cls).default_parameters()
 
         lst += [
-            ("mage_time_step", "300"),
+            ("mage_time_step_tra", "3600"),
+            ("mage_time_step_bin", "0"),
+            ("mage_param_impli", "0.70"),
+            ("mage_iter_type", "0"),
+            ("mage_smooth_coef", "0"),
+            ("mage_stream_number", "-1."),
+            ("mage_water_minimum_height", "0.1"),
+            ("mage_maximun_number_iter", "10"),
+            ("mage_minimal_time_step", "1"),
+            ("mage_time_step_reduction_factor", "2"),
+            ("mage_precision_reduction_factor_Z", "1"),
+            ("mage_precision_reduction_factor_Q", "1"),
+            ("mage_iter_num_max_precision", "99"),
+            ("mage_error_bound_mesh_elevation", "-1"),
+            ("mage_maximun_froude_number", "2"),
+            ("mage_volume_report_monitoring_yn", "y"),
+            ("mage_divergence_relative_error", "0.001"),
+            ("mage_minimal_reach_volume_error", "1000"),
         ]
 
         return lst
@@ -32,8 +49,8 @@ class Mage7(Mage):
     @classmethod
     def default_parameters(cls):
         lst = super(Mage7, cls).default_parameters()
-        return lst
 
+        return lst
 
 
 class Mage8(Mage):
@@ -45,4 +62,10 @@ class Mage8(Mage):
     @classmethod
     def default_parameters(cls):
         lst = super(Mage8, cls).default_parameters()
+
+        # Insert new parameters at specific position
+        names = list(map(lambda t: t[0], lst))
+        i = names.index("mage_precision_reduction_factor_Q")
+        lst.insert(i+1, ("mage_precision_reduction_factor_r", "1"))
+
         return lst
diff --git a/src/View/SolverParameters/translate.py b/src/View/SolverParameters/translate.py
index 1b394212..1a34a0e0 100644
--- a/src/View/SolverParameters/translate.py
+++ b/src/View/SolverParameters/translate.py
@@ -36,5 +36,26 @@ def init():
 
     global names
     names = {
-        "mage_time_step": _translate("SolverParameters", "Time step in second")
+        "all_time_init": _translate("SolverParameters", "Initial time (jj:hh:mm:ss)"),
+        "all_time_final": _translate("SolverParameters", "Final time (jj:hh:mm:ss)"),
+        "all_time_step": _translate("SolverParameters", "Time step (second)"),
+        "mage_param_impli": _translate("SolverParameters", "Implicitation parameter"),
+        "mage_time_step_tra": _translate("SolverParameters", "Time step of writing on .TRA"),
+        "mage_time_step_bin": _translate("SolverParameters", "Time step of writing on .BIN"),
+        "mage_iter_type": _translate("SolverParameters", "Iteration type"),
+        "mage_smooth_coef": _translate("SolverParameters", "Smoothing coefficient"),
+        "mage_stream_number": _translate("SolverParameters", "Maximun accepted number of stream"),
+        "mage_water_minimum_height": _translate("SolverParameters", "Minimum water height (meter)"),
+        "mage_maximun_number_iter": _translate("SolverParameters", "Maximun number of iterations (< 100)"),
+        "mage_minimal_time_step": _translate("SolverParameters", "Minimum time step (second)"),
+        "mage_time_step_reduction_factor": _translate("SolverParameters", "Reduction factor of time step"),
+        "mage_iter_num_max_precision": _translate("SolverParameters", "Number of iteration at maximum precision"),
+        "mage_precision_reduction_factor_Z": _translate("SolverParameters", "Reduction precision factor of Z"),
+        "mage_precision_reduction_factor_Q": _translate("SolverParameters", "Reduction precision factor of Q"),
+        "mage_precision_reduction_factor_r": _translate("SolverParameters", "Reduction precision factor of residue"),
+        "mage_error_bound_mesh_elevation": _translate("SolverParameters", "Error bound for mesh elevation"),
+        "mage_maximun_froude_number": _translate("SolverParameters", "Maximum accepted Froude number"),
+        "mage_volume_report_monitoring_yn": _translate("SolverParameters", "Volume report monitoring (Y/N)"),
+        "mage_divergence_relative_error": _translate("SolverParameters", "Divergence weir for relative error in volume"),
+        "mage_minimal_reach_volume_error": _translate("SolverParameters", "Minimum reach volume for error consideration"),
     }
-- 
GitLab