mirror of https://gitlab.com/pamhyr/pamhyr2
RubarBE (Rubar3): Add minimal rubar3.
parent
7ebb683fac
commit
c698f2af2b
|
|
@ -30,13 +30,13 @@ from Model.Results.River.River import River, Reach, Profile
|
|||
logger = logging.getLogger()
|
||||
|
||||
|
||||
class RubarBE(CommandLineSolver):
|
||||
_type = "rubarbe"
|
||||
class Rubar3(CommandLineSolver):
|
||||
_type = "rubar3"
|
||||
|
||||
def __init__(self, name):
|
||||
super(RubarBE, self).__init__(name)
|
||||
super(Rubar3, self).__init__(name)
|
||||
|
||||
self._type = "rubarbe"
|
||||
self._type = "rubar3"
|
||||
|
||||
self._cmd_input = ""
|
||||
self._cmd_solver = "@path @input -o @output"
|
||||
|
|
@ -44,9 +44,9 @@ class RubarBE(CommandLineSolver):
|
|||
|
||||
@classmethod
|
||||
def default_parameters(cls):
|
||||
lst = super(RubarBE, cls).default_parameters()
|
||||
# lst = super(Rubar3, cls).default_parameters()
|
||||
|
||||
lst += [
|
||||
lst = [
|
||||
("rubarbe_cfl", "0.50000E+00"),
|
||||
("rubarbe_condam", "1"),
|
||||
("rubarbe_condav", "3"),
|
||||
|
|
@ -60,10 +60,10 @@ class RubarBE(CommandLineSolver):
|
|||
("rubarbe_tinit", "000:00:00:00"),
|
||||
("rubarbe_tmax", "999:99:99:00"),
|
||||
("rubarbe_tiopdt", "000:00:00:00"),
|
||||
("rubarbe_dt", "3000.0"),
|
||||
("rubarbe_dt", "5.0"),
|
||||
("rubarbe_ts", "999:99:99:00"),
|
||||
("rubarbe_dtsauv", "999:99:99:00"),
|
||||
("rubarbe_psave", "999:99:99:00"),
|
||||
("rubarbe_dtsauv", "00:00:00:05"),
|
||||
("rubarbe_psave", "00:00:00:05"),
|
||||
("rubarbe_fdeb1", "1"),
|
||||
("rubarbe_fdeb2", "10"),
|
||||
("rubarbe_fdeb3", "100"),
|
||||
|
|
@ -119,21 +119,21 @@ class RubarBE(CommandLineSolver):
|
|||
##########
|
||||
|
||||
def cmd_args(self, study):
|
||||
lst = super(RubarBE, self).cmd_args(study)
|
||||
lst = super(Rubar3, self).cmd_args(study)
|
||||
|
||||
return lst
|
||||
|
||||
def input_param(self):
|
||||
name = self._study.name
|
||||
return f"{name}.REP"
|
||||
return f"{name}"
|
||||
|
||||
def output_param(self):
|
||||
name = self._study.name
|
||||
return f"{name}.BIN"
|
||||
return f"{name}"
|
||||
|
||||
def log_file(self):
|
||||
name = self._study.name
|
||||
return f"{name}.TRA"
|
||||
return f"{name}"
|
||||
|
||||
def export(self, study, repertory, qlog=None):
|
||||
self._study = study
|
||||
|
|
@ -145,6 +145,10 @@ class RubarBE(CommandLineSolver):
|
|||
self._export_mail(study, repertory, qlog, name=name)
|
||||
self._export_condin(study, repertory, qlog, name=name)
|
||||
self._export_stricklers(study, repertory, qlog, name=name)
|
||||
self._export_hydro(study, repertory, qlog, name=name)
|
||||
self._export_condav(study, repertory, qlog, name=name)
|
||||
|
||||
return True
|
||||
|
||||
def _export_donnee(self, study, repertory, qlog, name="0"):
|
||||
if qlog is not None:
|
||||
|
|
@ -168,6 +172,9 @@ class RubarBE(CommandLineSolver):
|
|||
name = param.name
|
||||
value = param.value
|
||||
|
||||
if "all_" in name:
|
||||
continue
|
||||
|
||||
if value != "":
|
||||
# Value format
|
||||
if value.count(':') == 3:
|
||||
|
|
@ -276,7 +283,9 @@ class RubarBE(CommandLineSolver):
|
|||
if label[0] == "r":
|
||||
label = label[1].upper()
|
||||
else:
|
||||
label = lable[0]
|
||||
label = label[1].upper()
|
||||
else:
|
||||
label = " "
|
||||
|
||||
y = point.y
|
||||
z = point.z
|
||||
|
|
@ -392,7 +401,7 @@ class RubarBE(CommandLineSolver):
|
|||
l_h_s = self._export_condin_profile_height_speed(last, data)
|
||||
|
||||
# First mail
|
||||
f.write(f"{1:>5} {f_h_s[0]} {f_h_s[1]}")
|
||||
f.write(f"{1:>5} {f_h_s[0]} {f_h_s[1]}\n")
|
||||
|
||||
ind = 2
|
||||
it = iter(profiles)
|
||||
|
|
@ -418,7 +427,7 @@ class RubarBE(CommandLineSolver):
|
|||
ind += 1
|
||||
|
||||
# Last mail
|
||||
f.write(f"{ind:>5} {f_h_s[0]} {f_h_s[1]}")
|
||||
f.write(f"{ind:>5} {f_h_s[0]} {f_h_s[1]}\n")
|
||||
|
||||
def _export_condin_init_data(self, ics):
|
||||
data = {}
|
||||
|
|
@ -435,7 +444,66 @@ class RubarBE(CommandLineSolver):
|
|||
z = data[profile.rk][0]
|
||||
q = data[profile.rk][1]
|
||||
|
||||
height = z - profile.z_min()
|
||||
#height = z - profile.z_min()
|
||||
speed = profile.speed(q, z)
|
||||
|
||||
return height, speed
|
||||
return z, speed
|
||||
|
||||
def _export_hydro(self, study, repertory, qlog, name="0"):
|
||||
if qlog is not None:
|
||||
qlog.put("Export HYDRO file")
|
||||
|
||||
with open(
|
||||
os.path.join(
|
||||
repertory, f"hydro.{name}"
|
||||
), "w+"
|
||||
) as f:
|
||||
bcs = []
|
||||
for edge in study.river.enable_edges():
|
||||
for bound in study.river.boundary_condition.get_tab("liquid"):
|
||||
# BC is an hydrogramme
|
||||
if bound.bctype == "TD" or bound.bctype == "PC":
|
||||
# BC is on input node of this reach
|
||||
if bound.node == edge.node1:
|
||||
bcs.append(bound)
|
||||
|
||||
for bc in bcs:
|
||||
f.write(f"{len(bc)}\n")
|
||||
for d0, d1 in bc.data:
|
||||
f.write(f"{d0} {d1}\n")
|
||||
|
||||
def _export_condav(self, study, repertory, qlog, name="0"):
|
||||
if qlog is not None:
|
||||
qlog.put("Export CONDAV file")
|
||||
|
||||
with open(
|
||||
os.path.join(
|
||||
repertory, f"condav.{name}"
|
||||
), "w+"
|
||||
) as f:
|
||||
bcs = []
|
||||
for edge in study.river.enable_edges():
|
||||
for bound in study.river.boundary_condition.get_tab("liquid"):
|
||||
# BC is an hydrogramme
|
||||
if bound.bctype == "ZD" or bound.bctype == "TZ":
|
||||
# BC is on input node of this reach
|
||||
if bound.node == edge.node2:
|
||||
bcs.append(bound)
|
||||
|
||||
for bc in bcs:
|
||||
f.write(f"{len(bc)}\n")
|
||||
for d0, d1 in bc.data:
|
||||
f.write(f"{d0} {d1}\n")
|
||||
|
||||
|
||||
class RubarBE(Rubar3):
|
||||
_type = "rubarbe"
|
||||
|
||||
def __init__(self, name):
|
||||
super(RubarBE, self).__init__(name)
|
||||
|
||||
self._type = "rubarbe"
|
||||
|
||||
self._cmd_input = ""
|
||||
self._cmd_solver = "@path @input -o @output"
|
||||
self._cmd_output = ""
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ from Solver.GenericSolver import GenericSolver
|
|||
from Solver.Mage import (
|
||||
Mage7, Mage8, MageFake7,
|
||||
)
|
||||
from Solver.RubarBE import RubarBE
|
||||
from Solver.RubarBE import Rubar3, RubarBE
|
||||
|
||||
_translate = QCoreApplication.translate
|
||||
|
||||
|
|
@ -32,6 +32,7 @@ solver_long_name = {
|
|||
"mage8": "Mage v8",
|
||||
# "mage_fake7": "Mage fake v7",
|
||||
# "rubarbe": "RubarBE",
|
||||
# "rubar3": "Rubar3",
|
||||
}
|
||||
|
||||
solver_type_list = {
|
||||
|
|
@ -40,4 +41,5 @@ solver_type_list = {
|
|||
"mage8": Mage8,
|
||||
# "mage_fake7": MageFake7,
|
||||
# "rubarbe": RubarBE,
|
||||
# "rubar3": Rubar3,
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue