# -*- coding: utf-8 -*- from Solver.GenericSolver import GenericSolver class Mage(GenericSolver): def __init__(self, name): super(Mage, self).__init__(name) self._type = "mage" self._cmd_input = "" self._cmd_solver = "@path @input -o @output" self._cmd_output = "" @classmethod def default_parameters(cls): lst = super(Mage, cls).default_parameters() lst += [ ("mage_timestep_tra", "3600"), ("mage_timestep_bin", "0"), ("mage_implication", "0.70"), ("mage_iter_type", "0"), ("mage_smooth_coef", "0"), ("mage_cfl_max", "-1."), ("mage_min_height", "0.1"), ("mage_max_niter", "10"), ("mage_timestep_reduction_factor", "2"), ("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"), ] return lst class Mage7(Mage): def __init__(self, name): super(Mage7, self).__init__(name) self._type = "mage7" @classmethod def default_parameters(cls): lst = super(Mage7, cls).default_parameters() return lst class Mage8(Mage): def __init__(self, name): super(Mage8, self).__init__(name) self._type = "mage8" @classmethod def default_parameters(cls): lst = super(Mage8, cls).default_parameters() # Insert new parameters at specific position names = list(map(lambda t: t[0], lst)) i = names.index("mage_precision_reduction_factor_Q") lst.insert(i+1, ("mage_precision_reduction_factor_r", "1")) return lst