mirror of https://gitlab.com/pamhyr/pamhyr2
Compare commits
3 Commits
5fec95cc4d
...
f97d4ce3c5
| Author | SHA1 | Date |
|---|---|---|
|
|
f97d4ce3c5 | |
|
|
cd4f626218 | |
|
|
c1eb2cf447 |
|
|
@ -39,7 +39,7 @@ class Rubar3(CommandLineSolver):
|
||||||
self._type = "rubar3"
|
self._type = "rubar3"
|
||||||
|
|
||||||
self._cmd_input = ""
|
self._cmd_input = ""
|
||||||
self._cmd_solver = "@path @input -o @output"
|
self._cmd_solver = "@path @args @input"
|
||||||
self._cmd_output = ""
|
self._cmd_output = ""
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -129,7 +129,7 @@ class Rubar3(CommandLineSolver):
|
||||||
|
|
||||||
def output_param(self):
|
def output_param(self):
|
||||||
name = self._study.name
|
name = self._study.name
|
||||||
return f"{name}"
|
return f"hydlim.{name}"
|
||||||
|
|
||||||
def log_file(self):
|
def log_file(self):
|
||||||
name = self._study.name
|
name = self._study.name
|
||||||
|
|
@ -143,10 +143,12 @@ class Rubar3(CommandLineSolver):
|
||||||
self._export_ts(study, repertory, qlog, name=name)
|
self._export_ts(study, repertory, qlog, name=name)
|
||||||
self._export_geomac_i(study, repertory, qlog, name=name)
|
self._export_geomac_i(study, repertory, qlog, name=name)
|
||||||
self._export_mail(study, repertory, qlog, name=name)
|
self._export_mail(study, repertory, qlog, name=name)
|
||||||
|
self._export_devers(study, repertory, qlog, name=name)
|
||||||
self._export_condin(study, repertory, qlog, name=name)
|
self._export_condin(study, repertory, qlog, name=name)
|
||||||
self._export_stricklers(study, repertory, qlog, name=name)
|
self._export_stricklers(study, repertory, qlog, name=name)
|
||||||
self._export_hydro(study, repertory, qlog, name=name)
|
self._export_hydro(study, repertory, qlog, name=name)
|
||||||
self._export_condav(study, repertory, qlog, name=name)
|
self._export_condav(study, repertory, qlog, name=name)
|
||||||
|
self._export_abshyd(study, repertory, qlog, name=name)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
@ -330,6 +332,50 @@ class Rubar3(CommandLineSolver):
|
||||||
if ind % 3 != 0:
|
if ind % 3 != 0:
|
||||||
f.write("\n")
|
f.write("\n")
|
||||||
|
|
||||||
|
def _export_devers(self, study, repertory, qlog, name="0"):
|
||||||
|
if qlog is not None:
|
||||||
|
qlog.put("Export ABSHYD file")
|
||||||
|
|
||||||
|
with open(
|
||||||
|
os.path.join(
|
||||||
|
repertory, f"abshyd.{name}"
|
||||||
|
), "w+"
|
||||||
|
) as f:
|
||||||
|
reach_ind = 1
|
||||||
|
for edge in study.river.enable_edges():
|
||||||
|
reach = edge.reach
|
||||||
|
lm = len(reach) + 1
|
||||||
|
f.write(f"{lm:>13}\n")
|
||||||
|
|
||||||
|
ind = 1
|
||||||
|
for mail in reach.inter_profiles_rk():
|
||||||
|
f.write(f"{ind:>4} {mail:15.3f} {reach_ind:>4}\n")
|
||||||
|
ind += 1
|
||||||
|
|
||||||
|
reach_ind += 1
|
||||||
|
|
||||||
|
def _export_abshyd(self, study, repertory, qlog, name="0"):
|
||||||
|
if qlog is not None:
|
||||||
|
qlog.put("Export DEVERS file")
|
||||||
|
|
||||||
|
with open(
|
||||||
|
os.path.join(
|
||||||
|
repertory, f"devers.{name}"
|
||||||
|
), "w+"
|
||||||
|
) as f:
|
||||||
|
reach_ind = 1
|
||||||
|
for edge in study.river.enable_edges():
|
||||||
|
reach = edge.reach
|
||||||
|
lm = len(reach) + 1
|
||||||
|
f.write(f"{lm:>13}\n")
|
||||||
|
|
||||||
|
ind = 1
|
||||||
|
for mail in reach.inter_profiles_rk():
|
||||||
|
f.write(f"{ind:>4} {0.0:15.3f} {0.0:15.3f} {1.0:>15.3f}\n")
|
||||||
|
ind += 1
|
||||||
|
|
||||||
|
reach_ind += 1
|
||||||
|
|
||||||
def _export_stricklers(self, study, repertory, qlog, name="0"):
|
def _export_stricklers(self, study, repertory, qlog, name="0"):
|
||||||
self._export_frot(study, repertory, qlog, name=name, version="")
|
self._export_frot(study, repertory, qlog, name=name, version="")
|
||||||
self._export_frot(study, repertory, qlog, name=name, version="2")
|
self._export_frot(study, repertory, qlog, name=name, version="2")
|
||||||
|
|
@ -382,8 +428,9 @@ class Rubar3(CommandLineSolver):
|
||||||
) as f:
|
) as f:
|
||||||
for edge in study.river.enable_edges():
|
for edge in study.river.enable_edges():
|
||||||
reach = edge.reach
|
reach = edge.reach
|
||||||
|
lm = len(reach) + 1
|
||||||
|
|
||||||
f.write(f"0.0\n")
|
f.write(f"{0.0:>6.4f} {lm:>6}\n")
|
||||||
|
|
||||||
ics = study.river.initial_conditions.get(edge)
|
ics = study.river.initial_conditions.get(edge)
|
||||||
data = self._export_condin_init_data(ics)
|
data = self._export_condin_init_data(ics)
|
||||||
|
|
@ -496,6 +543,32 @@ class Rubar3(CommandLineSolver):
|
||||||
for d0, d1 in bc.data:
|
for d0, d1 in bc.data:
|
||||||
f.write(f"{d1} {d0}\n")
|
f.write(f"{d1} {d0}\n")
|
||||||
|
|
||||||
|
def read_hydlim(self, study, fname, results, qlog=None, name="0"):
|
||||||
|
return
|
||||||
|
|
||||||
|
@timer
|
||||||
|
def results(self, study, repertory, qlog=None, name="0"):
|
||||||
|
results = Results(
|
||||||
|
study=study,
|
||||||
|
solver=self,
|
||||||
|
repertory=repertory,
|
||||||
|
name=name,
|
||||||
|
)
|
||||||
|
results_file = f"hydlim.{name}"
|
||||||
|
|
||||||
|
fname = os.path.join(repertory, results_file)
|
||||||
|
if not os.path.isfile(fname):
|
||||||
|
logger.info(f"Result file {results_file} does not exist")
|
||||||
|
return None
|
||||||
|
try:
|
||||||
|
self.read_hydlim(study, fname, results, qlog, name=name)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Failed to read results")
|
||||||
|
logger_exception(e)
|
||||||
|
return None
|
||||||
|
|
||||||
|
return results
|
||||||
|
|
||||||
|
|
||||||
class RubarBE(Rubar3):
|
class RubarBE(Rubar3):
|
||||||
_type = "rubarbe"
|
_type = "rubarbe"
|
||||||
|
|
@ -506,5 +579,5 @@ class RubarBE(Rubar3):
|
||||||
self._type = "rubarbe"
|
self._type = "rubarbe"
|
||||||
|
|
||||||
self._cmd_input = ""
|
self._cmd_input = ""
|
||||||
self._cmd_solver = "@path @input -o @output"
|
self._cmd_solver = "@path @args @input"
|
||||||
self._cmd_output = ""
|
self._cmd_output = ""
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ solver_long_name = {
|
||||||
# "mage_fake7": "Mage fake v7",
|
# "mage_fake7": "Mage fake v7",
|
||||||
"adistswc": "Adis-TS_WC",
|
"adistswc": "Adis-TS_WC",
|
||||||
# "rubarbe": "RubarBE",
|
# "rubarbe": "RubarBE",
|
||||||
# "rubar3": "Rubar3",
|
"rubar3": "Rubar3",
|
||||||
}
|
}
|
||||||
|
|
||||||
solver_type_list = {
|
solver_type_list = {
|
||||||
|
|
@ -44,5 +44,5 @@ solver_type_list = {
|
||||||
# "mage_fake7": MageFake7,
|
# "mage_fake7": MageFake7,
|
||||||
"adistswc": AdisTSwc,
|
"adistswc": AdisTSwc,
|
||||||
# "rubarbe": RubarBE,
|
# "rubarbe": RubarBE,
|
||||||
# "rubar3": Rubar3,
|
"rubar3": Rubar3,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue