mirror of https://gitlab.com/pamhyr/pamhyr2
Solver: Fix SIN export and error handler at export.
parent
ffdeb28bfd
commit
ec91a8b63f
|
|
@ -20,7 +20,7 @@ import os
|
|||
import logging
|
||||
import numpy as np
|
||||
|
||||
from tools import timer, trace
|
||||
from tools import timer, trace, logger_exception
|
||||
|
||||
from Solver.CommandLine import CommandLineSolver
|
||||
from Checker.Mage import (
|
||||
|
|
@ -137,7 +137,6 @@ class Mage(CommandLineSolver):
|
|||
for line in lines:
|
||||
rep_file.write(line.line)
|
||||
|
||||
@timer
|
||||
def _export_ST(self, study, repertory, qlog, name="0"):
|
||||
files = []
|
||||
|
||||
|
|
@ -236,7 +235,6 @@ class Mage(CommandLineSolver):
|
|||
# Point line
|
||||
wfile.write(f"{x} {y} {z} {n} {sediment}\n")
|
||||
|
||||
@timer
|
||||
def _export_BC(self, t, bounds, repertory, qlog, name="0"):
|
||||
files = []
|
||||
|
||||
|
|
@ -270,7 +268,6 @@ class Mage(CommandLineSolver):
|
|||
|
||||
return files
|
||||
|
||||
@timer
|
||||
def _export_bound_cond(self, study, repertory, qlog, name="0"):
|
||||
files = []
|
||||
lst = study.river.boundary_condition
|
||||
|
|
@ -301,7 +298,6 @@ class Mage(CommandLineSolver):
|
|||
|
||||
return files
|
||||
|
||||
@timer
|
||||
def _export_lateral_contrib(self, study, repertory, qlog, name="0"):
|
||||
files = []
|
||||
lst = study.river.lateral_contribution
|
||||
|
|
@ -320,7 +316,6 @@ class Mage(CommandLineSolver):
|
|||
|
||||
return files
|
||||
|
||||
@timer
|
||||
def _export_LC(self, study, lateral, f, qlog, name="0"):
|
||||
if lateral.edge is None:
|
||||
return
|
||||
|
|
@ -352,7 +347,6 @@ class Mage(CommandLineSolver):
|
|||
else:
|
||||
f.write(f"{d[0]:10.3f}{d[1]:10.3f}\n")
|
||||
|
||||
@timer
|
||||
def _export_RUG(self, study, repertory, qlog, name="0"):
|
||||
files = []
|
||||
|
||||
|
|
@ -396,7 +390,6 @@ class Mage(CommandLineSolver):
|
|||
|
||||
return files
|
||||
|
||||
@timer
|
||||
def _export_INI(self, study, repertory, qlog, name="0"):
|
||||
files = []
|
||||
|
||||
|
|
@ -439,7 +432,6 @@ class Mage(CommandLineSolver):
|
|||
files.append(f"{name}.INI")
|
||||
return files
|
||||
|
||||
@timer
|
||||
def _export_CAS(self, study, repertory, qlog, name="0"):
|
||||
files = []
|
||||
|
||||
|
|
@ -472,7 +464,6 @@ class Mage(CommandLineSolver):
|
|||
|
||||
return files
|
||||
|
||||
@timer
|
||||
def _export_SIN(self, study, repertory, qlog, name="0"):
|
||||
files = []
|
||||
|
||||
|
|
@ -504,12 +495,20 @@ class Mage(CommandLineSolver):
|
|||
if not hs.input_reach.is_enable():
|
||||
continue
|
||||
|
||||
if hs.input_kp is None:
|
||||
continue
|
||||
|
||||
f.write(
|
||||
'* ouvrage au pk ' +
|
||||
f"{float(hs.input_kp):>12.1f}" + ' ' +
|
||||
hs.name + '\n'
|
||||
)
|
||||
|
||||
self._export_SIN_bhs(study, sin_dict, hs, f)
|
||||
|
||||
return files
|
||||
|
||||
def _export_SIN_bhs(self, study, sin_dict, hs, f):
|
||||
for bhs in hs.basic_structures:
|
||||
reach_id = study.river.get_edge_id(hs.input_reach) + 1
|
||||
param_str = ' '.join(
|
||||
|
|
@ -531,8 +530,6 @@ class Mage(CommandLineSolver):
|
|||
f"{param_str} {name}\n"
|
||||
)
|
||||
|
||||
return files
|
||||
|
||||
def _export_SIN_parameters(self, bhs):
|
||||
res = [9999.999] * 5
|
||||
|
||||
|
|
@ -591,7 +588,6 @@ class Mage(CommandLineSolver):
|
|||
|
||||
return res
|
||||
|
||||
@timer
|
||||
def _export_VAR(self, study, repertory, qlog, name="0"):
|
||||
files = []
|
||||
|
||||
|
|
@ -627,7 +623,6 @@ class Mage(CommandLineSolver):
|
|||
|
||||
return files
|
||||
|
||||
@timer
|
||||
def _export_DEV(self, study, repertory, qlog, name="0"):
|
||||
files = []
|
||||
|
||||
|
|
@ -650,7 +645,6 @@ class Mage(CommandLineSolver):
|
|||
|
||||
return files
|
||||
|
||||
@timer
|
||||
def _export_REP(self, study, repertory, files, qlog, name="0"):
|
||||
if qlog is not None:
|
||||
qlog.put("Export REP file")
|
||||
|
|
@ -785,7 +779,6 @@ class Mage8(Mage):
|
|||
|
||||
return lst
|
||||
|
||||
@timer
|
||||
def _export_PAR(self, study, repertory, qlog=None, name="0"):
|
||||
files = []
|
||||
|
||||
|
|
@ -820,7 +813,6 @@ class Mage8(Mage):
|
|||
|
||||
return files
|
||||
|
||||
@timer
|
||||
def _export_NET(self, study, repertory, qlog=None, name="0"):
|
||||
files = []
|
||||
|
||||
|
|
@ -844,7 +836,6 @@ class Mage8(Mage):
|
|||
|
||||
return files
|
||||
|
||||
@timer
|
||||
def _export_QSO(self, bounds, repertory, qlog, name="0"):
|
||||
files = []
|
||||
|
||||
|
|
@ -902,6 +893,7 @@ class Mage8(Mage):
|
|||
# Generate files
|
||||
files = []
|
||||
|
||||
try:
|
||||
for func in self.export_func_dict():
|
||||
files = files + func(study, repertory, qlog, name=name)
|
||||
|
||||
|
|
@ -910,6 +902,10 @@ class Mage8(Mage):
|
|||
self._export_REP(study, repertory, files, qlog, name=name)
|
||||
|
||||
return True
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to export study to {self._type}")
|
||||
logger_exception(e)
|
||||
return False
|
||||
|
||||
###########
|
||||
# RESULTS #
|
||||
|
|
|
|||
|
|
@ -158,8 +158,11 @@ class SolverLogWindow(PamhyrWindow):
|
|||
self.setup_workdir()
|
||||
self.setup_process()
|
||||
|
||||
self.export()
|
||||
ok = self.export()
|
||||
if ok:
|
||||
self.run()
|
||||
else:
|
||||
self._log(f" *** Failed to export study to {self._solver._type}", color="red")
|
||||
|
||||
def setup_action(self):
|
||||
self.find(QAction, "action_start").setEnabled(False)
|
||||
|
|
@ -210,9 +213,11 @@ class SolverLogWindow(PamhyrWindow):
|
|||
|
||||
def export(self):
|
||||
self._log(f" *** Export study {self._solver.name}", color="blue")
|
||||
self._solver.export(self._study, self._workdir, qlog=self._output)
|
||||
ok = self._solver.export(self._study, self._workdir, qlog=self._output)
|
||||
self.update()
|
||||
|
||||
return ok
|
||||
|
||||
def closeEvent(self, event):
|
||||
self._alarm.stop()
|
||||
super(SolverLogWindow, self).closeEvent(event)
|
||||
|
|
@ -319,9 +324,13 @@ class SolverLogWindow(PamhyrWindow):
|
|||
def start(self):
|
||||
if self._solver.is_stoped():
|
||||
self._log(f" *** Export study {self._solver.name}", color="blue")
|
||||
self._solver.export(self._study, self._workdir, qlog=self._output)
|
||||
ok = self._solver.export(self._study, self._workdir, qlog=self._output)
|
||||
if not ok:
|
||||
self._log(f" *** Failed to export", color="red")
|
||||
self.update()
|
||||
return
|
||||
else:
|
||||
self.update()
|
||||
|
||||
self._process = self.new_process(self._parent)
|
||||
|
||||
self._log(" *** Start", color="blue")
|
||||
|
|
|
|||
Loading…
Reference in New Issue