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