From e189ab69dc972dc3c746501f351d577dda0f93d5 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Tue, 29 Aug 2023 13:37:39 +0200 Subject: [PATCH] Mage: Add sediment parameter into solver parameter and update DB. --- .../SolverParameters/SolverParametersList.py | 53 +++++++++++++++++++ src/Model/Study.py | 2 +- src/Solver/Mage.py | 14 +++++ 3 files changed, 68 insertions(+), 1 deletion(-) diff --git a/src/Model/SolverParameters/SolverParametersList.py b/src/Model/SolverParameters/SolverParametersList.py index 18c45529..4aae2b37 100644 --- a/src/Model/SolverParameters/SolverParametersList.py +++ b/src/Model/SolverParameters/SolverParametersList.py @@ -100,6 +100,59 @@ class SolverParametersList(SQLSubModel): 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'") + if int(release) < 4: + solvers = execute("SELECT DISTINCT solver FROM solver_parameter") + + for solver in solvers: + if solver is not "mage8": + continue + + data = execute("SELECT ind, name, value " + + "FROM solver_parameter "+ + f"WHERE solver = '{solver}' " + + "ORDER BY ind ACS") + + execute( + "DELETE FROM solver_parameter " + + f"WHERE solver = '{solver}'" + ) + + insert = lambda name, value, ind: execute( + "INSERT INTO " + + "solver_parameter(ind, name, value, solver) "+ + "VALUES (" + + f"{ind}, " + + f"'{cls._sql_format(name)}', " + + f"'{cls._sql_format(value)}', " + + f"'{cls._sql_format(solver)}'" + + ")" + ) + + ind = 0 + lst = [] + for v in data: + insert(v[0], v[1], ind) + ind += 1 + + new = [ + ("mage_sediment_masse_volumique", "2650.0"), + ("mage_sediment_angle_repos", "40.0"), + ("mage_sediment_porosity", "0.40"), + ("mage_distance_han", "0.0"), + ("mage_distance_chargement_d50", "100.0"), + ("mage_distance_chargement_sigma", "100.0"), + ("mage_methode_modification_geometrie", "1"), + ("mage_shields_critique", "1"), + ("mage_shields_correction", "1"), + ("mage_capacite_solide", "1"), + ("mage_pas_de_temps_charriage", "1"), + ("mage_facteur_multiplicateur", "1.0"), + ] + + for v in new: + insert(v[0], v[1], ind) + ind += 1 + return cls._update_submodel(execute, version) @classmethod diff --git a/src/Model/Study.py b/src/Model/Study.py index 5b44d0a7..774a03d1 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.3" + self._version = "0.0.4" 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 d75fd6cb..8fdf25a0 100644 --- a/src/Solver/Mage.py +++ b/src/Solver/Mage.py @@ -455,6 +455,20 @@ class Mage8(Mage): i = names.index("mage_precision_reduction_factor_Q") lst.insert(i+1, ("mage_precision_reduction_factor_r", "1")) + # Mage parameter for sediment module (added in DB 0.0.4) + lst.append(("mage_sediment_masse_volumique", "2650.0")) + lst.append(("mage_sediment_angle_repos", "40.0")) + lst.append(("mage_sediment_porosity", "0.40")) + lst.append(("mage_distance_Han", "0.0")) + lst.append(("mage_distance_chargement_d50", "100.0")) + lst.append(("mage_distance_chargement_sigma", "100.0")) + lst.append(("mage_methode_modification_geometrie", "1")) + lst.append(("mage_shields_critique", "1")) + lst.append(("mage_shields_correction", "1")) + lst.append(("mage_capacite_solide", "1")) + lst.append(("mage_pas_de_temps_charriage", "1")) + lst.append(("mage_facteur_multiplicateur", "1.0")) + return lst ########## -- GitLab