#Test Name: SquareSheetHydrologyDCTwoLayers import numpy as np from model import * from socket import gethostname from triangle import * from setmask import * from parameterize import * from transient import * from setflowequation import * from solve import * from generic import generic md=triangle(model(),'../Exp/Square.exp',100000.) md=setmask(md,'','') md=parameterize(md,'../Par/IceCube.py') md.transient=transient.setallnullparameters(md.transient) md.transient.ishydrology=True #md.transient.issmb=True md=setflowequation(md,'SSA','all') md.cluster=generic('name',gethostname(),'np',1) md.hydrology=hydrologydc() md.hydrology=md.hydrology.initialize(md) md.hydrology.isefficientlayer=1 md.hydrology.sedimentlimit_flag=1 md.hydrology.sedimentlimit=800.0 md.hydrology.mask_thawed_node=np.ones((md.mesh.numberofvertices)) md.initialization.sediment_head=np.zeros((md.mesh.numberofvertices)) md.hydrology.spcsediment_head=np.nan*np.ones((md.mesh.numberofvertices)) md.basalforcings.groundedice_melting_rate = 2.0*np.ones((md.mesh.numberofvertices)) md.basalforcings.floatingice_melting_rate = 0.0*np.ones((md.mesh.numberofvertices)) md.hydrology.sediment_transmitivity= 3.0*np.ones((md.mesh.numberofvertices)) md.initialization.epl_head=np.zeros((md.mesh.numberofvertices)) md.initialization.epl_thickness=np.ones((md.mesh.numberofvertices)) md.hydrology.spcepl_head=np.nan*np.ones((md.mesh.numberofvertices)) md.hydrology.mask_eplactive_node=np.zeros((md.mesh.numberofvertices)) md.hydrology.epl_conductivity=30 md.hydrology.epl_initial_thickness=1 md.hydrology.epl_colapse_thickness=1.0e-3 md.hydrology.epl_thick_comp=1 md.hydrology.epl_max_thickness=1 md.hydrology.steps_per_step=10 md.timestepping.time_step=2.0 md.timestepping.final_time=2.0 #md.debug.valgrind=True md=solve(md,'Transient') #re-run with no substeps mdfine=copy.deepcopy(md) mdfine.result=[] mdfine.hydrology.steps_per_step=1 mdfine.timestepping.time_step=0.2 mdfine=solve(mdfine,'Transient') sedmean=mdfine.results.TransientSolution[0].SedimentHeadHydrostep eplmean=mdfine.results.TransientSolution[0].EplHeadHydrostep for i in range(1,10): sedmean=sedmean+(mdfine.results.TransientSolution[i].SedimentHeadHydrostep) eplmean=eplmean+(mdfine.results.TransientSolution[i].EplHeadHydrostep) field_names=['SedimentWaterHead1','EplWaterHead1','SedimentHeadResidual1', 'SedimentWaterHead4','EplWaterHead4','SedimentHeadResidual4', 'SedimentWaterHead5','EplWaterHead5','SedimentHeadResidual5', 'SedimentWaterHead9','EplWaterHead9','SedimentHeadResidual9', 'EplWaterHead10'] field_tolerances=[1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 1e-13, 5e-12, 1e-11, 1e-13, 5e-12, 1e-11, 1e-13] field_values=[mdfine.results.TransientSolution[0].SedimentHeadHydrostep, mdfine.results.TransientSolution[0].EplHeadHydrostep, mdfine.results.TransientSolution[0].SedimentHeadResidual, mdfine.results.TransientSolution[3].SedimentHeadHydrostep, mdfine.results.TransientSolution[3].EplHeadHydrostep, mdfine.results.TransientSolution[3].SedimentHeadResidual, mdfine.results.TransientSolution[4].SedimentHeadHydrostep, mdfine.results.TransientSolution[4].EplHeadHydrostep, mdfine.results.TransientSolution[4].SedimentHeadResidual, mdfine.results.TransientSolution[8].SedimentHeadHydrostep, mdfine.results.TransientSolution[8].EplHeadHydrostep, mdfine.results.TransientSolution[8].SedimentHeadResidual, md.results.TransientSolution[-1].EplHead]