Ejemplo n.º 1
0
    def setUp(self):
        # store current configuration parameters
        self.config = PISM.DefaultConfig(ctx.com, "pism_config", "-config", ctx.unit_system)
        self.config.init_with_default(ctx.log)
        self.config.import_from(ctx.config)

        self.filename = "forcing-options-input.nc"
        PISM.util.prepare_output(self.filename)
Ejemplo n.º 2
0
def pism_context_test():
    "Test creating and using a C++-level Context"

    com = PISM.PETSc.COMM_WORLD
    system = PISM.UnitSystem("")

    logger = PISM.Logger(com, 2)

    config = PISM.DefaultConfig(com, "pism_config", "-config", system)
    config.init_with_default(logger)

    EC = PISM.EnthalpyConverter(config)

    time = PISM.Time(config, "360_day", system)

    ctx = PISM.cpp.Context(com, system, config, EC, time, logger, "greenland")

    print(ctx.com().Get_size())
    print(ctx.config().get_number("constants.standard_gravity"))
    print(ctx.enthalpy_converter().L(273.15))
    print(ctx.time().current())
    print(PISM.convert(ctx.unit_system(), 1, "km", "m"))
    print(ctx.prefix())
Ejemplo n.º 3
0
ctx = PISM.Context()
config = ctx.config

# do not ignore thin ice
config.set_number("geometry.ice_free_thickness_standard", 0.0)
config.set_number("stress_balance.ice_free_thickness_standard", 0.0)

# Set flow law parameters
config.set_string("stress_balance.blatter.flow_law", "isothermal_glen")
config.set_number("stress_balance.blatter.Glen_exponent", 3.0)

# Set constants:
config.set_number("constants.ice.density", 910.0)
config.set_number("constants.standard_gravity", 9.81)

config_clean = PISM.DefaultConfig(ctx.com, "pism_config", "-config",
                                  ctx.unit_system)
config_clean.init_with_default(ctx.log)
config_clean.import_from(config)


def expt(ns, errors):
    "Compute the convergence rate using a polynomial fit."
    return -np.polyfit(np.log(ns), np.log(errors), 1)[0]


class TestXY(TestCase):
    """2D (x-y) verification test using a manufactured solution.

    u = exp(x) * sin(2 * pi * y)
    v = exp(x) * cos(2 * pi * y)