Changeset 17432
- Timestamp:
- 03/14/14 11:40:04 (11 years ago)
- Location:
- issm/trunk-jpl/src/m/parameterization
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/parameterization/setmask.m
r17118 r17432 1 function md=setmask(md,floatingicename,groundedicename )1 function md=setmask(md,floatingicename,groundedicename,varargin) 2 2 %SETMASK - establish boundaries between grounded and floating ice. 3 3 % … … 15 15 16 16 %some checks on list of arguments 17 if (( nargin~=3) | (nargout~=1)),17 if ((mod(nargin,2)==0) | (nargout~=1)) 18 18 help mask 19 19 error('mask error message'); 20 end 21 22 if(nargin>0) 23 if(varargin(1)='icedomain') 24 icedomainname=varargin(2); 25 else 26 error('mask error message: wrong field specified. Only icedomain allowed for now.'); 27 end 28 if ~exist(icedomainname), 29 error(['setmask error message: file ' icedomainname ' not found!']); 30 end 20 31 end 21 32 … … 42 53 43 54 %level sets 44 md.mask.ice_levelset=-1.*ones(md.mesh.numberofvertices,1);45 55 md.mask.groundedice_levelset=vertexongroundedice; 46 56 md.mask.groundedice_levelset(find(vertexongroundedice==0.))=-1.; 57 58 if(nargin>0) 59 if(varargin(1)='icedomain') 60 md.mask.ice_levelset = 1.*ones(md.mesh.numberofvertices,1); 61 %use contourtomesh to set ice values inside ice domain 62 [vertexinsideicedomain,elementinsideicedomain]=ContourToMesh(elements,x,y,icedomainname,'node',1); 63 pos=find(vertexinsideicedomain==1.); 64 md.mask.ice_levelset(pos) = -1.; 65 end 66 else 67 md.mask.ice_levelset = -1.*ones(md.mesh.numberofvertices,1); 68 end 69 70 -
issm/trunk-jpl/src/m/parameterization/setmask.py
r17118 r17432 1 1 import numpy 2 import os 3 from model import * 2 4 from FlagElements import * 3 5 4 def setmask(md, floatingicename, groundedicename ):6 def setmask(md, floatingicename, groundedicename, *args): 5 7 """ 6 8 SETMASK - establish boundaries between grounded and floating ice. … … 18 20 md=setmask(md,'Iceshelves.exp','Islands.exp'); 19 21 """ 22 #some checks on list of arguments 23 if not isinstance(md,model): 24 raise TypeError("setmask error message") 25 26 if len(args)%2: 27 raise TypeError("odd number of arguments provided in setmask") 28 29 #process options 30 options=pairoptions(*args) 20 31 21 32 #Get assigned fields … … 42 53 43 54 #level sets 44 md.mask.ice_levelset = -1.*numpy.ones((md.mesh.numberofvertices,1))45 55 md.mask.groundedice_levelset = -1.*numpy.ones((md.mesh.numberofvertices,1)) 46 56 md.mask.groundedice_levelset[md.mesh.elements[numpy.nonzero(elementongroundedice),:]-1]=1. 47 57 58 if(len(args)): 59 md.mask.ice_levelset = 1.*numpy.ones((md.mesh.numberofvertices,1)) 60 icedomainfile = options.getfieldvalue('icedomain','none') 61 if not os.path.exists(icedomainfile): 62 raise IOError("setmask error message: ice domain file '%s' not found." % icedomainfile) 63 #use contourtomesh to set ice values inside ice domain 64 [vertexinsideicedomain,elementinsideicedomain]=ContourToMesh(elements,x,y,icedomainfile,'node',1) 65 md.mask.ice_levelset[numpy.nonzero(vertexinsideicedomain)[0]] = -1. 66 else: 67 md.mask.ice_levelset = -1.*numpy.ones((md.mesh.numberofvertices,1)) 68 48 69 return md
Note:
See TracChangeset
for help on using the changeset viewer.