mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +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 copy import copy
|
||||||
from tools import trace, timer
|
from tools import trace, timer
|
||||||
from Solver.Solvers import solver_type_list
|
from Solver.Solvers import solver_type_list
|
||||||
|
from Solver.RubarBE import Rubar3
|
||||||
|
|
||||||
from Model.Scenario import Scenario
|
from Model.Scenario import Scenario
|
||||||
from Model.Tools.PamhyrDB import SQLSubModel
|
from Model.Tools.PamhyrDB import SQLSubModel
|
||||||
@@ -296,14 +297,20 @@ class SolverParametersList(PamhyrModelList):
|
|||||||
scenario = data["scenario"]
|
scenario = data["scenario"]
|
||||||
loaded = data['loaded_pid']
|
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 = {}
|
new = {}
|
||||||
|
|
||||||
if scenario is None:
|
if scenario is None:
|
||||||
return new
|
return new
|
||||||
|
|
||||||
for solver in solvers:
|
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:
|
if solver not in solver_type_list:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -327,6 +334,32 @@ class SolverParametersList(PamhyrModelList):
|
|||||||
|
|
||||||
return new
|
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):
|
def _db_save(self, execute, data=None):
|
||||||
t = self._solver._type
|
t = self._solver._type
|
||||||
execute(
|
execute(
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ solver_long_name = {
|
|||||||
"adistswc": "Adis-TS_WC",
|
"adistswc": "Adis-TS_WC",
|
||||||
"adisttwc": "Adis-TT_WC",
|
"adisttwc": "Adis-TT_WC",
|
||||||
"rubarbe": "RubarBE",
|
"rubarbe": "RubarBE",
|
||||||
"rubar3": "Rubar3",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
solver_type_list = {
|
solver_type_list = {
|
||||||
@@ -47,5 +46,4 @@ solver_type_list = {
|
|||||||
"adistswc": AdisTSwc,
|
"adistswc": AdisTSwc,
|
||||||
"adisttwc": AdisTTwc,
|
"adisttwc": AdisTTwc,
|
||||||
"rubarbe": RubarBE,
|
"rubarbe": RubarBE,
|
||||||
"rubar3": Rubar3,
|
|
||||||
}
|
}
|
||||||
@@ -30,7 +30,7 @@ from platformdirs import user_cache_dir
|
|||||||
|
|
||||||
from Solver.AdisTS import AdisTS
|
from Solver.AdisTS import AdisTS
|
||||||
from Solver.Mage import Mage8
|
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 tools import logger_exception, pamhyr_db_need_update, timer
|
||||||
|
|
||||||
from PyQt5 import QtGui
|
from PyQt5 import QtGui
|
||||||
@@ -2082,7 +2082,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
|||||||
dialog.setFileMode(QFileDialog.FileMode.ExistingFile)
|
dialog.setFileMode(QFileDialog.FileMode.ExistingFile)
|
||||||
dialog.setDefaultSuffix(".BIN")
|
dialog.setDefaultSuffix(".BIN")
|
||||||
# dialog.setFilter(dialog.filter() | QtCore.QDir.Hidden)
|
# 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._study.filename is not None:
|
||||||
if self._last_solver is None:
|
if self._last_solver is None:
|
||||||
@@ -2102,7 +2102,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
|||||||
if ".BIN" in file_name[0]:
|
if ".BIN" in file_name[0]:
|
||||||
solver = Mage8("Mage8")
|
solver = Mage8("Mage8")
|
||||||
else:
|
else:
|
||||||
solver = Rubar3("Rubar3")
|
solver = RubarBE("RubarBE")
|
||||||
|
|
||||||
self.open_solver_results(
|
self.open_solver_results(
|
||||||
solver,
|
solver,
|
||||||
|
|||||||
+1
-17
@@ -428,15 +428,7 @@ class Config(SQL):
|
|||||||
new._cmd_solver = f"\"{path}{ext}\" @args @input"
|
new._cmd_solver = f"\"{path}{ext}\" @args @input"
|
||||||
self._solvers.append(new)
|
self._solvers.append(new)
|
||||||
|
|
||||||
# Rubar3
|
# RubarBE
|
||||||
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)
|
|
||||||
ctor = solver_type_list["rubarbe"]
|
ctor = solver_type_list["rubarbe"]
|
||||||
new = ctor("default-RubarBE")
|
new = ctor("default-RubarBE")
|
||||||
new._description = "Default Pamhyr2 RubarBE version"
|
new._description = "Default Pamhyr2 RubarBE version"
|
||||||
@@ -444,14 +436,6 @@ class Config(SQL):
|
|||||||
new._cmd_solver = f""""{path}" @args @input"""
|
new._cmd_solver = f""""{path}" @args @input"""
|
||||||
self._solvers.append(new)
|
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
|
# Backup
|
||||||
self.backup_enable = True
|
self.backup_enable = True
|
||||||
# self.backup_path = ""
|
# self.backup_path = ""
|
||||||
|
|||||||
Reference in new issue
Block a user