Changeset 13716


Ignore:
Timestamp:
10/17/12 13:53:15 (12 years ago)
Author:
jschierm
Message:

BUG: Fix case for no rifts (in a more python-like way).

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

Legend:

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

    r13710 r13716  
    4343                        else
    4444                                if ~isnans(obj.riftstruct),
    45                                         md = checkmessage(md,['riftstruct shoud be NaN since numrifts is 0!']);
     45                                        md = checkmessage(md,['riftstruct should be NaN since numrifts is 0!']);
    4646                                end
    4747                        end
  • issm/trunk-jpl/src/m/classes/rifts.py

    r13715 r13716  
    1818        def __init__(self):
    1919                # {{{ Properties
    20                 self.riftstruct     = float('NaN')
    21                 self.riftproperties = float('NaN')
     20                self.riftstruct     = []
     21                self.riftproperties = []
    2222
    2323                #set defaults
     
    5656                                md = checkfield(md,"rifts.riftstruct[%d]['fill']" % i,'values',[WaterEnum(),AirEnum(),IceEnum(),MelangeEnum()])
    5757                else:
    58                         if numpy.any(numpy.logical_not(isnans(self.riftstruct))):
     58                        if self.riftstruct and numpy.any(numpy.logical_not(isnans(self.riftstruct))):
    5959                                md.checkmessage("riftstruct should be NaN since numrifts is 0!")
    6060
     
    7171
    7272                numpairs=0
    73                 if numrifts:
    74                         for rift in self.riftstruct:
    75                                 numpairs+=numpy.size(rift['penaltypairs'],axis=0)
     73                for rift in self.riftstruct:
     74                        numpairs+=numpy.size(rift['penaltypairs'],axis=0)
    7675
    7776                # 2 for nodes + 2 for elements+ 2 for  normals + 1 for length + 1 for fill + 1 for friction + 1 for fraction + 1 for fractionincrement + 1 for state.
    7877                data=numpy.zeros((numpairs,12))
    79                 if numrifts:
    80                         count=0
    81                         for rift in self.riftstruct:
    82                                 numpairsforthisrift=numpy.size(rift['penaltypairs'],0)
    83                                 data[count:count+numpairsforthisrift,0:7]=rift['penaltypairs']
    84                                 data[count:count+numpairsforthisrift,7]=rift['fill']
    85                                 data[count:count+numpairsforthisrift,8]=rift['friction']
    86                                 data[count:count+numpairsforthisrift,9]=rift['fraction']
    87                                 data[count:count+numpairsforthisrift,10]=rift['fractionincrement']
    88                                 data[count:count+numpairsforthisrift,11]=rift['state'].reshape(-1)
    89                                 count+=numpairsforthisrift
     78                count=0
     79                for rift in self.riftstruct:
     80                        numpairsforthisrift=numpy.size(rift['penaltypairs'],0)
     81                        data[count:count+numpairsforthisrift,0:7]=rift['penaltypairs']
     82                        data[count:count+numpairsforthisrift,7]=rift['fill']
     83                        data[count:count+numpairsforthisrift,8]=rift['friction']
     84                        data[count:count+numpairsforthisrift,9]=rift['fraction']
     85                        data[count:count+numpairsforthisrift,10]=rift['fractionincrement']
     86                        data[count:count+numpairsforthisrift,11]=rift['state'].reshape(-1)
     87                        count+=numpairsforthisrift
    9088
    9189                WriteData(fid,'data',numrifts,'enum',RiftsNumriftsEnum(),'format','Integer')
Note: See TracChangeset for help on using the changeset viewer.