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

Last change on this file was 28013, checked in by Mathieu Morlighem, 17 months ago

merged trunk-jpl and trunk for revision 28011

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