Ignore:
Timestamp:
06/07/17 10:50:54 (8 years ago)
Author:
Eric.Larour
Message:

CHG: merged branch back to trunk-jpl 21754.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/branches/trunk-larour-NatGeoScience2016/test/NightlyRun/test2002.py

    r21085 r21759  
    11#Test Name: EarthSlr
    2 from MatlabFuncs import *
    3 from PythonFuncs import *
    42from model import *
    5 from numpy import *
     3from socket import gethostname
     4import numpy as np
    65from parameterize import *
    76from solve import *
     
    1211from love_numbers import *
    1312
    14 #mesh earth: 
    15 md=model() 
     13#mesh earth:
     14md=model()
    1615md.mesh=gmshplanet('radius',6.371012*10**3,'resolution',700.) #500 km resolution mesh
    1716
    1817#parameterize slr solution:
    19 #slr loading:  {{{
    20 md.slr.deltathickness=zeros((md.mesh.numberofelements,1))
    21 md.slr.sealevel=zeros((md.mesh.numberofvertices,1))
     18#slr loading:
     19md.slr.deltathickness=np.zeros((md.mesh.numberofelements))
     20md.slr.sealevel=np.zeros((md.mesh.numberofvertices))
    2221#antarctica
    23 late=numpy.sum(md.mesh.lat[md.mesh.elements-1],axis=1)/3
    24 longe=numpy.sum(md.mesh.long[md.mesh.elements-1],axis=1)/3
    25 pos=numpy.nonzero(late <-80)
     22late=np.sum(md.mesh.lat[md.mesh.elements-1],axis=1)/3
     23longe=np.sum(md.mesh.long[md.mesh.elements-1],axis=1)/3
     24pos=np.where(late <-80)
    2625md.slr.deltathickness[pos]=-100
    2726#greenland
    28 pos=numpy.nonzero(logical_and_n(late > 70,late < 80,longe>-60,longe<-30))
     27pos=np.where(np.logical_and.reduce((late > 70,late < 80,longe>-60,longe<-30)))
    2928md.slr.deltathickness[pos]=-100
    3029
    31 #elastic loading from love numbers: 
     30#elastic loading from love numbers:
    3231nlov=101
    33 md.slr.love_h = love_numbers('h')[:nlov];
    34 md.slr.love_k = love_numbers('k')[:nlov];
    35 md.slr.love_l = love_numbers('l')[:nlov];
     32md.slr.love_h = love_numbers('h')[:nlov]
     33md.slr.love_k = love_numbers('k')[:nlov]
     34md.slr.love_l = love_numbers('l')[:nlov]
    3635
    37 #}}}
    38 #mask:  {{{
    39 md.mask=maskpsl() # use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset
    40 mask=gmtmask(md.mesh.lat,md.mesh.long)
     36#mask:
     37md.mask=maskpsl() # use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset
     38mask=gmtmask(md.mesh.lat,md.mesh.long)
    4139
    42 icemask=ones((md.mesh.numberofvertices,1))
    43 pos=nonzero(mask==0)[0];  icemask[pos]=-1
    44 pos=nonzero(sum(mask[md.mesh.elements.astype(int)-1],axis=1)<3)[0]
     40icemask=np.ones((md.mesh.numberofvertices))
     41pos=np.where(mask==0)[0] 
     42icemask[pos]=-1
     43pos=np.where(np.sum(mask[md.mesh.elements.astype(int)-1],axis=1)<3)[0]
    4544icemask[md.mesh.elements[pos,:].astype(int)-1]=-1
    4645md.mask.ice_levelset=icemask
    4746
    48 md.mask.ocean_levelset=zeros((md.mesh.numberofvertices,1))
    49 pos=numpy.nonzero(md.mask.ice_levelset==1)
     47md.mask.ocean_levelset=np.zeros((md.mesh.numberofvertices))
     48pos=np.where(md.mask.ice_levelset==1)
    5049md.mask.ocean_levelset[pos]=1
    5150
    5251#make sure that the ice level set is all inclusive:
    53 md.mask.land_levelset=zeros((md.mesh.numberofvertices,1))
    54 md.mask.groundedice_levelset=-ones((md.mesh.numberofvertices,1))
     52md.mask.land_levelset=np.zeros((md.mesh.numberofvertices))
     53md.mask.groundedice_levelset=-np.ones((md.mesh.numberofvertices))
    5554
    56 #make sure wherever there is an ice load, that the mask is set to ice: 
    57 pos=nonzero(md.slr.deltathickness)[0];
     55#make sure wherever there is an ice load, that the mask is set to ice:
     56pos=np.nonzero(md.slr.deltathickness)[0]
    5857icemask[md.mesh.elements[pos,:]-1]=-1
    59 # }}}
     58
    6059
    6160#geometry
    6261di=md.materials.rho_ice/md.materials.rho_water
    63 md.geometry.thickness=ones((md.mesh.numberofvertices,1))
    64 md.geometry.surface=(1-di)*zeros((md.mesh.numberofvertices,1))
     62md.geometry.thickness=np.ones((md.mesh.numberofvertices))
     63md.geometry.surface=(1-di)*np.zeros((md.mesh.numberofvertices))
    6564md.geometry.base=md.geometry.surface-md.geometry.thickness
    6665md.geometry.bed=md.geometry.base
    6766
    6867#materials
    69 md.initialization.temperature=273.25*ones((md.mesh.numberofvertices,1))
     68md.initialization.temperature=273.25*np.ones((md.mesh.numberofvertices))
    7069md.materials.rheology_B=paterson(md.initialization.temperature)
    71 md.materials.rheology_n=3*ones((md.mesh.numberofelements,1))
     70md.materials.rheology_n=3*np.ones((md.mesh.numberofelements))
    7271
    7372#Miscellaneous
     
    7574
    7675#Solution parameters
    77 md.slr.reltol=NaN
     76md.slr.reltol=np.nan
    7877md.slr.abstol=1e-3
    7978
     
    8281md.slr.elastic=0
    8382md=solve(md,'Sealevelrise')
    84 Seustatic=md.results.SealevelriseSolution.Sealevel;
     83Seustatic=md.results.SealevelriseSolution.Sealevel
    8584
    8685#eustatic + rigid run:
     
    8887md.slr.elastic=0
    8988md=solve(md,'Sealevelrise')
    90 Srigid=md.results.SealevelriseSolution.Sealevel;
     89Srigid=md.results.SealevelriseSolution.Sealevel
    9190
    9291#eustatic + rigid + elastic run:
     
    9493md.slr.elastic=1
    9594md=solve(md,'Sealevelrise')
    96 Selastic=md.results.SealevelriseSolution.Sealevel;
     95Selastic=md.results.SealevelriseSolution.Sealevel
    9796
    9897#eustatic + rigid + elastic + rotation run:
    9998md.slr.rigid=1
    10099md.slr.elastic=1
    101 md.slr.rotation=1;
    102 md=solve(md,'Sealevelrise');
    103 Srotation=md.results.SealevelriseSolution.Sealevel;
     100md.slr.rotation=1
     101md=solve(md,'Sealevelrise')
     102Srotation=md.results.SealevelriseSolution.Sealevel
    104103
    105104#Fields and tolerances to track changes
Note: See TracChangeset for help on using the changeset viewer.