Changeset 13020


Ignore:
Timestamp:
08/13/12 14:41:11 (13 years ago)
Author:
jschierm
Message:

NEW: Still another bunch more python checkconsistency and marshall methods for sub-classes (plus other minor changes).

Location:
issm/trunk-jpl/src/m/classes
Files:
38 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/balancethickness.m

    r12663 r13020  
    2727                function md = checkconsistency(obj,md,solution,analyses) % {{{
    2828                        %Early return
    29                         if solution~=BalancethicknessSolutionEnum, return; end
     29                        if solution~=BalancethicknessSolutionEnum(), return; end
    3030
    3131                        md = checkfield(md,'balancethickness.spcthickness','forcing',1);
  • issm/trunk-jpl/src/m/classes/balancethickness.py

    r12958 r13020  
    11#module imports
    22from fielddisplay import fielddisplay
     3from EnumDefinitions import *
     4from checkfield import *
     5from WriteData import *
     6
    37class balancethickness(object):
     8        """
     9        BALANCETHICKNESS class definition
     10
     11           Usage:
     12              balancethickness=balancethickness();
     13        """
     14
    415        #properties
    516        def __init__(self):
    617                # {{{ Properties
    7                 self.spcthickness = float('NaN')
    8                 self.thickening_rate           = float('NaN')
    9                 self.stabilization           = 0
     18                self.spcthickness      = float('NaN')
     19                self.thickening_rate   = float('NaN')
     20                self.stabilization     = 0
    1021
    1122                #set defaults
     
    1324
    1425                #}}}
    15         def __repr__(obj):
     26        def __repr__(self):
    1627                # {{{ Display
    1728               
    1829                string='   balance thickness solution parameters:'
    1930               
    20                 string="%s\n\n%s"%(string,fielddisplay(obj,'spcthickness','thickness constraints (NaN means no constraint)'))
    21                 string="%s\n%s"%(string,fielddisplay(obj,'thickening_rate','ice thickening rate used in the mass conservation (dh/dt)'))
    22                 string="%s\n%s"%(string,fielddisplay(obj,'stabilization','0: None, 1: SU, 2: MacAyeal''s artificial diffusivity, 3:DG'))
     31                string="%s\n\n%s"%(string,fielddisplay(self,'spcthickness','thickness constraints (NaN means no constraint)'))
     32                string="%s\n%s"%(string,fielddisplay(self,'thickening_rate','ice thickening rate used in the mass conservation (dh/dt)'))
     33                string="%s\n%s"%(string,fielddisplay(self,'stabilization',"0: None, 1: SU, 2: MacAyeal's artificial diffusivity, 3:DG"))
    2334                return string
    2435                #}}}
    25         def setdefaultparameters(obj):
     36        def setdefaultparameters(self):
    2637                # {{{setdefaultparameters
    2738               
    2839                #Type of stabilization used
    29                 obj.stabilization=1
     40                self.stabilization=1
    3041
    31                 return obj
     42                return self
    3243        #}}}
    3344
     45        def checkconsistency(self,md,solution,analyses):    # {{{
     46                #Early return
     47                if not solution==BalancethicknessSolutionEnum():
     48                        return md
     49
     50                md = checkfield(md,'balancethickness.spcthickness','forcing',1)
     51                md = checkfield(md,'balancethickness.thickening_rate','size',[md.mesh.numberofvertices],'NaN',1)
     52                md = checkfield(md,'balancethickness.stabilization','size',[1],'values',[0,1,2,3])
     53
     54                return md
     55        # }}}
     56
     57        def marshall(self,fid):    # {{{
     58                WriteData(fid,'object',self,'fieldname','spcthickness','format','DoubleMat','mattype',1)
     59                WriteData(fid,'object',self,'fieldname','thickening_rate','format','DoubleMat','mattype',1)
     60                WriteData(fid,'object',self,'fieldname','stabilization','format','Integer')
     61        # }}}
     62
  • issm/trunk-jpl/src/m/classes/basalforcings.m

    r12663 r13020  
    2424                function md = checkconsistency(obj,md,solution,analyses) % {{{
    2525
    26                         if ismember(PrognosticAnalysisEnum,analyses) & ~(solution==TransientSolutionEnum & md.transient.isprognostic==0),
     26                        if ismember(PrognosticAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.isprognostic==0),
    2727                                md = checkfield(md,'basalforcings.melting_rate','NaN',1,'forcing',1);
    2828                        end
    29                         if ismember(BalancethicknessAnalysisEnum,analyses),
     29                        if ismember(BalancethicknessAnalysisEnum(),analyses),
    3030                                md = checkfield(md,'basalforcings.melting_rate','NaN',1,'size',[md.mesh.numberofvertices 1]);
    3131                        end
    32                         if ismember(ThermalAnalysisEnum,analyses) & ~(solution==TransientSolutionEnum & md.transient.isthermal==0),
     32                        if ismember(ThermalAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.isthermal==0),
    3333                                md = checkfield(md,'basalforcings.melting_rate','NaN',1,'forcing',1);
    3434                                md = checkfield(md,'basalforcings.geothermalflux','NaN',1,'forcing',1,'>=',0);
  • issm/trunk-jpl/src/m/classes/basalforcings.py

    r12958 r13020  
    4040        def checkconsistency(self,md,solution,analyses):    # {{{
    4141
    42                 if PrognosticAnalysisEnum in analyses and not (solution==TransientSolutionEnum and not md.transient.isprognostic):
     42                if PrognosticAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.isprognostic):
    4343                        md = checkfield(md,'basalforcings.melting_rate','NaN',1,'forcing',1)
    4444
    45                 if BalancethicknessAnalysisEnum in analyses:
     45                if BalancethicknessAnalysisEnum() in analyses:
    4646                        md = checkfield(md,'basalforcings.melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
    4747
    48                 if ThermalAnalysisEnum in analyses and not (solution==TransientSolutionEnum and not md.transient.isthermal):
     48                if ThermalAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.isthermal):
    4949                        md = checkfield(md,'basalforcings.melting_rate','NaN',1,'forcing',1)
    5050                        md = checkfield(md,'basalforcings.geothermalflux','NaN',1,'forcing',1,'>=',0)
  • issm/trunk-jpl/src/m/classes/diagnostic.m

    r12945 r13020  
    6767
    6868                        %Early return
    69                         if ~ismember(DiagnosticHorizAnalysisEnum,analyses), return; end
    70                         %if ~ismember(DiagnosticHorizAnalysisEnum,analyses) |  (solution==TransientSolutionEnum & md.transient.isdiagnostic==0), return; end
     69                        if ~ismember(DiagnosticHorizAnalysisEnum(),analyses), return; end
     70                        %if ~ismember(DiagnosticHorizAnalysisEnum(),analyses) |  (solution==TransientSolutionEnum() & md.transient.isdiagnostic==0), return; end
    7171
    7272                        md = checkfield(md,'diagnostic.spcvx','forcing',1);
     
    102102                        if any(sum(isnan(md.diagnostic.referential),2)==0),
    103103                                pos=find(sum(isnan(md.diagnostic.referential),2)==0);
    104                                 if any(abs(dot(md.diagnostic.referential(pos,1:3)',md.diagnostic.referential(pos,4:6)'))>eps),
    105                                         md = checkmessage(md,['Vectors in diagnostic.referential (colums 1 to 3 and 4 to 6) must be orthogonal']);
     104                                if any(abs(dot(md.diagnostic.referential(pos,1:3),md.diagnostic.referential(pos,4:6),2))>eps),
     105                                        md = checkmessage(md,['Vectors in diagnostic.referential (columns 1 to 3 and 4 to 6) must be orthogonal']);
    106106                                end
    107107                        end
     
    168168                        %marshall ice front
    169169                        data=obj.icefront;
    170                         pos=find(data(:,end)==0); data(pos,end)=AirEnum;
    171                         pos=find(data(:,end)==1); data(pos,end)=WaterEnum;
    172                         pos=find(data(:,end)==2); data(pos,end)=IceEnum;
    173                         WriteData(fid,'data',data,'enum',DiagnosticIcefrontEnum,'format','DoubleMat','mattype',3);
     170                        pos=find(data(:,end)==0); data(pos,end)=AirEnum();
     171                        pos=find(data(:,end)==1); data(pos,end)=WaterEnum();
     172                        pos=find(data(:,end)==2); data(pos,end)=IceEnum();
     173                        WriteData(fid,'data',data,'enum',DiagnosticIcefrontEnum(),'format','DoubleMat','mattype',3);
    174174                end % }}}
    175175        end
  • issm/trunk-jpl/src/m/classes/diagnostic.py

    r12958 r13020  
    11#module imports
     2import numpy
     3import sys
    24from fielddisplay import fielddisplay
     5from EnumDefinitions import *
     6from checkfield import *
     7from WriteData import *
    38
    49class diagnostic(object):
     10        """
     11        DIAGNOSTIC class definition
     12
     13           Usage:
     14              diagnostic=diagnostic();
     15        """
     16
    517        #properties
    618        def __init__(self):
     
    2941
    3042                #}}}
    31         def __repr__(obj):
     43        def __repr__(self):
    3244                # {{{ Display
    33                
    3445               
    3546                string='\n   Diagnostic solution parameters:'
    3647                string="%s\n\n%s"%(string,'      Convergence criteria:')
    3748                       
    38                 string="%s\n%s"%(string,fielddisplay(obj,'restol','mechanical equilibrium residual convergence criterion'))
    39                 string="%s\n%s"%(string,fielddisplay(obj,'reltol','velocity relative convergence criterion, NaN -> not applied'))
    40                 string="%s\n%s"%(string,fielddisplay(obj,'abstol','velocity absolute convergence criterion, NaN -> not applied'))
    41                 string="%s\n%s"%(string,fielddisplay(obj,'isnewton','Apply Newton''s method instead of a Picard fixed point method'))
    42                 string="%s\n%s"%(string,fielddisplay(obj,'maxiter','maximum number of nonlinear iterations'))
    43                 string="%s\n%s"%(string,fielddisplay(obj,'viscosity_overshoot','over-shooting constant new=new+C*(new-old)'))
     49                string="%s\n%s"%(string,fielddisplay(self,'restol','mechanical equilibrium residual convergence criterion'))
     50                string="%s\n%s"%(string,fielddisplay(self,'reltol','velocity relative convergence criterion, NaN -> not applied'))
     51                string="%s\n%s"%(string,fielddisplay(self,'abstol','velocity absolute convergence criterion, NaN -> not applied'))
     52                string="%s\n%s"%(string,fielddisplay(self,'isnewton',"Apply Newton's method instead of a Picard fixed point method"))
     53                string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of nonlinear iterations'))
     54                string="%s\n%s"%(string,fielddisplay(self,'viscosity_overshoot','over-shooting constant new=new+C*(new-old)'))
    4455
    4556                string="%s\n%s"%(string,'      boundary conditions:')
    4657
    47                 string="%s\n%s"%(string,fielddisplay(obj,'spcvx','x-axis velocity constraint (NaN means no constraint)'))
    48                 string="%s\n%s"%(string,fielddisplay(obj,'spcvy','y-axis velocity constraint (NaN means no constraint)'))
    49                 string="%s\n%s"%(string,fielddisplay(obj,'spcvz','z-axis velocity constraint (NaN means no constraint)'))
    50                 string="%s\n%s"%(string,fielddisplay(obj,'icefront','segments on ice front list (last column 0-> Air, 1-> Water, 2->Ice'))
     58                string="%s\n%s"%(string,fielddisplay(self,'spcvx','x-axis velocity constraint (NaN means no constraint)'))
     59                string="%s\n%s"%(string,fielddisplay(self,'spcvy','y-axis velocity constraint (NaN means no constraint)'))
     60                string="%s\n%s"%(string,fielddisplay(self,'spcvz','z-axis velocity constraint (NaN means no constraint)'))
     61                string="%s\n%s"%(string,fielddisplay(self,'icefront','segments on ice front list (last column 0-> Air, 1-> Water, 2->Ice'))
    5162
    5263                string="%s\n%s"%(string,'      Rift options:')
    53                 string="%s\n%s"%(string,fielddisplay(obj,'rift_penalty_threshold','threshold for instability of mechanical constraints'))
    54                 string="%s\n%s"%(string,fielddisplay(obj,'rift_penalty_lock','number of iterations before rift penalties are locked'))
     64                string="%s\n%s"%(string,fielddisplay(self,'rift_penalty_threshold','threshold for instability of mechanical constraints'))
     65                string="%s\n%s"%(string,fielddisplay(self,'rift_penalty_lock','number of iterations before rift penalties are locked'))
    5566
    5667                string="%s\n%s"%(string,'      Penalty options:')
    57                 string="%s\n%s"%(string,fielddisplay(obj,'penalty_factor','offset used by penalties: penalty = Kmax*10^offset'))
    58                 string="%s\n%s"%(string,fielddisplay(obj,'vertex_pairing','pairs of vertices that are penalized'))
     68                string="%s\n%s"%(string,fielddisplay(self,'penalty_factor','offset used by penalties: penalty = Kmax*10^offset'))
     69                string="%s\n%s"%(string,fielddisplay(self,'vertex_pairing','pairs of vertices that are penalized'))
    5970
    6071                string="%s\n%s"%(string,'      Other:')
    61                 string="%s\n%s"%(string,fielddisplay(obj,'shelf_dampening','use dampening for floating ice ? Only for Stokes model'))
    62                 string="%s\n%s"%(string,fielddisplay(obj,'stokesreconditioning','multiplier for incompressibility equation. Only for Stokes model'))
    63                 string="%s\n%s"%(string,fielddisplay(obj,'referential','local referential'))
    64                 string="%s\n%s"%(string,fielddisplay(obj,'requested_outputs','additional outputs requested'))
     72                string="%s\n%s"%(string,fielddisplay(self,'shelf_dampening','use dampening for floating ice ? Only for Stokes model'))
     73                string="%s\n%s"%(string,fielddisplay(self,'stokesreconditioning','multiplier for incompressibility equation. Only for Stokes model'))
     74                string="%s\n%s"%(string,fielddisplay(self,'referential','local referential'))
     75                string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
    6576
    6677                return string
    6778                #}}}
    6879               
    69         def setdefaultparameters(obj):
     80        def setdefaultparameters(self):
    7081                # {{{setdefaultparameters
    7182                #maximum of non-linear iterations.
    72                 obj.maxiter=100
     83                self.maxiter=100
    7384
    7485                #Convergence criterion: absolute, relative and residual
    75                 obj.restol=10**-4;
    76                 obj.reltol=0.01
    77                 obj.abstol=10
     86                self.restol=10**-4
     87                self.reltol=0.01
     88                self.abstol=10
    7889
    79                 obj.stokesreconditioning=10**13
    80                 obj.shelf_dampening=0
     90                self.stokesreconditioning=10**13
     91                self.shelf_dampening=0
    8192
    8293                #Penalty factor applied kappa=max(stiffness matrix)*10^penalty_factor
    83                 obj.penalty_factor=3
     94                self.penalty_factor=3
    8495
    8596                #coefficient to update the viscosity between each iteration of
    8697                #a diagnostic according to the following formula
    8798                #viscosity(n)=viscosity(n)+viscosity_overshoot(viscosity(n)-viscosity(n-1))
    88                 obj.viscosity_overshoot=0
     99                self.viscosity_overshoot=0
    89100
    90101                #Stop the iterations of rift if below a threshold
    91                 obj.rift_penalty_threshold=0
     102                self.rift_penalty_threshold=0
    92103
    93104                #in some solutions, it might be needed to stop a run when only
    94105                #a few constraints remain unstable. For thermal computation, this
    95106                #parameter is often used.
    96                 obj.rift_penalty_lock=10
     107                self.rift_penalty_lock=10
    97108
    98                 return obj
     109                return self
    99110        #}}}
     111
     112        def checkconsistency(self,md,solution,analyses):    # {{{
     113
     114                #Early return
     115                if not DiagnosticHorizAnalysisEnum() in analyses:
     116                        return md
     117                #if (not DiagnosticHorizAnalysisEnum() in analyses) | (solution==TransientSolutionEnum() and not md.transient.isdiagnostic):
     118                #       return md
     119
     120                md = checkfield(md,'diagnostic.spcvx','forcing',1)
     121                md = checkfield(md,'diagnostic.spcvy','forcing',1)
     122                if md.mesh.dimension==3:
     123                        md = checkfield(md,'diagnostic.spcvz','forcing',1)
     124                md = checkfield(md,'diagnostic.restol','size',[1],'>',0)
     125                md = checkfield(md,'diagnostic.reltol','size',[1])
     126                md = checkfield(md,'diagnostic.abstol','size',[1])
     127                md = checkfield(md,'diagnostic.isnewton','numel',1,'values',[0,1])
     128                md = checkfield(md,'diagnostic.stokesreconditioning','size',[1,1],'NaN',1)
     129                md = checkfield(md,'diagnostic.viscosity_overshoot','size',[1,1],'NaN',1)
     130                if md.mesh.dimension==2:
     131                        md = checkfield(md,'diagnostic.icefront','size',[float('NaN'),4],'NaN',1)
     132                else:
     133                        md = checkfield(md,'diagnostic.icefront','size',[float('NaN'),6],'NaN',1)
     134                md = checkfield(md,'diagnostic.icefront[:,-1]','values',[0,1,2])
     135                md = checkfield(md,'diagnostic.maxiter','size',[1],'>=',1)
     136                md = checkfield(md,'diagnostic.referential','size',[md.mesh.numberofvertices,6])
     137                if not md.diagnostic.requested_outputs:
     138                        md = checkfield(md,'diagnostic.requested_outputs','size',[float('NaN'),1])
     139
     140                #singular solution
     141                #if ~any((~isnan(md.diagnostic.spcvx)+~isnan(md.diagnostic.spcvy))==2),
     142                if not any((numpy.logical_not(numpy.isnan(md.diagnostic.spcvx))+numpy.logical_not(numpy.isnan(md.diagnostic.spcvy)))==2):
     143                        md.checkmessage("model is not well posed (singular). You need at least one node with fixed velocity!")
     144                #CHECK THAT EACH LINES CONTAINS ONLY NAN VALUES OR NO NAN VALUES
     145                if any(not numpy.sum(numpy.isnan(md.diagnostic.referential),axis=1)==0 and not numpy.sum(numpy.isnan(md.diagnostic.referential),axis=1)==6):
     146                        md.checkmessage("Each line of diagnostic.referential should contain either only NaN values or no NaN values")
     147                #CHECK THAT THE TWO VECTORS PROVIDED ARE ORTHOGONAL
     148                if any(numpy.sum(numpy.isnan(md.diagnostic.referential),axis=1)==0):
     149                        pos=[i for i,item in enumerate(numpy.sum(numpy.isnan(md.diagnostic.referential),axis=1)) if item==0]
     150#                       numpy.inner (and numpy.dot) calculate all the dot product permutations, resulting in a full matrix multiply
     151#                       if any(numpy.abs(numpy.inner(md.diagnostic.referential[pos,0:2],md.diagnostic.referential[pos,3:5]).diagonal())>sys.float_info.epsilon):
     152#                               md.checkmessage("Vectors in diagnostic.referential (columns 1 to 3 and 4 to 6) must be orthogonal")
     153                        for item in md.diagnostic.referential[pos,:]:
     154                                if numpy.abs(numpy.inner(item[0:2],item[3:5]))>sys.float_info.epsilon:
     155                                        md.checkmessage("Vectors in diagnostic.referential (columns 1 to 3 and 4 to 6) must be orthogonal")
     156                #CHECK THAT NO rotation specified for FS Grounded ice at base
     157                if md.mesh.dimension==3 and md.flowequation.isstokes:
     158                        pos=numpy.nonzero(numpy.logical_and(md.mask.vertexongroundedice,md.mesh.vertexonbed))
     159                        if any(not numpy.isnan(md.diagnostic.referential[pos,:])):
     160                                md.checkmessage("no referential should be specified for basal vertices of grounded ice")
     161
     162                return md
     163        # }}}
     164
     165        def marshall(self,fid):    # {{{
     166                WriteData(fid,'object',self,'fieldname','spcvx','format','DoubleMat','mattype',1)
     167                WriteData(fid,'object',self,'fieldname','spcvy','format','DoubleMat','mattype',1)
     168                WriteData(fid,'object',self,'fieldname','spcvz','format','DoubleMat','mattype',1)
     169                WriteData(fid,'object',self,'fieldname','restol','format','Double')
     170                WriteData(fid,'object',self,'fieldname','reltol','format','Double')
     171                WriteData(fid,'object',self,'fieldname','abstol','format','Double')
     172                WriteData(fid,'object',self,'fieldname','isnewton','format','Boolean')
     173                WriteData(fid,'object',self,'fieldname','stokesreconditioning','format','Double')
     174                WriteData(fid,'object',self,'fieldname','viscosity_overshoot','format','Double')
     175                WriteData(fid,'object',self,'fieldname','maxiter','format','Integer')
     176                WriteData(fid,'object',self,'fieldname','shelf_dampening','format','Integer')
     177                WriteData(fid,'object',self,'fieldname','vertex_pairing','format','DoubleMat','mattype',3)
     178                WriteData(fid,'object',self,'fieldname','penalty_factor','format','Double')
     179                WriteData(fid,'object',self,'fieldname','rift_penalty_lock','format','Integer')
     180                WriteData(fid,'object',self,'fieldname','rift_penalty_threshold','format','Integer')
     181                WriteData(fid,'object',self,'fieldname','referential','format','DoubleMat','mattype',1)
     182                WriteData(fid,'object',self,'fieldname','requested_outputs','format','DoubleMat','mattype',3)
     183
     184                #marshall ice front
     185                data=self.icefront
     186                data[[i for i,item in enumerate(data[:,-1]) if item==0],-1]=AirEnum()
     187                data[[i for i,item in enumerate(data[:,-1]) if item==1],-1]=WaterEnum()
     188                data[[i for i,item in enumerate(data[:,-1]) if item==2],-1]=IceEnum()
     189                WriteData(fid,'data',data,'enum',DiagnosticIcefrontEnum(),'format','DoubleMat','mattype',3)
     190        # }}}
     191
  • issm/trunk-jpl/src/m/classes/flaim.m

    r12663 r13020  
    3535
    3636                        %Early return
    37                         if solution~=FlaimSolutionEnum, return; end
     37                        if solution~=FlaimSolutionEnum(), return; end
    3838
    3939                        md = checkfield(md,'flaim.tracks','file',1);
  • issm/trunk-jpl/src/m/classes/flowequation.m

    r12949 r13020  
    2929                function md = checkconsistency(obj,md,solution,analyses) % {{{
    3030
    31                         if ismember(DiagnosticHorizAnalysisEnum,analyses),
     31                        if ismember(DiagnosticHorizAnalysisEnum(),analyses),
    3232
    3333                                md = checkfield(md,'flowequation.ismacayealpattyn','numel',1,'values',[0 1]);
     
    4848                                end
    4949                        end
    50                         if ismember(DiagnosticHutterAnalysisEnum,analyses),
     50                        if ismember(DiagnosticHutterAnalysisEnum(),analyses),
    5151                                if any(md.flowequation.element_equation==1),
    5252                                        if(md.flowequation.element_equation & md.mask.elementonfloatingice),
     
    7979                        %convert approximations to enums
    8080                        data=obj.vertex_equation;
    81                         pos=find(data==0); data(pos,end)=NoneApproximationEnum;
    82                         pos=find(data==1); data(pos,end)=HutterApproximationEnum;
    83                         pos=find(data==2); data(pos,end)=MacAyealApproximationEnum;
    84                         pos=find(data==3); data(pos,end)=PattynApproximationEnum;
    85                         pos=find(data==4); data(pos,end)=StokesApproximationEnum;
    86                         pos=find(data==5); data(pos,end)=MacAyealPattynApproximationEnum;
    87                         pos=find(data==6); data(pos,end)=MacAyealStokesApproximationEnum;
    88                         pos=find(data==7); data(pos,end)=PattynStokesApproximationEnum;
    89                         WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum,'format','DoubleMat','mattype',1);
     81                        pos=find(data==0); data(pos,end)=NoneApproximationEnum();
     82                        pos=find(data==1); data(pos,end)=HutterApproximationEnum();
     83                        pos=find(data==2); data(pos,end)=MacAyealApproximationEnum();
     84                        pos=find(data==3); data(pos,end)=PattynApproximationEnum();
     85                        pos=find(data==4); data(pos,end)=StokesApproximationEnum();
     86                        pos=find(data==5); data(pos,end)=MacAyealPattynApproximationEnum();
     87                        pos=find(data==6); data(pos,end)=MacAyealStokesApproximationEnum();
     88                        pos=find(data==7); data(pos,end)=PattynStokesApproximationEnum();
     89                        WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1);
    9090                        data=obj.element_equation;
    91                         pos=find(data==0); data(pos,end)=NoneApproximationEnum;
    92                         pos=find(data==1); data(pos,end)=HutterApproximationEnum;
    93                         pos=find(data==2); data(pos,end)=MacAyealApproximationEnum;
    94                         pos=find(data==3); data(pos,end)=PattynApproximationEnum;
    95                         pos=find(data==4); data(pos,end)=StokesApproximationEnum;
    96                         pos=find(data==5); data(pos,end)=MacAyealPattynApproximationEnum;
    97                         pos=find(data==6); data(pos,end)=MacAyealStokesApproximationEnum;
    98                         pos=find(data==7); data(pos,end)=PattynStokesApproximationEnum;
    99                         WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum,'format','DoubleMat','mattype',2);
     91                        pos=find(data==0); data(pos,end)=NoneApproximationEnum();
     92                        pos=find(data==1); data(pos,end)=HutterApproximationEnum();
     93                        pos=find(data==2); data(pos,end)=MacAyealApproximationEnum();
     94                        pos=find(data==3); data(pos,end)=PattynApproximationEnum();
     95                        pos=find(data==4); data(pos,end)=StokesApproximationEnum();
     96                        pos=find(data==5); data(pos,end)=MacAyealPattynApproximationEnum();
     97                        pos=find(data==6); data(pos,end)=MacAyealStokesApproximationEnum();
     98                        pos=find(data==7); data(pos,end)=PattynStokesApproximationEnum();
     99                        WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2);
    100100                end % }}}
    101101        end
  • issm/trunk-jpl/src/m/classes/flowequation.py

    r12958 r13020  
    5353        def checkconsistency(self,md,solution,analyses):    # {{{
    5454
    55                 if DiagnosticHorizAnalysisEnum in analyses:
     55                if DiagnosticHorizAnalysisEnum() in analyses:
    5656                        md = checkfield(md,'flowequation.ismacayealpattyn','numel',1,'values',[0,1])
    5757                        md = checkfield(md,'flowequation.ishutter','numel',1,'values',[0,1])
     
    6969                                md.checkmessage("no element types set for this model. At least one of ismacayealpattyn, ishutter or isstokes need to be =1")
    7070
    71                 if DiagnosticHutterAnalysisEnum in analyses:
     71                if DiagnosticHutterAnalysisEnum() in analyses:
    7272                        if any(md.flowequation.element_equation==1):
    7373                                if any(numpy.logical_and(md.flowequation.element_equation,md.mask.elementonfloatingice)):
     
    8686                #convert approximations to enums
    8787                data=self.vertex_equation
    88                 data[[i for i,item in enumerate(data) if item==0]]=NoneApproximationEnum
    89                 data[[i for i,item in enumerate(data) if item==1]]=HutterApproximationEnum
    90                 data[[i for i,item in enumerate(data) if item==2]]=MacAyealApproximationEnum
    91                 data[[i for i,item in enumerate(data) if item==3]]=PattynApproximationEnum
    92                 data[[i for i,item in enumerate(data) if item==4]]=StokesApproximationEnum
    93                 data[[i for i,item in enumerate(data) if item==5]]=MacAyealPattynApproximationEnum
    94                 data[[i for i,item in enumerate(data) if item==6]]=MacAyealStokesApproximationEnum
    95                 data[[i for i,item in enumerate(data) if item==7]]=PattynStokesApproximationEnum
    96                 WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum,'format','DoubleMat','mattype',1)
     88                data[[i for i,item in enumerate(data) if item==0]]=NoneApproximationEnum()
     89                data[[i for i,item in enumerate(data) if item==1]]=HutterApproximationEnum()
     90                data[[i for i,item in enumerate(data) if item==2]]=MacAyealApproximationEnum()
     91                data[[i for i,item in enumerate(data) if item==3]]=PattynApproximationEnum()
     92                data[[i for i,item in enumerate(data) if item==4]]=StokesApproximationEnum()
     93                data[[i for i,item in enumerate(data) if item==5]]=MacAyealPattynApproximationEnum()
     94                data[[i for i,item in enumerate(data) if item==6]]=MacAyealStokesApproximationEnum()
     95                data[[i for i,item in enumerate(data) if item==7]]=PattynStokesApproximationEnum()
     96                WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1)
    9797                data=self.element_equation
    98                 data[[i for i,item in enumerate(data) if item==0]]=NoneApproximationEnum
    99                 data[[i for i,item in enumerate(data) if item==1]]=HutterApproximationEnum
    100                 data[[i for i,item in enumerate(data) if item==2]]=MacAyealApproximationEnum
    101                 data[[i for i,item in enumerate(data) if item==3]]=PattynApproximationEnum
    102                 data[[i for i,item in enumerate(data) if item==4]]=StokesApproximationEnum
    103                 data[[i for i,item in enumerate(data) if item==5]]=MacAyealPattynApproximationEnum
    104                 data[[i for i,item in enumerate(data) if item==6]]=MacAyealStokesApproximationEnum
    105                 data[[i for i,item in enumerate(data) if item==7]]=PattynStokesApproximationEnum
    106                 WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum,'format','DoubleMat','mattype',2)
     98                data[[i for i,item in enumerate(data) if item==0]]=NoneApproximationEnum()
     99                data[[i for i,item in enumerate(data) if item==1]]=HutterApproximationEnum()
     100                data[[i for i,item in enumerate(data) if item==2]]=MacAyealApproximationEnum()
     101                data[[i for i,item in enumerate(data) if item==3]]=PattynApproximationEnum()
     102                data[[i for i,item in enumerate(data) if item==4]]=StokesApproximationEnum()
     103                data[[i for i,item in enumerate(data) if item==5]]=MacAyealPattynApproximationEnum()
     104                data[[i for i,item in enumerate(data) if item==6]]=MacAyealStokesApproximationEnum()
     105                data[[i for i,item in enumerate(data) if item==7]]=PattynStokesApproximationEnum()
     106                WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2)
    107107        # }}}
    108108
  • issm/trunk-jpl/src/m/classes/friction.m

    r12663 r13020  
    2525
    2626                        %Early return
    27                         if ~ismember(DiagnosticHorizAnalysisEnum,analyses) & ~ismember(ThermalAnalysisEnum,analyses), return; end
     27                        if ~ismember(DiagnosticHorizAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
    2828
    2929                        md = checkfield(md,'friction.coefficient','NaN',1,'size',[md.mesh.numberofvertices 1]);
  • issm/trunk-jpl/src/m/classes/friction.py

    r12958 r13020  
    4141
    4242                #Early return
    43                 if not DiagnosticHorizAnalysisEnum in analyses and not ThermalAnalysisEnum in analyses:
     43                if not DiagnosticHorizAnalysisEnum() in analyses and not ThermalAnalysisEnum() in analyses:
    4444                        return md
    4545
  • issm/trunk-jpl/src/m/classes/geometry.m

    r12663 r13020  
    3232                                md = checkmessage(md,['equality thickness=surface-bed violated']);
    3333                        end
    34                         if solution==TransientSolutionEnum & md.transient.isgroundingline,
     34                        if solution==TransientSolutionEnum() & md.transient.isgroundingline,
    3535                                md = checkfield(md,'geometry.bathymetry','NaN',1,'size',[md.mesh.numberofvertices 1]);
    3636                        end
     
    4747                end % }}}
    4848                function marshall(obj,fid) % {{{
    49                         WriteData(fid,'data',obj.surface,'format','DoubleMat','mattype',1,'enum',SurfaceEnum);
    50                         WriteData(fid,'data',obj.thickness,'format','DoubleMat','mattype',1,'enum',ThicknessEnum);
    51                         WriteData(fid,'data',obj.bed,'format','DoubleMat','mattype',1,'enum',BedEnum);
    52                         WriteData(fid,'data',obj.bathymetry,'format','DoubleMat','mattype',1,'enum',BathymetryEnum);
     49                        WriteData(fid,'data',obj.surface,'format','DoubleMat','mattype',1,'enum',SurfaceEnum());
     50                        WriteData(fid,'data',obj.thickness,'format','DoubleMat','mattype',1,'enum',ThicknessEnum());
     51                        WriteData(fid,'data',obj.bed,'format','DoubleMat','mattype',1,'enum',BedEnum());
     52                        WriteData(fid,'data',obj.bathymetry,'format','DoubleMat','mattype',1,'enum',BathymetryEnum());
    5353                        WriteData(fid,'object',obj,'fieldname','hydrostatic_ratio','format','DoubleMat','mattype',1);
    5454                end % }}}
  • issm/trunk-jpl/src/m/classes/geometry.py

    r12958 r13020  
    5252                        md.checkmessage("equality thickness=surface-bed violated")
    5353                end
    54                 if solution==TransientSolutionEnum and md.transient.isgroundingline:
     54                if solution==TransientSolutionEnum() and md.transient.isgroundingline:
    5555                        md = checkfield(md,'geometry.bathymetry','NaN',1,'size',[md.mesh.numberofvertices])
    5656
     
    5959
    6060        def marshall(self,fid):    # {{{
    61                 WriteData(fid,'data',self.surface,'format','DoubleMat','mattype',1,'enum',SurfaceEnum)
    62                 WriteData(fid,'data',self.thickness,'format','DoubleMat','mattype',1,'enum',ThicknessEnum)
    63                 WriteData(fid,'data',self.bed,'format','DoubleMat','mattype',1,'enum',BedEnum)
    64                 WriteData(fid,'data',self.bathymetry,'format','DoubleMat','mattype',1,'enum',BathymetryEnum)
     61                WriteData(fid,'data',self.surface,'format','DoubleMat','mattype',1,'enum',SurfaceEnum())
     62                WriteData(fid,'data',self.thickness,'format','DoubleMat','mattype',1,'enum',ThicknessEnum())
     63                WriteData(fid,'data',self.bed,'format','DoubleMat','mattype',1,'enum',BedEnum())
     64                WriteData(fid,'data',self.bathymetry,'format','DoubleMat','mattype',1,'enum',BathymetryEnum())
    6565                WriteData(fid,'object',self,'fieldname','hydrostatic_ratio','format','DoubleMat','mattype',1)
    6666        # }}}
  • issm/trunk-jpl/src/m/classes/groundingline.m

    r12663 r13020  
    3636                                        md = checkmessage(md,['requesting grounding line migration, but bathymetry is absent!']);
    3737                                end
    38                                 pos=find(md.mask.vertexongroundedice); 
     38                                pos=find(md.mask.vertexongroundedice);
    3939                                if any(abs(md.geometry.bed(pos)-md.geometry.bathymetry(pos))>10^-10),
    40                                         md = checkmessage(md,['bathymetry not equal to bed on grounded ice !']);
     40                                        md = checkmessage(md,['bathymetry not equal to bed on grounded ice!']);
    4141                                end
    42                                 pos=find(md.mask.vertexonfloatingice); 
     42                                pos=find(md.mask.vertexonfloatingice);
    4343                                if any(md.geometry.bathymetry(pos)-md.geometry.bed(pos)>10^-9),
    44                                         md = checkmessage(md,['bathymetry superior to bed on floating ice !']);
     44                                        md = checkmessage(md,['bathymetry superior to bed on floating ice!']);
    4545                                end
    4646                        end
     
    5555                end % }}}
    5656                function marshall(obj,fid) % {{{
    57                         WriteData(fid,'data',StringToEnum(obj.migration),'enum',GroundinglineMigrationEnum,'format','Integer');
     57                        WriteData(fid,'data',StringToEnum(obj.migration),'enum',GroundinglineMigrationEnum(),'format','Integer');
    5858                        WriteData(fid,'object',obj,'fieldname','melting_rate','format','Double');
    5959                end % }}}
  • issm/trunk-jpl/src/m/classes/groundingline.py

    r12958 r13020  
    11#module imports
     2import numpy
    23from fielddisplay import fielddisplay
     4from EnumDefinitions import *
     5from checkfield import *
     6from WriteData import *
     7from MatlabFuncs import *
    38
    49class groundingline(object):
     10        """
     11        CONSTANTS class definition
     12
     13           Usage:
     14              groundingline=groundingline();
     15        """
     16
    517        #properties
    618        def __init__(self):
     
    1325
    1426                #}}}
    15         def __repr__(obj):
     27        def __repr__(self):
    1628                # {{{ Display
    1729                string='   grounding line solution parameters:'
    1830
    19                 string="%s\n\n%s"%(string,fielddisplay(obj,'migration','type of grounding line migration: ''SoftMigration'',''AgressiveMigration'' or ''None'''))
    20                 string="%s\n%s"%(string,fielddisplay(obj,'melting_rate','melting rate applied when previously grounded parts start floating'))
     31                string="%s\n\n%s"%(string,fielddisplay(self,'migration','type of grounding line migration: ''SoftMigration'',''AgressiveMigration'' or ''None'''))
     32                string="%s\n%s"%(string,fielddisplay(self,'melting_rate','melting rate applied when previously grounded parts start floating'))
    2133                return string
    2234                #}}}   
    23         def setdefaultparameters(obj):
     35        def setdefaultparameters(self):
    2436                # {{{setdefaultparameters
    2537
    2638                #Type of migration
    27                 obj.migration='None'
     39                self.migration='None'
    2840
    2941                #basal melting rate correction:
    30                 obj.melting_rate=0;
     42                self.melting_rate=0;
    3143
    32                 return obj
     44                return self
    3345        #}}}
    3446
     47        def checkconsistency(self,md,solution,analyses):    # {{{
     48
     49                md = checkfield(md,'groundingline.migration','values',['None','AgressiveMigration','SoftMigration'])
     50
     51                if not strcmp(self.migration,'None'):
     52                        if any(numpy.isnan(md.geometry.bathymetry)):
     53                                md.checkmessage("requesting grounding line migration, but bathymetry is absent!")
     54                        pos=numpy.nonzero(md.mask.vertexongroundedice)
     55                        if any(numpy.abs(md.geometry.bed[pos]-md.geometry.bathymetry[pos])>10**-10):
     56                                md.checkmessage("bathymetry not equal to bed on grounded ice!")
     57                        pos=numpy.nonzero(md.mask.vertexonfloatingice)
     58                        if any(md.geometry.bathymetry[pos]-md.geometry.bed[pos]>10**-9):
     59                                md.checkmessage("bathymetry superior to bed on floating ice!")
     60
     61                return md
     62        # }}}
     63
     64        def marshall(self,fid):    # {{{
     65                WriteData(fid,'data',StringToEnum(self.migration),'enum',GroundinglineMigrationEnum(),'format','Integer')
     66                WriteData(fid,'object',self,'fieldname','melting_rate','format','Double')
     67        # }}}
     68
  • issm/trunk-jpl/src/m/classes/hydrology.m

    r12663 r13020  
    3838
    3939                        %Early return
    40                         if ~ismember(HydrologyAnalysisEnum,analyses), return; end
     40                        if ~ismember(HydrologyAnalysisEnum(),analyses), return; end
    4141
    4242                        md = checkfield(md,'hydrology.spcwatercolumn','forcing',1);
     
    5757                function marshall(obj,fid) % {{{
    5858                        WriteData(fid,'object',obj,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1);
    59                         WriteData(fid,'object',obj,'fieldname','n','format','Double'); 
     59                        WriteData(fid,'object',obj,'fieldname','n','format','Double');
    6060                        WriteData(fid,'object',obj,'fieldname','CR','format','Double');
    6161                        WriteData(fid,'object',obj,'fieldname','p','format','Double');
  • issm/trunk-jpl/src/m/classes/hydrology.py

    r12958 r13020  
    11#module imports
    22from fielddisplay import fielddisplay
     3from EnumDefinitions import *
     4from checkfield import *
     5from WriteData import *
    36
    47class hydrology(object):
     8        """
     9        HYDROLOGY class definition
     10
     11           Usage:
     12              hydrology=hydrology();
     13        """
     14
    515        #properties
    616        def __init__(self):
     
    1727                self.setdefaultparameters()
    1828
    19        
    2029                #}}}
    21         def __repr__(obj):
     30        def __repr__(self):
    2231                # {{{ Display
    2332               
    2433                string='   hydrology solution parameters:'
    25                 string="%s\n\n%s"%(string,fielddisplay(obj,'spcwatercolumn','water thickness constraints (NaN means no constraint)'))
    26                 string="%s\n%s"%(string,fielddisplay(obj,'n','Manning roughness coefficient'))
    27                 string="%s\n%s"%(string,fielddisplay(obj,'CR','tortuosity parameter'))
    28                 string="%s\n%s"%(string,fielddisplay(obj,'p','dimensionless exponent in Manning velocity formula'))
    29                 string="%s\n%s"%(string,fielddisplay(obj,'q','dimensionless exponent in Manning velocity formula'))
    30                 string="%s\n%s"%(string,fielddisplay(obj,'kn','parameter in effective pressure formula'))
    31                 string="%s\n%s"%(string,fielddisplay(obj,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.'))
     34                string="%s\n\n%s"%(string,fielddisplay(self,'spcwatercolumn','water thickness constraints (NaN means no constraint)'))
     35                string="%s\n%s"%(string,fielddisplay(self,'n','Manning roughness coefficient'))
     36                string="%s\n%s"%(string,fielddisplay(self,'CR','tortuosity parameter'))
     37                string="%s\n%s"%(string,fielddisplay(self,'p','dimensionless exponent in Manning velocity formula'))
     38                string="%s\n%s"%(string,fielddisplay(self,'q','dimensionless exponent in Manning velocity formula'))
     39                string="%s\n%s"%(string,fielddisplay(self,'kn','parameter in effective pressure formula'))
     40                string="%s\n%s"%(string,fielddisplay(self,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.'))
    3241                return string
    3342                #}}}
    3443               
    35         def setdefaultparameters(obj):
     44        def setdefaultparameters(self):
    3645                # {{{setdefaultparameters
    3746               
    3847                #Parameters from Johnson's 2002 thesis, section 3.5.4                   
    39                 obj.n=.02                       
    40                 obj.CR=.01
    41                 obj.p=2
    42                 obj.q=1
    43                 obj.kn=0
     48                self.n=.02                     
     49                self.CR=.01
     50                self.p=2
     51                self.q=1
     52                self.kn=0
    4453
    4554                #Type of stabilization to use 0:nothing 1:artificial_diffusivity
    46                 obj.stabilization=1
     55                self.stabilization=1
    4756
    48                 return obj
     57                return self
    4958        #}}}
    5059
     60        def checkconsistency(self,md,solution,analyses):    # {{{
     61
     62                #Early return
     63                if not HydrologyAnalysisEnum() in analyses:
     64                        return md
     65
     66                md = checkfield(md,'hydrology.spcwatercolumn','forcing',1)
     67                md = checkfield(md,'hydrology.stabilization','>=',0)
     68
     69                return md
     70        # }}}
     71
     72        def marshall(self,fid):    # {{{
     73                WriteData(fid,'object',self,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1)
     74                WriteData(fid,'object',self,'fieldname','n','format','Double')
     75                WriteData(fid,'object',self,'fieldname','CR','format','Double')
     76                WriteData(fid,'object',self,'fieldname','p','format','Double')
     77                WriteData(fid,'object',self,'fieldname','q','format','Double')
     78                WriteData(fid,'object',self,'fieldname','kn','format','Double')
     79                WriteData(fid,'object',self,'fieldname','stabilization','format','Double')
     80        # }}}
     81
  • issm/trunk-jpl/src/m/classes/initialization.m

    r12949 r13020  
    2828                end % }}}
    2929                function md = checkconsistency(obj,md,solution,analyses) % {{{
    30                         if ismember(DiagnosticHorizAnalysisEnum,analyses)
     30                        if ismember(DiagnosticHorizAnalysisEnum(),analyses)
    3131                                if ~(isnan(md.initialization.vx) | isnan(md.initialization.vy)),
    3232                                        md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
     
    3434                                end
    3535                        end
    36                         if ismember(PrognosticAnalysisEnum,analyses),
     36                        if ismember(PrognosticAnalysisEnum(),analyses),
    3737                                md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
    3838                                md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
    3939                        end
    40                         if ismember(HydrologyAnalysisEnum,analyses),
     40                        if ismember(HydrologyAnalysisEnum(),analyses),
    4141                                md = checkfield(md,'initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices 1]);
    4242                        end
    43                         if ismember(BalancethicknessAnalysisEnum,analyses),
     43                        if ismember(BalancethicknessAnalysisEnum(),analyses),
    4444                                md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
    4545                                md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
     
    4949                                end
    5050                        end
    51                         if ismember(ThermalAnalysisEnum,analyses),
     51                        if ismember(ThermalAnalysisEnum(),analyses),
    5252                                md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
    5353                                md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
     
    5555                                md = checkfield(md,'initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices 1]);
    5656                        end
    57                         if (ismember(EnthalpyAnalysisEnum,analyses) & md.thermal.isenthalpy) | solution==EnthalpySolutionEnum,
     57                        if (ismember(EnthalpyAnalysisEnum(),analyses) & md.thermal.isenthalpy) | solution==EnthalpySolutionEnum(),
    5858                                md = checkfield(md,'initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices 1]);
    5959                        end
     
    7373                end % }}}
    7474                function marshall(obj,fid) % {{{
    75                         WriteData(fid,'data',obj.vx,'format','DoubleMat','mattype',1,'enum',VxEnum);
    76                         WriteData(fid,'data',obj.vy,'format','DoubleMat','mattype',1,'enum',VyEnum);
    77                         WriteData(fid,'data',obj.vz,'format','DoubleMat','mattype',1,'enum',VzEnum);
    78                         WriteData(fid,'data',obj.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum);
    79                         WriteData(fid,'data',obj.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum);
    80                         WriteData(fid,'data',obj.watercolumn,'format','DoubleMat','mattype',1,'enum',WatercolumnEnum);
    81                         WriteData(fid,'data',obj.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum);
     75                        WriteData(fid,'data',obj.vx,'format','DoubleMat','mattype',1,'enum',VxEnum());
     76                        WriteData(fid,'data',obj.vy,'format','DoubleMat','mattype',1,'enum',VyEnum());
     77                        WriteData(fid,'data',obj.vz,'format','DoubleMat','mattype',1,'enum',VzEnum());
     78                        WriteData(fid,'data',obj.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum());
     79                        WriteData(fid,'data',obj.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum());
     80                        WriteData(fid,'data',obj.watercolumn,'format','DoubleMat','mattype',1,'enum',WatercolumnEnum());
     81                        WriteData(fid,'data',obj.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum());
    8282                end % }}}
    8383        end
  • issm/trunk-jpl/src/m/classes/initialization.py

    r12958 r13020  
    5353
    5454        def checkconsistency(self,md,solution,analyses):    # {{{
    55                 if DiagnosticHorizAnalysisEnum in analyses:
     55                if DiagnosticHorizAnalysisEnum() in analyses:
    5656                        if not any(numpy.isnan(md.initialization.vx) or numpy.isnan(md.initialization.vy)):
    5757                                md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
    5858                                md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
    59                 if PrognosticAnalysisEnum in analyses:
     59                if PrognosticAnalysisEnum() in analyses:
    6060                        md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
    6161                        md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
    62                 if HydrologyAnalysisEnum in analyses:
     62                if HydrologyAnalysisEnum() in analyses:
    6363                        md = checkfield(md,'initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices])
    64                 if BalancethicknessAnalysisEnum in analyses:
     64                if BalancethicknessAnalysisEnum() in analyses:
    6565                        md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
    6666                        md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
     
    6969                                                 numpy.sum(numpy.abs(md.initialization.vy[md.mesh.elements.astype(int)-1]),axis=1)==0)):
    7070                                md.checkmessage("at least one triangle has all its vertices with a zero velocity")
    71                 if ThermalAnalysisEnum in analyses:
     71                if ThermalAnalysisEnum() in analyses:
    7272                        md = checkfield(md,'initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
    7373                        md = checkfield(md,'initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
    7474                        md = checkfield(md,'initialization.vz','NaN',1,'size',[md.mesh.numberofvertices])
    7575                        md = checkfield(md,'initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices])
    76                 if (EnthalpyAnalysisEnum in analyses and md.thermal.isenthalpy) or solution==EnthalpySolutionEnum:
     76                if (EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy) or solution==EnthalpySolutionEnum():
    7777                        md = checkfield(md,'initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices])
    7878
     
    8181
    8282        def marshall(self,fid):    # {{{
    83                 WriteData(fid,'data',self.vx,'format','DoubleMat','mattype',1,'enum',VxEnum)
    84                 WriteData(fid,'data',self.vy,'format','DoubleMat','mattype',1,'enum',VyEnum)
    85                 WriteData(fid,'data',self.vz,'format','DoubleMat','mattype',1,'enum',VzEnum)
    86                 WriteData(fid,'data',self.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum)
    87                 WriteData(fid,'data',self.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum)
    88                 WriteData(fid,'data',self.watercolumn,'format','DoubleMat','mattype',1,'enum',WatercolumnEnum)
    89                 WriteData(fid,'data',self.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum)
     83                WriteData(fid,'data',self.vx,'format','DoubleMat','mattype',1,'enum',VxEnum())
     84                WriteData(fid,'data',self.vy,'format','DoubleMat','mattype',1,'enum',VyEnum())
     85                WriteData(fid,'data',self.vz,'format','DoubleMat','mattype',1,'enum',VzEnum())
     86                WriteData(fid,'data',self.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum())
     87                WriteData(fid,'data',self.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum())
     88                WriteData(fid,'data',self.watercolumn,'format','DoubleMat','mattype',1,'enum',WatercolumnEnum())
     89                WriteData(fid,'data',self.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum())
    9090        # }}}
    9191
  • issm/trunk-jpl/src/m/classes/inversion.m

    r12663 r13020  
    9797                        md = checkfield(md,'inversion.max_parameters','size',[md.mesh.numberofvertices num_controls]);
    9898
    99                         if solution==BalancethicknessSolutionEnum
     99                        if solution==BalancethicknessSolutionEnum()
    100100                                md = checkfield(md,'inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
    101101                        else
     
    159159                                data(i)=StringToEnum(obj.control_parameters{i});
    160160                        end
    161                         WriteData(fid,'data',data,'enum',InversionControlParametersEnum,'format','DoubleMat','mattype',3);
    162                         WriteData(fid,'data',num_control_parameters,'enum',InversionNumControlParametersEnum,'format','Integer');
     161                        WriteData(fid,'data',data,'enum',InversionControlParametersEnum(),'format','DoubleMat','mattype',3);
     162                        WriteData(fid,'data',num_control_parameters,'enum',InversionNumControlParametersEnum(),'format','Integer');
    163163
    164164                        %process cost functions
    165165                        num_cost_functions=size(obj.cost_functions,2);
    166166                        data=obj.cost_functions;
    167                         pos=find(data==101); data(pos)=SurfaceAbsVelMisfitEnum;
    168                         pos=find(data==102); data(pos)=SurfaceRelVelMisfitEnum;
    169                         pos=find(data==103); data(pos)=SurfaceLogVelMisfitEnum;
    170                         pos=find(data==104); data(pos)=SurfaceLogVxVyMisfitEnum;
    171                         pos=find(data==105); data(pos)=SurfaceAverageVelMisfitEnum;
    172                         pos=find(data==201); data(pos)=ThicknessAbsMisfitEnum;
    173                         pos=find(data==501); data(pos)=DragCoefficientAbsGradientEnum;
    174                         pos=find(data==502); data(pos)=RheologyBbarAbsGradientEnum;
    175                         pos=find(data==503); data(pos)=ThicknessAbsGradientEnum;
    176                         WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum,'format','DoubleMat','mattype',3);
    177                         WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum,'format','Integer');
     167                        pos=find(data==101); data(pos)=SurfaceAbsVelMisfitEnum();
     168                        pos=find(data==102); data(pos)=SurfaceRelVelMisfitEnum();
     169                        pos=find(data==103); data(pos)=SurfaceLogVelMisfitEnum();
     170                        pos=find(data==104); data(pos)=SurfaceLogVxVyMisfitEnum();
     171                        pos=find(data==105); data(pos)=SurfaceAverageVelMisfitEnum();
     172                        pos=find(data==201); data(pos)=ThicknessAbsMisfitEnum();
     173                        pos=find(data==501); data(pos)=DragCoefficientAbsGradientEnum();
     174                        pos=find(data==502); data(pos)=RheologyBbarAbsGradientEnum();
     175                        pos=find(data==503); data(pos)=ThicknessAbsGradientEnum();
     176                        WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3);
     177                        WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer');
    178178                end % }}}
    179179        end
  • issm/trunk-jpl/src/m/classes/materials.m

    r12663 r13020  
    110110                        WriteData(fid,'object',obj,'fieldname','rheology_B','format','DoubleMat','mattype',1);
    111111                        WriteData(fid,'object',obj,'fieldname','rheology_n','format','DoubleMat','mattype',2);
    112                         WriteData(fid,'data',StringToEnum(obj.rheology_law),'enum',MaterialsRheologyLawEnum,'format','Integer');
     112                        WriteData(fid,'data',StringToEnum(obj.rheology_law),'enum',MaterialsRheologyLawEnum(),'format','Integer');
    113113                end % }}}
    114114        end
  • issm/trunk-jpl/src/m/classes/materials.py

    r12958 r13020  
    2828                self.rheology_B   = float('NaN')
    2929                self.rheology_n   = float('NaN')
    30                 self.rheology_law = ""
     30                self.rheology_law = ''
    3131
    3232                self.setdefaultparameters()
     
    4747                string="%s\n%s"%(string,fielddisplay(self,"thermal_exchange_velocity","thermal exchange velocity [m/s]"))
    4848                string="%s\n%s"%(string,fielddisplay(self,"rheology_B","flow law parameter [Pa/s^(1/n)]"))
    49                 string="%s\n%s"%(string,fielddisplay(self,"rheology_n","Glen""s flow law exponent"))
    50                 string="%s\n%s"%(string,fielddisplay(self,"rheology_law","law for the temperature dependance of the rheology: ""None"", ""Paterson"" or ""Arrhenius"""))
     49                string="%s\n%s"%(string,fielddisplay(self,"rheology_n","Glen's flow law exponent"))
     50                string="%s\n%s"%(string,fielddisplay(self,"rheology_law","law for the temperature dependance of the rheology: 'None', 'Paterson' or 'Arrhenius'"))
    5151
    5252                return string
     
    115115                WriteData(fid,'object',self,'fieldname','rheology_B','format','DoubleMat','mattype',1)
    116116                WriteData(fid,'object',self,'fieldname','rheology_n','format','DoubleMat','mattype',2)
    117                 WriteData(fid,'data',StringToEnum(self.rheology_law),'enum',MaterialsRheologyLawEnum,'format','Integer')
     117                WriteData(fid,'data',StringToEnum(self.rheology_law),'enum',MaterialsRheologyLawEnum(),'format','Integer')
    118118        # }}}
    119119
  • issm/trunk-jpl/src/m/classes/mesh.m

    r12978 r13020  
    100100                        %Solution specific checks
    101101                        switch(solution),
    102                                 case PrognosticSolutionEnum,
     102                                case PrognosticSolutionEnum(),
    103103                                        if md.prognostic.stabilization==3,
    104104                                                md = checkfield(md,'mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes');
     
    106106                                                md = checkfield(md,'mesh.edges(:,1:3)','>',0);
    107107                                        end
    108                                 case BalancethicknessSolutionEnum,
     108                                case BalancethicknessSolutionEnum(),
    109109                                        if md.balancethickness.stabilization==3,
    110110                                                md = checkfield(md,'mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes');
     
    112112                                                md = checkfield(md,'mesh.edges(:,1:3)','>',0);
    113113                                        end
    114                                 case TransientSolutionEnum,
     114                                case TransientSolutionEnum(),
    115115                                        if md.transient.isprognostic & md.prognostic.stabilization==3,
    116116                                                md = checkfield(md,'mesh.dimension','values',2,'message','Discontinuous Galerkin only supported for 2d meshes');
     
    118118                                                md = checkfield(md,'mesh.edges(:,1:3)','>',0);
    119119                                        end
    120                                 case ThermalSolutionEnum,
     120                                case ThermalSolutionEnum(),
    121121                                        md = checkfield(md,'mesh.dimension','values',3,'message','thermal solution only supported on 3d meshes');
    122122                        end
  • issm/trunk-jpl/src/m/classes/mesh.py

    r12958 r13020  
    110110                string="%s\n%s"%(string,fielddisplay(self,"lat","vertices latitude"))
    111111                string="%s\n%s"%(string,fielddisplay(self,"long","vertices longitude"))
    112                 string="%s\n%s"%(string,fielddisplay(self,"hemisphere","Indicate hemisphere ""n"" or ""s"" "))
     112                string="%s\n%s"%(string,fielddisplay(self,"hemisphere","Indicate hemisphere 'n' or 's'"))
    113113                return string
    114114                #}}}
     
    155155
    156156                #Solution specific checks
    157                 if   solution==PrognosticSolutionEnum:
     157                if   solution==PrognosticSolutionEnum():
    158158                        if md.prognostic.stabilization==3:
    159159                                md = checkfield(md,'mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes")
    160160                                md = checkfield(md,'mesh.edges','size',[float('NaN'),4])
    161161                                md = checkfield(md,'mesh.edges[:,1:3]','>',0)
    162                 elif solution==BalancethicknessSolutionEnum:
     162                elif solution==BalancethicknessSolutionEnum():
    163163                        if md.balancethickness.stabilization==3:
    164164                                md = checkfield(md,'mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes")
    165165                                md = checkfield(md,'mesh.edges','size',[float('NaN'),4])
    166166                                md = checkfield(md,'mesh.edges[:,1:3]','>',0)
    167                 elif solution==TransientSolutionEnum:
     167                elif solution==TransientSolutionEnum():
    168168                        if md.transient.isprognostic and md.prognostic.stabilization==3:
    169169                                md = checkfield(md,'mesh.dimension','values',2,'message',"Discontinuous Galerkin only supported for 2d meshes")
    170170                                md = checkfield(md,'mesh.edges','size',[float('NaN'),4])
    171171                                md = checkfield(md,'mesh.edges[:,1:3]','>',0)
    172                 elif solution==ThermalSolutionEnum:
     172                elif solution==ThermalSolutionEnum():
    173173                        md = checkfield(md,'mesh.dimension','values',3,'message','thermal solution only supported on 3d meshes')
    174174
  • issm/trunk-jpl/src/m/classes/model/model.m

    r13005 r13020  
    10471047                         md.solver           = solver();
    10481048                         if ismumps,
    1049                                  md.solver           = addoptions(md.solver,DiagnosticVertAnalysisEnum,mumpsoptions);
     1049                                 md.solver           = addoptions(md.solver,DiagnosticVertAnalysisEnum(),mumpsoptions);
    10501050                         else
    1051                                  md.solver           = addoptions(md.solver,DiagnosticVertAnalysisEnum,iluasmoptions);
     1051                                 md.solver           = addoptions(md.solver,DiagnosticVertAnalysisEnum(),iluasmoptions);
    10521052                         end
    10531053                         md.cluster          = generic();
  • issm/trunk-jpl/src/m/classes/prognostic.m

    r12663 r13020  
    3838                function md = checkconsistency(obj,md,solution,analyses) % {{{
    3939
    40                         %Early return,
    41                         if ~ismember(PrognosticAnalysisEnum,analyses) |  (solution==TransientSolutionEnum & md.transient.isprognostic==0), return; end
     40                        %Early return
     41                        if ~ismember(PrognosticAnalysisEnum(),analyses) |  (solution==TransientSolutionEnum() & md.transient.isprognostic==0), return; end
    4242
    4343                        md = checkfield(md,'prognostic.spcthickness','forcing',1);
     
    6262                        WriteData(fid,'object',obj,'fieldname','spcthickness','format','DoubleMat','mattype',1);
    6363                        WriteData(fid,'object',obj,'fieldname','min_thickness','format','Double');
    64                         WriteData(fid,'data',StringToEnum(obj.hydrostatic_adjustment),'format','Integer','enum',PrognosticHydrostaticAdjustmentEnum);
     64                        WriteData(fid,'data',StringToEnum(obj.hydrostatic_adjustment),'format','Integer','enum',PrognosticHydrostaticAdjustmentEnum());
    6565                        WriteData(fid,'object',obj,'fieldname','stabilization','format','Integer');
    6666                        WriteData(fid,'object',obj,'fieldname','vertex_pairing','format','DoubleMat','mattype',3);
  • issm/trunk-jpl/src/m/classes/prognostic.py

    r12958 r13020  
    11#module imports
    22from fielddisplay import fielddisplay
     3from EnumDefinitions import *
     4from checkfield import *
     5from WriteData import *
    36
    47class prognostic(object):
     8        """
     9        PROGNOSTIC class definition
     10
     11           Usage:
     12              prognostic=prognostic();
     13        """
     14
    515        #properties
    616        def __init__(self):
     
    1727
    1828                #}}}
    19         def __repr__(obj):
     29        def __repr__(self):
    2030                # {{{ Display
    2131                string='   Prognostic solution parameters:'
    22                 string="%s\n\n%s"%(string,fielddisplay(obj,'spcthickness','thickness constraints (NaN means no constraint)'))
    23                 string="%s\n%s"%(string,fielddisplay(obj,'min_thickness','minimum ice thickness allowed'))
    24                 string="%s\n%s"%(string,fielddisplay(obj,'hydrostatic_adjustment','adjustment of ice shelves surface and bed elevations: ''Incremental'' or ''Absolute'' '))
    25                 string="%s\n%s"%(string,fielddisplay(obj,'stabilization','0->no, 1->artificial_diffusivity, 2->streamline upwinding, 3->discontinuous Galerkin'))
     32                string="%s\n\n%s"%(string,fielddisplay(self,'spcthickness','thickness constraints (NaN means no constraint)'))
     33                string="%s\n%s"%(string,fielddisplay(self,'min_thickness','minimum ice thickness allowed'))
     34                string="%s\n%s"%(string,fielddisplay(self,'hydrostatic_adjustment','adjustment of ice shelves surface and bed elevations: ''Incremental'' or ''Absolute'' '))
     35                string="%s\n%s"%(string,fielddisplay(self,'stabilization','0->no, 1->artificial_diffusivity, 2->streamline upwinding, 3->discontinuous Galerkin'))
    2636
    2737                return string
    2838                #}}}
    2939               
    30         def setdefaultparameters(obj):
     40        def setdefaultparameters(self):
    3141                # {{{setdefaultparameters
    3242               
    3343                #Type of stabilization to use 0:nothing 1:artificial_diffusivity 3:Discontinuous Galerkin
    34                 obj.stabilization=1
     44                self.stabilization=1
    3545
    3646                #Factor applied to compute the penalties kappa=max(stiffness matrix)*10^penalty_factor
    37                 obj.penalty_factor=3
     47                self.penalty_factor=3
    3848
    3949                #Minimum ice thickness that can be used
    40                 obj.min_thickness=1
     50                self.min_thickness=1
    4151
    4252                #Hydrostatic adjustment
    43                 obj.hydrostatic_adjustment='Absolute'
     53                self.hydrostatic_adjustment='Absolute'
    4454
    45                 return obj
     55                return self
    4656        #}}}
    4757
     58        def checkconsistency(self,md,solution,analyses):    # {{{
     59
     60                #Early return
     61                if (not PrognosticAnalysisEnum() in analyses) or (solution==TransientSolutionEnum() and not md.transient.isprognostic):
     62                        return md
     63
     64                md = checkfield(md,'prognostic.spcthickness','forcing',1)
     65                md = checkfield(md,'prognostic.hydrostatic_adjustment','values',['Absolute','Incremental'])
     66                md = checkfield(md,'prognostic.stabilization','values',[0,1,2,3])
     67                md = checkfield(md,'prognostic.min_thickness','>',0)
     68
     69                return md
     70        # }}}
     71
     72        def marshall(self,fid):    # {{{
     73                WriteData(fid,'object',self,'fieldname','spcthickness','format','DoubleMat','mattype',1)
     74                WriteData(fid,'object',self,'fieldname','min_thickness','format','Double')
     75                WriteData(fid,'data',StringToEnum(self.hydrostatic_adjustment),'format','Integer','enum',PrognosticHydrostaticAdjustmentEnum())
     76                WriteData(fid,'object',self,'fieldname','stabilization','format','Integer')
     77                WriteData(fid,'object',self,'fieldname','vertex_pairing','format','DoubleMat','mattype',3)
     78                WriteData(fid,'object',self,'fieldname','penalty_factor','format','Double')
     79        # }}}
     80
  • issm/trunk-jpl/src/m/classes/rifts.m

    r12663 r13020  
    7979                        end
    8080
    81                         WriteData(fid,'data',numrifts,'enum',RiftsNumriftsEnum,'format','Integer');
    82                         WriteData(fid,'data',data,'enum',RiftsRiftstructEnum,'format','DoubleMat','mattype',3);
     81                        WriteData(fid,'data',numrifts,'enum',RiftsNumriftsEnum(),'format','Integer');
     82                        WriteData(fid,'data',data,'enum',RiftsRiftstructEnum(),'format','DoubleMat','mattype',3);
    8383                end % }}}
    8484        end
  • issm/trunk-jpl/src/m/classes/rifts.py

    r12958 r13020  
    8686                        count+=numpairsforthisrift
    8787
    88                 WriteData(fid,'data',numrifts,'enum',RiftsNumriftsEnum,'format','Integer')
    89                 WriteData(fid,'data',data,'enum',RiftsRiftstructEnum,'format','DoubleMat','mattype',3)
     88                WriteData(fid,'data',numrifts,'enum',RiftsNumriftsEnum(),'format','Integer')
     89                WriteData(fid,'data',data,'enum',RiftsRiftstructEnum(),'format','DoubleMat','mattype',3)
    9090        # }}}
    9191
  • issm/trunk-jpl/src/m/classes/solver.m

    r12663 r13020  
    2020                 function obj = addoptions(obj,analysis,varargin) % {{{
    2121                 % Usage example:
    22                  %    md.solver=addoptions(md.solver,DiagnosticHorizAnalysisEnum,stokesoptions());
    23                  %    md.solver=addoptions(md.solver,DiagnosticHorizAnalysisEnum);
     22                 %    md.solver=addoptions(md.solver,DiagnosticHorizAnalysisEnum(),stokesoptions());
     23                 %    md.solver=addoptions(md.solver,DiagnosticHorizAnalysisEnum());
    2424
    2525                         %Convert analysis from enum to string
  • issm/trunk-jpl/src/m/classes/solver.py

    r12958 r13020  
    2626        def addoptions(self,analysis,*args):    # {{{
    2727                # Usage example:
    28                 #    md.solver=addoptions(md.solver,DiagnosticHorizAnalysisEnum,stokesoptions());
    29                 #    md.solver=addoptions(md.solver,DiagnosticHorizAnalysisEnum);
     28                #    md.solver=addoptions(md.solver,DiagnosticHorizAnalysisEnum(),stokesoptions());
     29                #    md.solver=addoptions(md.solver,DiagnosticHorizAnalysisEnum());
    3030
    3131                #Convert analysis from enum to string
  • issm/trunk-jpl/src/m/classes/steadystate.m

    r12663 r13020  
    2929
    3030                        %Early return
    31                         if solution~=SteadystateSolutionEnum, return; end;
     31                        if solution~=SteadystateSolutionEnum(), return; end;
    3232
    3333                        if md.timestepping.time_step~=0,
  • issm/trunk-jpl/src/m/classes/surfaceforcings.m

    r12949 r13020  
    4444                function md = checkconsistency(obj,md,solution,analyses) % {{{
    4545
    46                         if ismember(PrognosticAnalysisEnum,analyses),
     46                        if ismember(PrognosticAnalysisEnum(),analyses),
    4747                                md = checkfield(md,'surfaceforcings.ispdd','numel',1,'values',[0 1]);
    4848                                md = checkfield(md,'surfaceforcings.issmbgradients','numel',1,'values',[0 1]);
     
    7070                                end
    7171                        end
    72                         if ismember(BalancethicknessAnalysisEnum,analyses),
     72                        if ismember(BalancethicknessAnalysisEnum(),analyses),
    7373                                md = checkfield(md,'surfaceforcings.mass_balance','size',[md.mesh.numberofvertices 1],'NaN',1);
    7474                        end
  • issm/trunk-jpl/src/m/classes/surfaceforcings.py

    r12958 r13020  
    7979        def checkconsistency(self,md,solution,analyses):    # {{{
    8080
    81                 if PrognosticAnalysisEnum in analyses:
     81                if PrognosticAnalysisEnum() in analyses:
    8282                        md = checkfield(md,'surfaceforcings.ispdd','numel',1,'values',[0,1])
    8383                        md = checkfield(md,'surfaceforcings.issmbgradients','numel',1,'values',[0,1])
     
    103103                                md = checkfield(md,'surfaceforcings.mass_balance','forcing',1,'NaN',1)
    104104
    105                 if BalancethicknessAnalysisEnum in analyses:
     105                if BalancethicknessAnalysisEnum() in analyses:
    106106                        md = checkfield(md,'surfaceforcings.mass_balance','size',[md.mesh.numberofvertices],'NaN',1)
    107107
  • issm/trunk-jpl/src/m/classes/thermal.m

    r12663 r13020  
    4343
    4444                        %Early return
    45                         if (~ismember(ThermalAnalysisEnum,analyses) & ~ismember(EnthalpyAnalysisEnum,analyses)) | (solution==TransientSolutionEnum & md.transient.isthermal==0), return; end
     45                        if (~ismember(ThermalAnalysisEnum(),analyses) & ~ismember(EnthalpyAnalysisEnum(),analyses)) | (solution==TransientSolutionEnum() & md.transient.isthermal==0), return; end
    4646
    4747                        md = checkfield(md,'thermal.stabilization','numel',1,'values',[0 1 2]);
    4848                        md = checkfield(md,'thermal.spctemperature','forcing',1);
    49                         if (ismember(EnthalpyAnalysisEnum,analyses) & md.thermal.isenthalpy & md.mesh.dimension==3),
     49                        if (ismember(EnthalpyAnalysisEnum(),analyses) & md.thermal.isenthalpy & md.mesh.dimension==3),
    5050                        md = checkfield(md,'thermal.spctemperature','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*(md.geometry.surface-md.mesh.z),'message','spctemperature should be below the adjusted melting point');
    5151                        md = checkfield(md,'thermal.isenthalpy','numel',1,'values',[0 1]);
  • issm/trunk-jpl/src/m/classes/transient.m

    r12829 r13020  
    3333
    3434                        %Early return
    35                         if solution~=TransientSolutionEnum, return; end
     35                        if solution~=TransientSolutionEnum(), return; end
    3636
    3737                        md = checkfield(md,'transient.isprognostic','numel',1,'values',[0 1]);
  • issm/trunk-jpl/src/m/classes/verbose.m

    r12939 r13020  
    120120                %}}}
    121121                function marshall(obj,fid) % {{{
    122                         WriteData(fid,'data',VerboseToBinary(obj),'enum',VerboseEnum,'format','Integer');
     122                        WriteData(fid,'data',VerboseToBinary(obj),'enum',VerboseEnum(),'format','Integer');
    123123                end % }}}
    124124        end
  • issm/trunk-jpl/src/m/classes/verbose.py

    r12958 r13020  
    125125
    126126        def marshall(self,fid):    # {{{
    127                         WriteData(fid,'data',VerboseToBinary(self),'enum',VerboseEnum,'format','Integer')
     127                        WriteData(fid,'data',VerboseToBinary(self),'enum',VerboseEnum(),'format','Integer')
    128128        # }}}
    129129
Note: See TracChangeset for help on using the changeset viewer.