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
RevLine 
[27031]1#Test Name: RoundSheetShelfGLMigrationMOLHO2d
[26439]2import numpy as np
3from model import *
4from socket import gethostname
[26897]5from roundmesh import roundmesh
6from setmask import setmask
7from parameterize import parameterize
8from setflowequation import setflowequation
9from solve import solve
[27031]10from SetMOLHOBC import SetMOLHOBC
[26439]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')
[27031]30md = setflowequation(md, 'MOLHO', 'all')
[26439]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'
[27031]41md = SetMOLHOBC(md)
[26439]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.