#Test Name: SquareSheetShelfGroundingLine2dAggressive. From test424, with sea level increasing. import numpy as np from model import * from socket import gethostname from triangle import * from setmask import * from parameterize import * from setflowequation import * from solve import * from newforcing import * md = triangle(model(), '../Exp/Square.exp', 150000.) md = setmask(md, '../Exp/SquareShelf.exp', '') md = parameterize(md, '../Par/SquareSheetShelf.py') md = setflowequation(md, 'SSA', 'all') md.initialization.vx[:] = 0. md.initialization.vy[:] = 0. md.smb.mass_balance[:] = 0. md.geometry.base = - 700. - np.abs(md.mesh.y - 500000.) / 1000. md.geometry.bed = - 700. - np.abs(md.mesh.y - 500000.) / 1000. md.geometry.thickness[:] = 1000. md.geometry.surface = md.geometry.base + md.geometry.thickness md.transient.isstressbalance = 0 md.transient.isgroundingline = 1 md.transient.isthermal = 0 md.groundingline.migration = 'AggressiveMigration' md.transient.requested_outputs = ['IceVolume', 'IceVolumeAboveFloatation', 'Sealevel'] md.timestepping.time_step = .1 md.slr.sealevel = newforcing(md.timestepping.start_time, md.timestepping.final_time, md.timestepping.time_step, - 200., 200., md.mesh.numberofvertices) md.cluster = generic('name', gethostname(), 'np', 3) md = solve(md, 'Transient') #we are checking that the grounding line position is near the theorical one, which is the 0 contour level #of surface-sealevel - (1 - di) * thickness nsteps = len(md.results.TransientSolution) field_names = [] field_tolerances = [] field_values = [] #time is off by the year constant for i in range(nsteps): field_names.append('Time-' + str(md.results.TransientSolution[i].time) + ' - yr - ice_levelset - S - sl - (1 - di) * H') field_tolerances.append(1e-12) field_values.append(md.results.TransientSolution[i].MaskGroundediceLevelset.reshape(- 1, ) - (md.geometry.surface - md.results.TransientSolution[i].Sealevel.reshape(- 1, ) - (1 - md.materials.rho_ice / md.materials.rho_water) * md.geometry.thickness))