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

Solver: Rename and fix solvers parameters.

Showing with 50 additions and 30 deletions
+50 -30
...@@ -47,9 +47,8 @@ class AbstractSolver(object): ...@@ -47,9 +47,8 @@ class AbstractSolver(object):
def default_parameters(cls): def default_parameters(cls):
lst = [ lst = [
("all_init_time", "00:00:00:00"), ("all_init_time", "00:00:00:00"),
("all_final_time", "01:00:00:00"), ("all_final_time", "999:99:00:00"),
("all_timestep", "300.0"), ("all_timestep", "300.0"),
("all_timestep_min", "1.0"),
] ]
return lst return lst
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from Solver.GenericSolver import GenericSolver from Solver.ASolver import AbstractSolver
class Mage(GenericSolver): class Mage(AbstractSolver):
def __init__(self, name): def __init__(self, name):
super(Mage, self).__init__(name) super(Mage, self).__init__(name)
...@@ -17,9 +17,14 @@ class Mage(GenericSolver): ...@@ -17,9 +17,14 @@ class Mage(GenericSolver):
lst = super(Mage, cls).default_parameters() lst = super(Mage, cls).default_parameters()
lst += [ lst += [
("mage_min_timestep", "1.0"),
("mage_timestep_tra", "3600"), ("mage_timestep_tra", "3600"),
("mage_timestep_bin", "0"), ("mage_timestep_bin", "0"),
# ("mage_timestep_melissa", "0"),
("mage_implication", "0.70"), ("mage_implication", "0.70"),
("mage_continuity_discretization", "S"),
("mage_qsj_discretization", "B"),
("mage_stop_criterion_iterations", "R"),
("mage_iter_type", "0"), ("mage_iter_type", "0"),
("mage_smooth_coef", "0"), ("mage_smooth_coef", "0"),
("mage_cfl_max", "-1."), ("mage_cfl_max", "-1."),
...@@ -29,16 +34,16 @@ class Mage(GenericSolver): ...@@ -29,16 +34,16 @@ class Mage(GenericSolver):
("mage_precision_reduction_factor_Z", "1"), ("mage_precision_reduction_factor_Z", "1"),
("mage_precision_reduction_factor_Q", "1"), ("mage_precision_reduction_factor_Q", "1"),
("mage_niter_max_precision", "99"), ("mage_niter_max_precision", "99"),
("mage_error_bound_mesh_elevation", "-1"), ("mage_niter_before_switch", "99"),
("mage_maximun_froude_number", "2"), ("mage_max_froude", "1.5"),
("mage_volume_report_monitoring_yn", "y"), ("mage_diffluence_node_height_balance", "-1"),
("mage_divergence_relative_error", "0.001"), ("mage_compute_reach_volume_balance", "y"),
("mage_minimal_reach_volume_error", "1000"), ("mage_max_reach_volume_balance", "0.001"),
("mage_min_reach_volume_to_check", "1000.0"),
] ]
return lst return lst
class Mage7(Mage): class Mage7(Mage):
def __init__(self, name): def __init__(self, name):
super(Mage7, self).__init__(name) super(Mage7, self).__init__(name)
......
...@@ -28,6 +28,7 @@ from View.InitialConditions.Window import InitialConditionsWindow ...@@ -28,6 +28,7 @@ from View.InitialConditions.Window import InitialConditionsWindow
from View.Stricklers.Window import StricklersWindow from View.Stricklers.Window import StricklersWindow
from View.Sections.Window import SectionsWindow from View.Sections.Window import SectionsWindow
from View.SolverParameters.Window import SolverParametersWindow from View.SolverParameters.Window import SolverParametersWindow
from View.RunSolver.Window import SelectSolverWindow
from Model.Study import Study from Model.Study import Study
...@@ -46,12 +47,15 @@ other_model_action = [ ...@@ -46,12 +47,15 @@ other_model_action = [
] ]
define_model_action = [ define_model_action = [
# Toolbar
"action_toolBar_network", "action_toolBar_geometry", "action_toolBar_network", "action_toolBar_geometry",
"action_toolBar_mesh", "action_toolBar_run_meshing_tool", "action_toolBar_mesh", "action_toolBar_run_meshing_tool",
"action_toolBar_boundary_cond", "action_toolBar_lateral_contrib", "action_toolBar_boundary_cond", "action_toolBar_lateral_contrib",
"action_toolBar_spills", "action_toolBar_sections", "action_toolBar_spills", "action_toolBar_sections",
"action_toolBar_stricklers", "action_toolBar_building", "action_toolBar_stricklers", "action_toolBar_building",
"action_toolBar_initial_cond", "action_toolBar_initial_cond",
# Menu
"action_run_solver",
] ]
action = ( action = (
...@@ -112,6 +116,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): ...@@ -112,6 +116,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
"action_menu_open": self.open_model, "action_menu_open": self.open_model,
"action_menu_save": self.save_study, "action_menu_save": self.save_study,
"action_menu_save_as": self.save_as_study, "action_menu_save_as": self.save_as_study,
"action_run_solver": self.run_solver,
## Help ## Help
"action_menu_about": self.open_about, "action_menu_about": self.open_about,
# ToolBar action # ToolBar action
...@@ -332,43 +337,49 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): ...@@ -332,43 +337,49 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
"into river network window to work on it") "into river network window to work on it")
def open_boundary_cond(self): def open_boundary_cond(self):
self.bound = BoundaryConditionWindow(study = self.model, parent = self) bound = BoundaryConditionWindow(study = self.model, parent = self)
self.bound.show() bound.show()
def open_lateral_contrib(self): def open_lateral_contrib(self):
self.lateral = LateralContributionWindow(study = self.model, parent = self) lateral = LateralContributionWindow(study = self.model, parent = self)
self.lateral.show() lateral.show()
def open_stricklers(self): def open_stricklers(self):
self.strick = StricklersWindow( strick = StricklersWindow(
study = self.model, study = self.model,
config = self.conf, config = self.conf,
parent = self parent = self
) )
self.strick.show() strick.show()
def open_sections(self): def open_sections(self):
self.sections = SectionsWindow( sections = SectionsWindow(
study = self.model, study = self.model,
parent = self parent = self
) )
self.sections.show() sections.show()
def open_initial_conditions(self): def open_initial_conditions(self):
if self.model.river.has_current_reach(): if self.model.river.has_current_reach():
self.initial = InitialConditionsWindow( initial = InitialConditionsWindow(
study = self.model, study = self.model,
parent = self parent = self
) )
self.initial.show() initial.show()
def open_solver_parameters(self): def open_solver_parameters(self):
self.params = SolverParametersWindow( params = SolverParametersWindow(
study = self.model, study = self.model,
parent = self parent = self
) )
self.params.show() params.show()
def run_solver(self):
run = SelectSolverWindow(
study = self.model,
parent = self
)
run.show()
# TODO: Delete me ! # TODO: Delete me !
############### ###############
......
...@@ -39,23 +39,28 @@ def init(): ...@@ -39,23 +39,28 @@ def init():
"all_init_time": _translate("SolverParameters", "Initial time (jj:hh:mm:ss)"), "all_init_time": _translate("SolverParameters", "Initial time (jj:hh:mm:ss)"),
"all_final_time": _translate("SolverParameters", "Final time (jj:hh:mm:ss)"), "all_final_time": _translate("SolverParameters", "Final time (jj:hh:mm:ss)"),
"all_timestep": _translate("SolverParameters", "Timestep (second)"), "all_timestep": _translate("SolverParameters", "Timestep (second)"),
"all_timestep_min": _translate("SolverParameters", "Minimum timestep (second)"), # Mage specific parameters
"mage_implication": _translate("SolverParameters", "Implicitation parameter"), "mage_min_timestep": _translate("SolverParameters", "Minimum timestep (second)"),
"mage_timestep_tra": _translate("SolverParameters", "Time step of writing on .TRA"), "mage_timestep_tra": _translate("SolverParameters", "Time step of writing on .TRA"),
"mage_timestep_bin": _translate("SolverParameters", "Time step of writing on .BIN"), "mage_timestep_bin": _translate("SolverParameters", "Time step of writing on .BIN"),
"mage_implication": _translate("SolverParameters", "Implicitation parameter"),
"mage_continuity_discretization": _translate("SolverParameters", "Continuity discretization type (S/L)"),
"mage_qsj_discretization": _translate("SolverParameters", "QSJ discretization (A/B)"),
"mage_stop_criterion_iterations": _translate("SolverParameters", "Stop criterion iterations (G/A/R)"),
"mage_iter_type": _translate("SolverParameters", "Iteration type"), "mage_iter_type": _translate("SolverParameters", "Iteration type"),
"mage_smooth_coef": _translate("SolverParameters", "Smoothing coefficient"), "mage_smooth_coef": _translate("SolverParameters", "Smoothing coefficient"),
"mage_cfl_max": _translate("SolverParameters", "Maximun accepted number of CFL"), "mage_cfl_max": _translate("SolverParameters", "Maximun accepted number of CFL"),
"mage_min_height": _translate("SolverParameters", "Minimum water height (meter)"), "mage_min_height": _translate("SolverParameters", "Minimum water height (meter)"),
"mage_max_niter": _translate("SolverParameters", "Maximun number of iterations (< 100)"), "mage_max_niter": _translate("SolverParameters", "Maximun number of iterations (< 100)"),
"mage_timestep_reduction_factor": _translate("SolverParameters", "Timestep reduction factor"), "mage_timestep_reduction_factor": _translate("SolverParameters", "Timestep reduction factor"),
"mage_niter_max_precision": _translate("SolverParameters", "Number of iteration at maximum precision"),
"mage_precision_reduction_factor_Z": _translate("SolverParameters", "Reduction precision factor of Z"), "mage_precision_reduction_factor_Z": _translate("SolverParameters", "Reduction precision factor of Z"),
"mage_precision_reduction_factor_Q": _translate("SolverParameters", "Reduction precision factor of Q"), "mage_precision_reduction_factor_Q": _translate("SolverParameters", "Reduction precision factor of Q"),
"mage_precision_reduction_factor_r": _translate("SolverParameters", "Reduction precision factor of residue"), "mage_precision_reduction_factor_r": _translate("SolverParameters", "Reduction precision factor of residue"),
"mage_error_bound_mesh_elevation": _translate("SolverParameters", "Error bound for mesh elevation"), "mage_niter_max_precision": _translate("SolverParameters", "Number of iteration at maximum precision"),
"mage_maximun_froude_number": _translate("SolverParameters", "Maximum accepted Froude number"), "mage_niter_before_switch": _translate("SolverParameters", "Number of iteration before switch"),
"mage_volume_report_monitoring_yn": _translate("SolverParameters", "Volume report monitoring (Y/N)"), "mage_max_froude": _translate("SolverParameters", "Maximum accepted Froude number"),
"mage_divergence_relative_error": _translate("SolverParameters", "Divergence weir for relative error in volume"), "mage_diffluence_node_height_balance": _translate("SolverParameters", "Diffluence node height balance"),
"mage_minimal_reach_volume_error": _translate("SolverParameters", "Minimum reach volume for error consideration"), "mage_compute_reach_volume_balance": _translate("SolverParameters", "Compute reach volume balance (Y/N)"),
"mage_max_reach_volume_balance": _translate("SolverParameters", "Maximum reach volume balance"),
"mage_min_reach_volume_to_check": _translate("SolverParameters", "Minimum reach volume to check"),
} }
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