def runTest(self): "Model DischargeRouting" model = PISM.FrontalMeltDischargeRouting(self.grid) model.initialize(self.theta) model.update(self.inputs, 0, 1) melt_rate = self.frontal_melt(self.depth, self.water_flux, self.potential_temperature) # convert from m / day to m / s melt_rate /= seconds_per_day check_model(model, melt_rate) assert model.max_timestep(0).infinite()
ctx = context.ctx config = context.config config.set_string("frontal_melt.routing.file", routing_file) registration = PISM.CELL_CENTER grid = PISM.IceGrid.FromFile(ctx, input_file, ("bed", "thickness"), registration) geometry = PISM.Geometry(grid) geometry.ice_thickness.regrid(input_file, critical=True) geometry.bed_elevation.regrid(input_file, critical=True) min_thickness = config.get_double("geometry.ice_free_thickness_standard") geometry.ensure_consistency(min_thickness) theta = 1.0 salinity = 0.0 inputs = PISM.FrontalMeltInputs() cell_area = grid.dx() * grid.dy() water_density = config.get_double("constants.fresh_water.density") Qsg = PISM.IceModelVec2S(grid, "subglacial_water_mass_change_at_grounding_line", PISM.WITHOUT_GHOSTS) Qsg.set_attrs("climate", "subglacial discharge at grounding line", "kg", "kg") # Qsg.set(self.subglacial_discharge * cell_area * water_density * self.dt) model = PISM.FrontalMeltDischargeRouting(grid) model.init(geometry) # model.update(inputs, 0, 0.1)