source: issm/trunk-jpl/test/NightlyRun/test448.py@ 27031

Last change on this file since 27031 was 27031, checked in by Mathieu Morlighem, 3 years ago

CHG: moving MLHO to MOLHO

File size: 2.7 KB
Line 
1#Test Name: RoundSheetShelfGLMigrationMOLHO2d
2import numpy as np
3from model import *
4from socket import gethostname
5from roundmesh import roundmesh
6from setmask import setmask
7from parameterize import parameterize
8from setflowequation import setflowequation
9from solve import solve
10from SetMOLHOBC import SetMOLHOBC
11
12
13radius = 1.e6
14shelfextent = 2.e5
15
16md = roundmesh(model(), radius, 50000.)
17#fix center node to 0, 0
18rad = np.sqrt(md.mesh.x**2 + md.mesh.y**2)
19pos = np.argmin(rad)
20md.mesh.x[pos] = 0.
21md.mesh.y[pos] = 0. #the closest node to the center is changed to be exactly at the center
22xelem = np.mean(md.mesh.x[md.mesh.elements - 1], axis=1)
23yelem = np.mean(md.mesh.y[md.mesh.elements - 1], axis=1)
24rad = np.sqrt(xelem**2 + yelem**2)
25flags = np.zeros(md.mesh.numberofelements)
26pos = np.nonzero(rad >= (radius - shelfextent))
27flags[pos] = 1
28md = setmask(md, flags, '')
29md = parameterize(md, '../Par/RoundSheetShelf.py')
30md = setflowequation(md, 'MOLHO', 'all')
31md.cluster = generic('name', gethostname(), 'np', 3)
32
33md.transient.isthermal = False
34md.transient.ismasstransport = False
35md.transient.issmb = True
36md.transient.isstressbalance = True
37md.transient.isgroundingline = True
38
39#test different grounding line dynamics.
40md.groundingline.migration = 'AggressiveMigration'
41md = SetMOLHOBC(md)
42md = solve(md, 'Transient')
43element_on_iceshelf_agressive = md.results.TransientSolution[0].MaskOceanLevelset
44vel_agressive = md.results.TransientSolution[0].Vel
45
46md.groundingline.migration = 'SoftMigration'
47md = solve(md, 'Transient')
48element_on_iceshelf_soft = md.results.TransientSolution[0].MaskOceanLevelset
49vel_soft = md.results.TransientSolution[0].Vel
50
51md.mask.ocean_levelset = md.geometry.thickness + md.materials.rho_water / md.materials.rho_ice * md.geometry.bed
52md.groundingline.migration = 'SubelementMigration'
53md.groundingline.friction_interpolation = 'SubelementFriction1'
54md = solve(md, 'Transient')
55element_on_iceshelf_subelement = md.results.TransientSolution[0].MaskOceanLevelset
56vel_subelement = md.results.TransientSolution[0].Vel
57
58md.groundingline.friction_interpolation = 'SubelementFriction2'
59md = solve(md, 'Transient')
60element_on_iceshelf_subelement2 = md.results.TransientSolution[0].MaskOceanLevelset
61vel_subelement2 = md.results.TransientSolution[0].Vel
62
63#Fields and tolerances to track changes
64field_names = ['ElementOnIceShelfAggressive', 'VelAggressive', 'ElementOnIceShelfSoft', 'VelSoft', 'ElementOnIceShelfSubelement', 'VelSubelement', 'ElementOnIceShelfSubelement2', 'VelSubelement2']
65field_tolerances = [1e-13, 2e-13, 1e-13, 2e-13, 1e-13, 2e-13, 1e-13, 2e-13]
66field_values = [element_on_iceshelf_agressive, vel_agressive, element_on_iceshelf_soft, vel_soft, element_on_iceshelf_subelement, vel_subelement, element_on_iceshelf_subelement2, vel_subelement2]
Note: See TracBrowser for help on using the repository browser.