Changeset 17432


Ignore:
Timestamp:
03/14/14 11:40:04 (11 years ago)
Author:
jbondzio
Message:

ADD: setting mask.ice_levelset from argus file in setmask

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)
     1function md=setmask(md,floatingicename,groundedicename,varargin)
    22%SETMASK - establish boundaries between grounded and floating ice.
    33%
     
    1515
    1616%some checks on list of arguments
    17 if ((nargin~=3) | (nargout~=1)),
     17if ((mod(nargin,2)==0) | (nargout~=1))
    1818        help mask
    1919        error('mask error message');
     20end
     21
     22if(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
    2031end
    2132
     
    4253
    4354%level sets
    44 md.mask.ice_levelset=-1.*ones(md.mesh.numberofvertices,1);
    4555md.mask.groundedice_levelset=vertexongroundedice;
    4656md.mask.groundedice_levelset(find(vertexongroundedice==0.))=-1.;
     57
     58if(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
     66else
     67        md.mask.ice_levelset = -1.*ones(md.mesh.numberofvertices,1);
     68end
     69
     70
  • issm/trunk-jpl/src/m/parameterization/setmask.py

    r17118 r17432  
    11import numpy
     2import os
     3from model import *
    24from FlagElements import *
    35
    4 def setmask(md, floatingicename, groundedicename):
     6def setmask(md, floatingicename, groundedicename, *args):
    57        """
    68        SETMASK - establish boundaries between grounded and floating ice.
     
    1820              md=setmask(md,'Iceshelves.exp','Islands.exp');
    1921        """
     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)
    2031
    2132        #Get assigned fields
     
    4253
    4354        #level sets
    44         md.mask.ice_levelset         = -1.*numpy.ones((md.mesh.numberofvertices,1))
    4555        md.mask.groundedice_levelset = -1.*numpy.ones((md.mesh.numberofvertices,1))
    4656        md.mask.groundedice_levelset[md.mesh.elements[numpy.nonzero(elementongroundedice),:]-1]=1.
    4757
     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
    4869        return md
Note: See TracChangeset for help on using the changeset viewer.