source: issm/trunk-jpl/test/NightlyRun/test2113.py@ 24261

Last change on this file since 24261 was 24261, checked in by bdef, 5 years ago

BUG: still some space fix

File size: 2.7 KB
RevLine 
[22350]1#Test Name: Esa2Dsurface
[24214]2#Northern hemisphere example for north - south, east - west components of horiz motion
[23793]3#Same as test2111.m except that AIS is assumed to have located in Northern Hemisphere
[22350]4
5import numpy as np
6from model import *
7from socket import gethostname
8from solve import *
9from roundmesh import *
10from love_numbers import *
11from paterson import *
12
13#mesh ais: {{{
14md = model()
[23793]15md = triangle(md, '../Exp/Ais.exp', 200000) # max element size
[22350]16# }}}
17#define load: {{{
[24214]18md.esa.deltathickness = np.zeros((md.mesh.numberofelements, ))
[23793]19disc_radius = 500 # km
[22350]20index = md.mesh.elements
21x_element = np.mean(md.mesh.x[index - 1], 1) - 1.0e6
[22358]22y_element = np.mean(md.mesh.y[index - 1], 1) + 1.0e6
[22350]23rad_dist = np.sqrt(x_element**2 + y_element**2) / 1000 # radial distance in km
[24261]24md.esa.deltathickness[np.where(rad_dist <= disc_radius)] = -1 # 1 m water withdrawl
[22350]25# }}}
26#love numbers: {{{
[24214]27nlov = 10000 # horizontal displacements do not work for low degree truncation, e.g., 101
[23793]28md.esa.love_h = np.array(love_numbers('h', 'CF'))
[22350]29md.esa.love_h = np.resize(md.esa.love_h, nlov + 1)
[23793]30md.esa.love_l = np.array(love_numbers('l', 'CF'))
[22350]31md.esa.love_l = np.resize(md.esa.love_l, nlov + 1)
32# }}}
33#mask: {{{
[23793]34#make sure wherever there is an ice load, that the mask is set to ice:
[24214]35md.mask.ice_levelset = np.ones((md.mesh.numberofvertices, ))
[22350]36pos = np.where(md.esa.deltathickness)
[24261]37md.mask.ice_levelset[md.mesh.elements[pos, :]] = -1
[22350]38
[23793]39#is ice grounded?
[24261]40md.mask.groundedice_levelset = -np.ones((md.mesh.numberofvertices, ))
[22350]41pos = np.where(md.mask.ice_levelset <= 0)
42md.mask.groundedice_levelset[pos] = 1
43# }}}
44#geometry: {{{
45di = md.materials.rho_ice / md.materials.rho_water
[24214]46md.geometry.thickness = np.ones((md.mesh.numberofvertices, ))
47md.geometry.surface = (1 - di) * np.zeros((md.mesh.numberofvertices, ))
[22350]48md.geometry.base = md.geometry.surface - md.geometry.thickness
49md.geometry.bed = md.geometry.base
50# }}}
51#materials: {{{
[24214]52md.initialization.temperature = 273.25 * np.ones((md.mesh.numberofvertices, ))
[22350]53md.materials.rheology_B = paterson(md.initialization.temperature)
[24214]54md.materials.rheology_n = 3 * np.ones((md.mesh.numberofelements, ))
[22350]55# }}}
56#additional parameters, miscellaneous: {{{
[23793]57md.miscellaneous.name = 'test2113'
58md.esa.degacc = 0.01
59md.esa.hemisphere = 1 # AIS is placed in Northern Hemisphere
[22350]60# }}}
61
62#solve esa: {{{
[23793]63md.esa.requested_outputs = ['EsaUmotion', 'EsaNmotion', 'EsaEmotion']
64md.cluster = generic('name', gethostname(), 'np', 3)
[22350]65md.verbose = verbose('111111111')
[23793]66md = solve(md, 'Esa')
[22350]67# }}}
68#Fields and tolerances to track changes: {{{
[23793]69field_names = ['EsaUmotion', 'EsaNmotion', 'EsaEmotion']
70field_tolerances = [1e-13, 1e-13, 1e-13]
71field_values = [md.results.EsaSolution.EsaUmotion,
72 md.results.EsaSolution.EsaNmotion,
73 md.results.EsaSolution.EsaEmotion]
[22350]74# }}}
Note: See TracBrowser for help on using the repository browser.