source: issm/trunk/test/NightlyRun/test355.py@ 25836

Last change on this file since 25836 was 25836, checked in by Mathieu Morlighem, 4 years ago

merged trunk-jpl and trunk for revision 25834

File size: 4.0 KB
RevLine 
[25023]1#Test Name: SquareSheetHydrologyGlaDS
2import numpy as np
3from model import *
4from triangle import triangle
5from setmask import setmask
6from setflowequation import setflowequation
7from parameterize import parameterize
8from solve import solve
9from SetIceSheetBC import SetIceSheetBC
10from generic import generic
11
12#create model:
13md = triangle(model(), '../Exp/Square.exp', 50000.)
14md.mesh.x = md.mesh.x / 100
15md.mesh.y = md.mesh.y / 100
16#miscellaneous
17md = setmask(md, '', '') #everywhere grounded
18md = setflowequation(md, 'SSA', 'all')
19md.miscellaneous.name = 'testChannels'
20md.stressbalance.maxiter = 2 #Make sure it runs quickly...
21
22#Some constants
23md.constants.g = 9.8
24md.materials.rho_ice = 910
25
26#Geometry
27md.geometry.surface = -0.02 * md.mesh.x + 320
28md.geometry.bed = np.zeros((md.mesh.numberofvertices))
29md.geometry.base = md.geometry.bed
30md.geometry.thickness = md.geometry.surface - md.geometry.bed
31
32#Define initial conditions
33md.initialization.vx = 1.0e-6 * md.constants.yts * np.ones((md.mesh.numberofvertices))
34md.initialization.vy = np.zeros((md.mesh.numberofvertices))
35md.initialization.temperature = (273. - 20.) * np.ones((md.mesh.numberofvertices))
36md.initialization.watercolumn = 0.03 * np.ones((md.mesh.numberofvertices))
37md.initialization.hydraulic_potential = md.materials.rho_ice * md.constants.g * md.geometry.thickness
38
39#Materials
[25029]40md.materials.rheology_B = (5e-25)**(-1./3.) * np.ones((md.mesh.numberofvertices))
[25023]41md.materials.rheology_n = 3. * np.ones((md.mesh.numberofelements))
42
43#Friction
44md.friction.coefficient = np.zeros((md.mesh.numberofvertices))
45md.friction.p = np.ones((md.mesh.numberofelements))
46md.friction.q = np.ones((md.mesh.numberofelements))
47#md.friction.coupling = 0
48
49#Boundary conditions:
50md = SetIceSheetBC(md)
51
52md.inversion.iscontrol = 0
53md.transient = transient.deactivateall(md.transient)
54md.transient.ishydrology = 1
55
56# Set numerical conditions
57md.timestepping.time_step = 0.1 / 365
58md.timestepping.final_time = 0.4 / 365
59
60#Change hydrology class to Glads model
61md.hydrology = hydrologyglads()
62md.hydrology.ischannels = 1
63md.hydrology.englacial_void_ratio = 1.e-5
64md.hydrology.moulin_input = np.zeros((md.mesh.numberofvertices))
65md.hydrology.neumannflux = np.zeros((md.mesh.numberofelements))
66md.hydrology.bump_height = 1.e-1 * np.ones((md.mesh.numberofvertices))
67md.hydrology.sheet_conductivity = 1.e-3 * np.ones((md.mesh.numberofvertices))
68
69# BCs for hydrology
70pos = np.where(np.logical_and(md.mesh.x == 100, md.mesh.vertexonboundary))
71md.hydrology.spcphi = np.nan * np.ones((md.mesh.numberofvertices))
72md.hydrology.spcphi[pos] = md.materials.rho_ice * md.constants.g * md.geometry.thickness[pos]
73
74md.cluster = generic('np', 2)
75md = solve(md, 'Transient') #or 'tr'
76
77#Fields and tolerances to track changes
78field_names = ['HydrologySheetThickness1', 'HydraulicPotential1', 'ChannelArea1',
79 'HydrologySheetThickness2', 'HydraulicPotential2', 'ChannelArea2',
80 'HydrologySheetThickness3', 'HydraulicPotential3', 'ChannelArea3',
81 'HydrologySheetThickness4', 'HydraulicPotential4', 'ChannelArea4']
82field_tolerances = [1e-13, 1e-13, 1e-13,
83 1e-13, 1e-13, 2e-13,
84 1e-13, 1e-13, 7e-13,
85 1e-13, 1e-13, 2e-12]
86field_values = [md.results.TransientSolution[0].HydrologySheetThickness,
87 md.results.TransientSolution[0].HydraulicPotential,
88 md.results.TransientSolution[0].ChannelArea,
89 md.results.TransientSolution[1].HydrologySheetThickness,
90 md.results.TransientSolution[1].HydraulicPotential,
91 md.results.TransientSolution[1].ChannelArea,
92 md.results.TransientSolution[2].HydrologySheetThickness,
93 md.results.TransientSolution[2].HydraulicPotential,
94 md.results.TransientSolution[2].ChannelArea,
95 md.results.TransientSolution[3].HydrologySheetThickness,
96 md.results.TransientSolution[3].HydraulicPotential,
97 md.results.TransientSolution[3].ChannelArea]
Note: See TracBrowser for help on using the repository browser.