1 | #Test Name: SquareSheetHydrologyDCTwoLayers
|
---|
2 | import numpy as np
|
---|
3 | from model import *
|
---|
4 | from socket import gethostname
|
---|
5 | from triangle import *
|
---|
6 | from setmask import *
|
---|
7 | from parameterize import *
|
---|
8 | from transient import *
|
---|
9 | from setflowequation import *
|
---|
10 | from solve import *
|
---|
11 | from generic import generic
|
---|
12 |
|
---|
13 | md=triangle(model(),'../Exp/Square.exp',100000.)
|
---|
14 | md=setmask(md,'','')
|
---|
15 | md=parameterize(md,'../Par/IceCube.py')
|
---|
16 |
|
---|
17 | md.transient=transient.setallnullparameters(md.transient)
|
---|
18 | md.transient.ishydrology=True
|
---|
19 | md.transient.issmb=True
|
---|
20 | md=setflowequation(md,'SSA','all')
|
---|
21 | md.cluster=generic('name',gethostname(),'np',1)
|
---|
22 | md.hydrology=hydrologydc()
|
---|
23 | md.hydrology=md.hydrology.initialize(md)
|
---|
24 |
|
---|
25 | md.hydrology.isefficientlayer=1
|
---|
26 | md.hydrology.sedimentlimit_flag=1
|
---|
27 | md.hydrology.sedimentlimit=800.0
|
---|
28 | md.initialization.sediment_head=np.zeros((md.mesh.numberofvertices))
|
---|
29 | md.hydrology.spcsediment_head=np.nan*np.ones((md.mesh.numberofvertices))
|
---|
30 |
|
---|
31 | md.basalforcings.groundedice_melting_rate = 2.0*np.ones((md.mesh.numberofvertices))
|
---|
32 | md.basalforcings.floatingice_melting_rate = 0.0*np.ones((md.mesh.numberofvertices))
|
---|
33 | md.hydrology.sediment_transmitivity= 3.0*np.ones((md.mesh.numberofvertices))
|
---|
34 |
|
---|
35 | md.initialization.epl_head=np.zeros((md.mesh.numberofvertices))
|
---|
36 | md.initialization.epl_thickness=np.ones((md.mesh.numberofvertices))
|
---|
37 | md.hydrology.spcepl_head=np.nan*np.ones((md.mesh.numberofvertices))
|
---|
38 | md.hydrology.mask_eplactive_node=np.zeros((md.mesh.numberofvertices))
|
---|
39 | md.hydrology.epl_conductivity=30
|
---|
40 | md.hydrology.epl_initial_thickness=1
|
---|
41 | md.hydrology.epl_colapse_thickness=1.0e-3
|
---|
42 | md.hydrology.epl_thick_comp=1
|
---|
43 | md.hydrology.epl_max_thickness=1
|
---|
44 | md.hydrology.steps_per_step=10
|
---|
45 | md.timestepping.time_step=2.0
|
---|
46 | md.timestepping.final_time=2.0
|
---|
47 |
|
---|
48 | md=solve(md,'Transient')
|
---|
49 |
|
---|
50 | #re-run with no substeps
|
---|
51 | mdfine=md
|
---|
52 | mdfine.result=[]
|
---|
53 | mdfine.hydrology.steps_per_step=1
|
---|
54 | mdfine.timestepping.time_step=0.2
|
---|
55 | mdfine=solve(md,'Transient')
|
---|
56 |
|
---|
57 |
|
---|
58 | # sedvol=np.zeros(10)
|
---|
59 | # eplvol=np.zeros(10)
|
---|
60 | # time=np.arange(0.2,2.1,0.2)
|
---|
61 | # store=md.constants.g*md.hydrology.sediment_porosity*md.materials.rho_freshwater*((md.hydrology.sediment_compressibility/md.hydrology.sediment_porosity)+md.hydrology.water_compressibility)
|
---|
62 | # sedstore=20.0*store
|
---|
63 | # for i in range(0,10):
|
---|
64 | # sedvol[i]=np.mean(md.results.TransientSolution[i].SedimentHead)*sedstore
|
---|
65 | # eplvol[i]=np.mean(md.results.TransientSolution[i].EplHead)*store*np.mean(md.results.TransientSolution[i].HydrologydcEplThickness)
|
---|
66 |
|
---|
67 | field_names=['SedimentWaterHead1','EplWaterHead1','SedimentHeadResidual1',
|
---|
68 | 'SedimentWaterHead4','EplWaterHead4','SedimentHeadResidual4',
|
---|
69 | 'SedimentWaterHead5','EplWaterHead5','SedimentHeadResidual5',
|
---|
70 | 'SedimentWaterHead9','EplWaterHead9','SedimentHeadResidual9',
|
---|
71 | 'EplWaterHead9']
|
---|
72 | field_tolerances=[1e-13, 1e-13, 1e-13,
|
---|
73 | 1e-13, 1e-13, 1e-13,
|
---|
74 | 1e-13, 5e-12, 1e-11,
|
---|
75 | 1e-13, 5e-12, 1e-11,
|
---|
76 | 1e-13]
|
---|
77 | field_values=[mdfine.results.TransientSolution[0].SedimentHead,
|
---|
78 | mdfine.results.TransientSolution[0].EplHead,
|
---|
79 | mdfine.results.TransientSolution[0].SedimentHeadResidual,
|
---|
80 | mdfine.results.TransientSolution[3].SedimentHead,
|
---|
81 | mdfine.results.TransientSolution[3].EplHead,
|
---|
82 | mdfine.results.TransientSolution[3].SedimentHeadResidual,
|
---|
83 | mdfine.results.TransientSolution[4].SedimentHead,
|
---|
84 | mdfine.results.TransientSolution[4].EplHead,
|
---|
85 | mdfine.results.TransientSolution[4].SedimentHeadResidual,
|
---|
86 | mdfine.results.TransientSolution[8].SedimentHead,
|
---|
87 | mdfine.results.TransientSolution[8].EplHead,
|
---|
88 | mdfine.results.TransientSolution[8].SedimentHeadResidual,
|
---|
89 | md.results.TransientSolution[0].EplHead]
|
---|
90 |
|
---|