mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-29 19:10:42 +01:00
Rubar3: remove it from the interface, RubarBE takes the parameters of Rubar3 studies when they are opened
This commit is contained in:
1 parent
70a26d0036
commit
618477b384
4 files changed
+39
-24
No files matched your search
@@ -19,6 +19,7 @@
|
||||
from copy import copy
|
||||
from tools import trace, timer
|
||||
from Solver.Solvers import solver_type_list
|
||||
from Solver.RubarBE import Rubar3
|
||||
|
||||
from Model.Scenario import Scenario
|
||||
from Model.Tools.PamhyrDB import SQLSubModel
|
||||
@@ -296,14 +297,20 @@ class SolverParametersList(PamhyrModelList):
|
||||
scenario = data["scenario"]
|
||||
loaded = data['loaded_pid']
|
||||
|
||||
solvers = execute("SELECT DISTINCT solver FROM solver_parameter")
|
||||
solvers = [
|
||||
row[0] for row in
|
||||
execute("SELECT DISTINCT solver FROM solver_parameter")
|
||||
]
|
||||
new = {}
|
||||
|
||||
if scenario is None:
|
||||
return new
|
||||
|
||||
for solver in solvers:
|
||||
solver = solver[0]
|
||||
if solver == "rubar3" and "rubarbe" not in solvers:
|
||||
new["rubarbe"] = cls._db_load_rubar3(execute, data)
|
||||
continue
|
||||
|
||||
if solver not in solver_type_list:
|
||||
continue
|
||||
|
||||
@@ -327,6 +334,32 @@ class SolverParametersList(PamhyrModelList):
|
||||
|
||||
return new
|
||||
|
||||
@classmethod
|
||||
def _db_load_rubar3(cls, execute, data):
|
||||
"""Rubar3 is no longer offered: RubarBE, its generic version,
|
||||
takes the parameters of a Rubar3 study (same rubarbe_* keys,
|
||||
RubarBE reads them the same way). Missing parameters take the
|
||||
Rubar3 defaults (no sediment transport), so that the
|
||||
computation is unchanged. New parameters (new ids): saved as
|
||||
RubarBE ones with the study, the Rubar3 rows are then ignored"""
|
||||
status = data["status"]
|
||||
n = cls(solver_type=solver_type_list["rubarbe"], status=status)
|
||||
|
||||
data['solver'] = "rubar3"
|
||||
lst = Parameter._db_load(execute, data)
|
||||
|
||||
n._lst = [
|
||||
Parameter(name=p.name, value=p.value, status=status)
|
||||
for _, p in sorted(lst, key=lambda t: t[0])
|
||||
]
|
||||
names = {p.name for p in n._lst}
|
||||
n._lst += [
|
||||
Parameter(name=name, value=value, status=status)
|
||||
for name, value in Rubar3.default_parameters()
|
||||
if name not in names
|
||||
]
|
||||
return n
|
||||
|
||||
def _db_save(self, execute, data=None):
|
||||
t = self._solver._type
|
||||
execute(
|
||||
|
||||
@@ -36,7 +36,6 @@ solver_long_name = {
|
||||
"adistswc": "Adis-TS_WC",
|
||||
"adisttwc": "Adis-TT_WC",
|
||||
"rubarbe": "RubarBE",
|
||||
"rubar3": "Rubar3",
|
||||
}
|
||||
|
||||
solver_type_list = {
|
||||
@@ -47,5 +46,4 @@ solver_type_list = {
|
||||
"adistswc": AdisTSwc,
|
||||
"adisttwc": AdisTTwc,
|
||||
"rubarbe": RubarBE,
|
||||
"rubar3": Rubar3,
|
||||
}
|
||||
@@ -30,7 +30,7 @@ from platformdirs import user_cache_dir
|
||||
|
||||
from Solver.AdisTS import AdisTS
|
||||
from Solver.Mage import Mage8
|
||||
from Solver.RubarBE import Rubar3
|
||||
from Solver.RubarBE import RubarBE
|
||||
from tools import logger_exception, pamhyr_db_need_update, timer
|
||||
|
||||
from PyQt5 import QtGui
|
||||
@@ -2082,7 +2082,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
||||
dialog.setFileMode(QFileDialog.FileMode.ExistingFile)
|
||||
dialog.setDefaultSuffix(".BIN")
|
||||
# dialog.setFilter(dialog.filter() | QtCore.QDir.Hidden)
|
||||
dialog.setNameFilters(['Mage (*.BIN)', 'Rubar3 (profil.*)'])
|
||||
dialog.setNameFilters(['Mage (*.BIN)', 'RubarBE (profil.*)'])
|
||||
|
||||
if self._study.filename is not None:
|
||||
if self._last_solver is None:
|
||||
@@ -2102,7 +2102,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
||||
if ".BIN" in file_name[0]:
|
||||
solver = Mage8("Mage8")
|
||||
else:
|
||||
solver = Rubar3("Rubar3")
|
||||
solver = RubarBE("RubarBE")
|
||||
|
||||
self.open_solver_results(
|
||||
solver,
|
||||
|
||||
+1
-17
@@ -428,15 +428,7 @@ class Config(SQL):
|
||||
new._cmd_solver = f"\"{path}{ext}\" @args @input"
|
||||
self._solvers.append(new)
|
||||
|
||||
# Rubar3
|
||||
ctor = solver_type_list["rubar3"]
|
||||
new = ctor("default-Rubar3")
|
||||
new._description = "Default Pamhyr2 Rubar 3 version"
|
||||
path = os.path.join("@install_dir", "rubar", f"rubarbe{ext}")
|
||||
new._cmd_solver = f""""{path}" @args @input"""
|
||||
self._solvers.append(new)
|
||||
|
||||
# RubarBE (same executable as Rubar3, see notice §10.3)
|
||||
# RubarBE
|
||||
ctor = solver_type_list["rubarbe"]
|
||||
new = ctor("default-RubarBE")
|
||||
new._description = "Default Pamhyr2 RubarBE version"
|
||||
@@ -444,14 +436,6 @@ class Config(SQL):
|
||||
new._cmd_solver = f""""{path}" @args @input"""
|
||||
self._solvers.append(new)
|
||||
|
||||
# Mage fake 7
|
||||
# ctor = solver_type_list["mage_fake7"]
|
||||
# new = ctor("default-mage-fake-7")
|
||||
# new._description = "Default Pamhyr2 mage fake version 7"
|
||||
# new._cmd_solver = f"""\
|
||||
# "@install_dir/mage8/mage_as7{ext}" @args @input"""
|
||||
# self._solvers.append(new)
|
||||
|
||||
# Backup
|
||||
self.backup_enable = True
|
||||
# self.backup_path = ""
|
||||
|
||||
Reference in new issue
Block a user