source: issm/trunk/test/Par/Pig.py@ 22758

Last change on this file since 22758 was 22758, checked in by Mathieu Morlighem, 7 years ago

merged trunk-jpl and trunk for revision 22757

  • Property svn:executable set to *
File size: 2.3 KB
RevLine 
[13463]1import os.path
2import inspect
[21341]3from arch import *
[16560]4import numpy
5from verbose import verbose
[13463]6from InterpFromMeshToMesh2d import InterpFromMeshToMesh2d
[16560]7from paterson import paterson
8from SetMarineIceSheetBC import SetMarineIceSheetBC
[13463]9
10#Start defining model parameters here
11
12#Geometry and observation
[21341]13x = numpy.array(archread('../Data/Pig.arch','x'))
14y = numpy.array(archread('../Data/Pig.arch','y'))
15vx_obs = numpy.array(archread('../Data/Pig.arch','vx_obs'))
16vy_obs = numpy.array(archread('../Data/Pig.arch','vy_obs'))
17index = numpy.array(archread('../Data/Pig.arch','index')).astype(int)
18surface = numpy.array(archread('../Data/Pig.arch','surface'))
19thickness = numpy.array(archread('../Data/Pig.arch','thickness'))
[13463]20
21[md.inversion.vx_obs] =InterpFromMeshToMesh2d(index,x,y,vx_obs,md.mesh.x,md.mesh.y)
22[md.inversion.vy_obs] =InterpFromMeshToMesh2d(index,x,y,vy_obs,md.mesh.x,md.mesh.y)
23[md.geometry.surface] =InterpFromMeshToMesh2d(index,x,y,surface,md.mesh.x,md.mesh.y)
24[md.geometry.thickness]=InterpFromMeshToMesh2d(index,x,y,thickness,md.mesh.x,md.mesh.y)
[17806]25md.geometry.base=md.geometry.surface-md.geometry.thickness
[13463]26md.initialization.vx=md.inversion.vx_obs
27md.initialization.vy=md.inversion.vy_obs
[21729]28md.initialization.vz=numpy.zeros((md.mesh.numberofvertices))
29md.initialization.pressure=numpy.zeros((md.mesh.numberofvertices))
[13463]30
31#Materials
[21729]32md.initialization.temperature=(273.-20.)*numpy.ones((md.mesh.numberofvertices))
[13463]33md.materials.rheology_B=paterson(md.initialization.temperature)
[21729]34md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements))
[13463]35md.initialization.temperature=md.initialization.temperature
36
37#Friction
[21729]38md.friction.coefficient=50.*numpy.ones((md.mesh.numberofvertices))
[16137]39md.friction.coefficient[numpy.nonzero(md.mask.groundedice_levelset<0.)[0]]=0.
[21729]40md.friction.p=numpy.ones((md.mesh.numberofelements))
41md.friction.q=numpy.ones((md.mesh.numberofelements))
[13463]42
43#Numerical parameters
[16137]44md.masstransport.stabilization=1.
[13463]45md.verbose=verbose(0)
[14310]46md.settings.waitonlock=30
[13463]47md.timestepping.time_step=1.
48md.timestepping.final_time=2.
[16137]49md.stressbalance.restol=0.05
50md.stressbalance.reltol=1.
[13463]51md.steadystate.reltol=1.
[16137]52md.stressbalance.abstol=float('nan')
[13463]53
54#Boundary conditions:
[13471]55md=SetMarineIceSheetBC(md)
[13463]56
57#Change name so that no test have the same name
58if len(inspect.stack()) > 2:
59 md.miscellaneous.name = os.path.basename(inspect.stack()[2][1]).split('.')[0]
Note: See TracBrowser for help on using the repository browser.