Changeset 12938


Ignore:
Timestamp:
08/07/12 15:35:45 (13 years ago)
Author:
jschierm
Message:

NEW: New python version of verbose and some other minor updates.

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

Legend:

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

    r12762 r12938  
    3232from miscellaneous import miscellaneous
    3333from private import private
     34from EnumDefinitions import *
    3435#}}}
     36
    3537class model(object):
    3638        #properties
     
    5153
    5254                self.debug            = debug()
    53                 self.verbose          = verbose()
     55                self.verbose          = verbose('solution',True,'qmu',True,'control',True)
    5456                self.settings         = settings()
    5557                self.solver           = solver()
     58#               need EnumToString for these to work
     59#               if ismumps:
     60#                       md.solver.addoptions(DiagnosticVertAnalysisEnum(),mumpsoptions)
     61#               else:
     62#                       md.solver.addoptions(DiagnosticVertAnalysisEnum(),iluasmoptions)
    5663                self.cluster          = generic()
    5764
     
    7077                self.qmu              = qmu()
    7178
    72                 self.results          = [];
     79                self.results          = {}
    7380                self.radaroverlay     = radaroverlay()
    7481                self.miscellaneous    = miscellaneous()
    7582                self.private          = private()
    7683                #}}}
     84
    7785        def __repr__(obj):
    7886                # {{{ Display
     
    111119                string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("radaroverlay","[%s,%s]" % ("1x1",obj.radaroverlay.__class__.__name__),"radar image for plot overlay"))
    112120                string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("miscellaneous","[%s,%s]" % ("1x1",obj.miscellaneous.__class__.__name__),"miscellaneous fields"))
    113                 return string;
    114                  #}}}
     121                return string
     122        # }}}
     123
     124        def checkmessage(self,string):    # {{{
     125                print ("model not consistent: %s" % string)
     126                self.private.isconsistent=False
     127        # }}}
     128
  • issm/trunk-jpl/src/m/classes/verbose.m

    r12663 r12938  
    4242                                case 1,
    4343                                        binary=varargin{1};
    44                                         if ischar(binary),
     44                                        if     ischar(binary),
    4545                                                if strcmpi(binary,'all'),
    4646                                                        binary=2^11-1; %all ones
     
    5151                                                        verbose=BinaryToVerbose(verbose,binary);
    5252                                                end
     53                                        elseif isnumeric(binary),
     54                                                verbose=BinaryToVerbose(verbose,binary);
    5355                                        end
    5456                                otherwise,
  • issm/trunk-jpl/src/m/classes/verbose.py

    r12038 r12938  
    1 #module imports
    2 from fielddisplay import fielddisplay
     1from pairoptions import *
     2from MatlabFuncs import *
     3from WriteData import *
     4from EnumDefinitions import *
    35
    4 class verbose:
    5         #properties
    6         def __init__(self):
    7                 # {{{ Properties
     6class verbose(object):
     7        """
     8        VERBOSE class definition
     9
     10           Available verbosity levels:
     11              mprocessor  : model processing
     12              module      : modules
     13              solution    : solution sequence
     14              solver      : solver info (extensive)
     15              convergence : convergence criteria
     16              control     : control method
     17              qmu         : sensitivity analysis
     18
     19           Usage:
     20              verbose=verbose();
     21              verbose=verbose(3);
     22              verbose=verbose('001100');
     23              verbose=verbose('module',True,'solver',False);
     24
     25        WARNING: some parts of this file are Synchronized with src/c/shared/Numerics/Verbosity.h
     26                 Do not modify these sections. See src/c/shared/Numerics/README for more info
     27        """
     28
     29        def __init__(self,*args):    # {{{
     30                #BEGINFIELDS
    831                self.mprocessor  = False
    932                self.module      = False
     
    1336                self.control     = False
    1437                self.qmu         = False
    15                 #}}}
    16         def __repr__(obj):
    17                 # {{{ Display
    18                 string="%s%s%s\n\n"%("class '",obj.__class__.__name__,"'=")
    19                 string="%s%s\n"%(string,"   %15s : %s"%("mprocessor",obj.mprocessor))
    20                 string="%s%s\n"%(string,"   %15s : %s"%("module",obj.module))
    21                 string="%s%s\n"%(string,"   %15s : %s"%("solution",obj.solution))
    22                 string="%s%s\n"%(string,"   %15s : %s"%("solver",obj.solver))
    23                 string="%s%s\n"%(string,"   %15s : %s"%("convergence",obj.convergence))
    24                 string="%s%s\n"%(string,"   %15s : %s"%("control",obj.control))
    25                 string="%s%s\n"%(string,"   %15s : %s"%("qmu",obj.qmu))
    26                 return string
    27                 #}}}
     38                #ENDFIELDS
     39
     40                if not len(args):
     41                        #Don't do anything
     42                        pass
     43
     44                elif len(args) == 1:
     45                        binary=args[0]
     46                        if   isinstance(binary,str):
     47                                if strcmpi(binary,'all'):
     48                                        binary=2**11-1    #all ones
     49                                        self.BinaryToVerbose(binary)
     50                                        self.solver=False    #Do not use by default
     51                                else:
     52                                        binary=int(binary,2)
     53                                        self.BinaryToVerbose(binary)
     54                        elif isinstance(binary,(int,float)):
     55                                self.BinaryToVerbose(int(binary))
     56
     57                else:
     58                        #Use options to initialize object
     59                        self=pairoptions(*args).AssignObjectFields(self)
     60
     61                        #Cast to logicals
     62                        listproperties=vars(self)
     63                        for [fieldname,fieldvalue] in listproperties.iteritems():
     64                                if isinstance(fieldvalue,bool) or isinstance(fieldvalue,(int,float)):
     65                                        setattr(self,fieldname,bool(fieldvalue))
     66                                else:
     67                                        raise TypeError("verbose supported field values are logicals only (True or False)")
     68        # }}}
     69
     70        def VerboseToBinary(self):    # {{{
     71
     72                #BEGINVERB2BIN
     73                binary=0
     74                if self.mprocessor:
     75                        binary=binary |  1
     76                if self.module:
     77                        binary=binary |  2
     78                if self.solution:
     79                        binary=binary |  4
     80                if self.solver:
     81                        binary=binary |  8
     82                if self.convergence:
     83                        binary=binary | 16
     84                if self.control:
     85                        binary=binary | 32
     86                if self.qmu:
     87                        binary=binary | 64
     88                #ENDVERB2BIN
     89
     90                return binary
     91        # }}}
     92
     93        def BinaryToVerbose(self,binary):    # {{{
     94
     95                #BEGINBIN2VERB
     96                self.mprocessor =bool(binary &  1)
     97                self.module     =bool(binary &  2)
     98                self.solution   =bool(binary &  4)
     99                self.solver     =bool(binary &  8)
     100                self.convergence=bool(binary & 16)
     101                self.control    =bool(binary & 32)
     102                self.qmu        =bool(binary & 64)
     103                #ENDBIN2VERB
     104        # }}}
     105
     106        def checkconsistency(self,md,solution,analyses):    # {{{
     107                return md
     108        # }}}
     109
     110        def __repr__(self):    # {{{
     111                       
     112                #BEGINDISP
     113                s ="class '%s'  = \n" % type(self)
     114                s+="   %15s : %s\n" % ('mprocessor',self.mprocessor)
     115                s+="   %15s : %s\n" % ('module',self.module)
     116                s+="   %15s : %s\n" % ('solution',self.solution)
     117                s+="   %15s : %s\n" % ('solver',self.solver)
     118                s+="   %15s : %s\n" % ('convergence',self.convergence)
     119                s+="   %15s : %s\n" % ('control',self.control)
     120                s+="   %15s : %s\n" % ('qmu',self.qmu)
     121                #ENDDISP
     122
     123                return s
     124        # }}}
     125
     126        def marshall(self,fid):    # {{{
     127                        WriteData(fid,'data',VerboseToBinary(self),'enum',VerboseEnum,'format','Integer')
     128        # }}}
     129
Note: See TracChangeset for help on using the changeset viewer.