Mage.py 1.94 KB
Newer Older
# -*- 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()



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"))