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