1 | #Test Name: ValleyGlacierLevelsetEnthalpyHO3d
|
---|
2 | from model import *
|
---|
3 | from socket import gethostname
|
---|
4 | from triangle import *
|
---|
5 | from setmask import *
|
---|
6 | from parameterize import *
|
---|
7 | from setflowequation import *
|
---|
8 | from solve import *
|
---|
9 |
|
---|
10 |
|
---|
11 | md = triangle(model(), '../Exp/Square.exp', 50000)
|
---|
12 | md = setmask(md, '', '')
|
---|
13 | md = parameterize(md, '../Par/ValleyGlacierShelf.py')
|
---|
14 | md.extrude(3, 2.)
|
---|
15 | md = setflowequation(md, 'HO', 'all')
|
---|
16 | md.cluster = generic('name', gethostname(), 'np', 3)
|
---|
17 |
|
---|
18 | #Thermal model
|
---|
19 | pos_surf = np.where(md.mesh.vertexonsurface)[0]
|
---|
20 | md.thermal.spctemperature[pos_surf] = md.initialization.temperature[pos_surf]
|
---|
21 | md.thermal.isenthalpy = True
|
---|
22 | md.thermal.isdynamicbasalspc = True
|
---|
23 |
|
---|
24 | #Transient
|
---|
25 | md.transient.isstressbalance = True
|
---|
26 | md.transient.ismovingfront = True
|
---|
27 | md.transient.ismasstransport = True
|
---|
28 | md.transient.issmb = True
|
---|
29 | md.transient.isthermal = True
|
---|
30 | md.transient.isgroundingline = True
|
---|
31 | md.groundingline.melt_interpolation = 'SubelementMelt1'
|
---|
32 |
|
---|
33 | md = solve(md, 'Transient')
|
---|
34 |
|
---|
35 | #Fields and tolerances to track changes
|
---|
36 | field_names = ['Vx1', 'Vy1', 'Vel1', 'Pressure1', 'Thickness1', 'Surface1', 'MaskIceLevelset1', 'Enthalpy1', 'Watercolumn1',
|
---|
37 | 'Vx2', 'Vy2', 'Vel2', 'Pressure2', 'Thickness2', 'Surface2', 'MaskIceLevelset2', 'Enthalpy2', 'Watercolumn2',
|
---|
38 | 'Vx3', 'Vy3', 'Vel3', 'Pressure3', 'Thickness3', 'Surface3', 'MaskIceLevelset3', 'Enthalpy3', 'Watercolumn3']
|
---|
39 | field_tolerances = [8e-13, 6e-13, 8e-13, 3e-13, 3e-13, 2e-13, 2e-13, 1e-13, 1e-13,
|
---|
40 | 3e-12, 4e-12, 3e-12, 3e-13, 5e-13, 2e-13, 2e-13, 1e-13, 1e-13,
|
---|
41 | 4e-12, 1e-11, 4e-12, 5e-13, 6e-13, 2e-13, 2e-13, 1e-13, 1e-13]
|
---|
42 | field_values = [md.results.TransientSolution[0].Vx,
|
---|
43 | md.results.TransientSolution[0].Vy,
|
---|
44 | md.results.TransientSolution[0].Vel,
|
---|
45 | md.results.TransientSolution[0].Pressure,
|
---|
46 | md.results.TransientSolution[0].Thickness,
|
---|
47 | md.results.TransientSolution[0].Surface,
|
---|
48 | md.results.TransientSolution[0].MaskIceLevelset,
|
---|
49 | md.results.TransientSolution[0].Enthalpy,
|
---|
50 | md.results.TransientSolution[0].Watercolumn,
|
---|
51 | md.results.TransientSolution[1].Vx,
|
---|
52 | md.results.TransientSolution[1].Vy,
|
---|
53 | md.results.TransientSolution[1].Vel,
|
---|
54 | md.results.TransientSolution[1].Pressure,
|
---|
55 | md.results.TransientSolution[1].Thickness,
|
---|
56 | md.results.TransientSolution[1].Surface,
|
---|
57 | md.results.TransientSolution[1].MaskIceLevelset,
|
---|
58 | md.results.TransientSolution[1].Enthalpy,
|
---|
59 | md.results.TransientSolution[1].Watercolumn,
|
---|
60 | md.results.TransientSolution[2].Vx,
|
---|
61 | md.results.TransientSolution[2].Vy,
|
---|
62 | md.results.TransientSolution[2].Vel,
|
---|
63 | md.results.TransientSolution[2].Pressure,
|
---|
64 | md.results.TransientSolution[2].Thickness,
|
---|
65 | md.results.TransientSolution[2].Surface,
|
---|
66 | md.results.TransientSolution[2].MaskIceLevelset,
|
---|
67 | md.results.TransientSolution[2].Enthalpy,
|
---|
68 | md.results.TransientSolution[2].Watercolumn]
|
---|