Commit fead93f0 authored by Pierre-Antoine Rouby's avatar Pierre-Antoine Rouby
Browse files

Solver: RubarBE: Add ts export.

Showing with 72 additions and 2 deletions
+72 -2
......@@ -77,6 +77,31 @@ class RubarBE(CommandLineSolver):
("rubarbe_ros", "2650.0"),
("rubarbe_dm", "0.1"),
("rubarbe_segma", "1.0"),
# Sediment parameters
("rubarbe_sediment_ros", "2650.0"),
("rubarbe_sediment_por", "0.4"),
("rubarbe_sediment_dcharg", "0.0"),
("rubarbe_sediment_halfa", "1.0"),
("rubarbe_sediment_mult_1", "1.0"),
("rubarbe_sediment_mult_2", ""),
("rubarbe_sediment_mult_3", ""),
("rubarbe_sediment_mult_4", ""),
("rubarbe_sediment_mult_5", ""),
("rubarbe_sediment_visc", "0.047"),
("rubarbe_sediment_opts", "6"),
("rubarbe_sediment_odchar", "0"),
("rubarbe_sediment_unisol", "1"),
("rubarbe_sediment_typdef", "3"),
("rubarbe_sediment_depot", "2"),
("rubarbe_sediment_choixc", "2"),
("rubarbe_sediment_option", "2"),
("rubarbe_sediment_capsol", "1"),
("rubarbe_sediment_bmiu", "0.85"),
("rubarbe_sediment_demix", "0"),
("rubarbe_sediment_defond", "1"),
("rubarbe_sediment_varcons", "1"),
("rubarbe_sediment_dchard", "0.0"),
("rubarbe_sediment_dchars", "0.0"),
]
return lst
......@@ -118,7 +143,10 @@ class RubarBE(CommandLineSolver):
repertory, f"donnee.{name}"
), "w+"
) as f:
params = study.river.get_params(self.type).parameters
params = filter(
lambda p: "rubarbe_sediment_" not in p[0],
study.river.get_params(self.type).parameters
)
it = iter(params)
line = 0
......@@ -132,7 +160,7 @@ class RubarBE(CommandLineSolver):
value = f"{value:>12.5e}".upper()
if value.count('.') == 1:
value = f"{value:>12.5e}".upper()
value = f"{float(value):>12.5e}".upper()
if value == "y" or value == "n":
value = "O" if value == "y" else "N"
......@@ -153,6 +181,48 @@ class RubarBE(CommandLineSolver):
line += 1
def _export_ts(self, study, repertory, files, qlog, name="0"):
if qlog is not None:
qlog.put("Export TS file")
with open(
os.path.join(
repertory, f"ts.{name}"
), "w+"
) as f:
params = filter(
lambda p: "rubarbe_sediment_" in p[0],
study.river.get_params(self.type).parameters
)
it = iter(params)
line = 0
while line < 20:
lh, value = next(it)
if value != "":
# Value format
if value.count('.') == 1:
value = f"{float(value):>10.0f}"
# Write value
f.write(f"{lh:<50}{value}")
# Add values of 'rubarbe_iodebord' and
# 'rubarbe_iostockage'
if lh == "rubarbe_sediment_mult_1":
_, m2 = f"{float(next(it)):>10.0f}"
_, m3 = f"{float(next(it)):>10.0f}"
_, m4 = f"{float(next(it)):>10.0f}"
_, m5 = f"{float(next(it)):>10.0f}"
f.write(f"{m2}{m3}{m4}{m5}")
# New line
f.write(f"\n")
line += 1
def _export_geomac_i(self, study, repertory, files, qlog, name="0"):
if qlog is not None:
qlog.put("Export GEOMAC-i file")
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment