Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
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)