diff --git a/src/Solver/RubarBE.py b/src/Solver/RubarBE.py index 2aa67278da97ab0f2b5f2f40f858df70aa7f61cf..f3d6a5af419ea2697b3d545604af28f7e00ff03f 100644 --- a/src/Solver/RubarBE.py +++ b/src/Solver/RubarBE.py @@ -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")