Beispiel #1
0
    def physics_options(self, input_file, step):
        "Options corresponding to modeling choices."
        config_filename = self.config(step)

        options = [
            "-energy none",  # isothermal setup; allows selecting cold-mode flow laws
            "-ssa_flow_law isothermal_glen",  # isothermal setup
            "-yield_stress constant",
            "-tauc %e" % MISMIP.C(self.experiment),
            "-pseudo_plastic",
            "-gradient eta",
            "-pseudo_plastic_q %e" % MISMIP.m(self.experiment),
            "-pseudo_plastic_uthreshold %e" % MISMIP.secpera(),
            "-calving ocean_kill",  # calving at the present front
            "-ocean_kill_file %s" % input_file,
            "-config_override %s" % config_filename,
            "-ssa_method fd",
            "-cfbc",  # calving front boundary conditions
            "-part_grid",  # sub-grid front motion parameterization
            "-ssafd_ksp_rtol 1e-7",
            "-ys 0",
            "-ye %d" % MISMIP.run_length(self.experiment, step),
            "-options_left",
        ]

        if self.model == 1:
            options.extend(["-stress_balance ssa"])
        else:
            options.extend([
                "-stress_balance ssa+sia",
                "-sia_flow_law isothermal_glen",  # isothermal setup
            ])

        return options
Beispiel #2
0
    def physics_options(self, input_file, step):
        "Options corresponding to modeling choices."
        config_filename = self.config(step)

        options = ["-energy none",  # isothermal setup; allows selecting cold-mode flow laws
                   "-ssa_flow_law isothermal_glen",  # isothermal setup
                   "-yield_stress constant",
                   "-tauc %e" % MISMIP.C(self.experiment),
                   "-pseudo_plastic",
                   "-gradient eta",
                   "-pseudo_plastic_q %e" % MISMIP.m(self.experiment),
                   "-pseudo_plastic_uthreshold %e" % MISMIP.secpera(),
                   "-calving ocean_kill",  # calving at the present front
                   "-ocean_kill_file %s" % input_file,
                   "-config_override %s" % config_filename,
                   "-ssa_method fd",
                   "-cfbc",                # calving front boundary conditions
                   "-part_grid",           # sub-grid front motion parameterization
                   "-ssafd_ksp_rtol 1e-7",
                   "-ys 0",
                   "-ye %d" % MISMIP.run_length(self.experiment, step),
                   "-options_left",
                   ]

        if self.model == 1:
            options.extend(["-stress_balance ssa"])
        else:
            options.extend(["-stress_balance ssa+sia",
                            "-sia_flow_law isothermal_glen",  # isothermal setup
                            ])

        return options
Beispiel #3
0
    def physics_options(self, step):
        "Options corresponding to modeling choices."
        config_filename = self.config(step)

        options = [
            "-cold",  # allow selecting cold-mode flow laws
            "-sia_flow_law isothermal_glen",  # isothermal setup
            "-ssa_flow_law isothermal_glen",  # isothermal setup
            "-no_energy",  # isothermal setup
            "-ssa_sliding",  # use SSA
            "-hold_tauc",
            "-tauc %e" % MISMIP.C(self.experiment),
            "-pseudo_plastic",
            "-gradient eta",
            "-pseudo_plastic_q %e" % MISMIP.m(self.experiment),
            "-pseudo_plastic_uthreshold %e" % MISMIP.secpera(),
            "-ocean_kill",  # calving at the present front
            "-config_override %s" % config_filename,
            "-ssa_method fd",  # use the FD solver that includes PIK improvements
            "-cfbc",  # calving front boundary conditions
            "-part_grid",  # sub-grid front motion parameterization
            "-ksp_rtol 1e-7",
            "-ys 0",
            "-ye %f" % MISMIP.run_length(self.experiment, step),
            "-options_left",
        ]

        if self.model == 1:
            options.extend(["-no_sia"])
        else:
            options.extend(["-sia"])

        if self.mode in (2, 3):
            options.extend(["-skip", "-skip_max 10"])

        return options