Changeset 13566


Ignore:
Timestamp:
10/09/12 11:07:57 (12 years ago)
Author:
jschierm
Message:

FIX: Fixed setflowequation for test219.py.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/parameterization/setflowequation.py

    r13503 r13566  
    137137                        nodeonmacayealpattyn[numpy.nonzero(numpy.logical_and(nodeonmacayeal,nodeonpattyn))]=1
    138138                        #Macayeal elements in contact with this layer become MacAyealPattyn elements
    139                         matrixelements=ismember(md.mesh.elements,numpy.nonzero(nodeonmacayealpattyn))
     139                        matrixelements=ismember(md.mesh.elements.astype(int)-1,numpy.nonzero(nodeonmacayealpattyn)[0])
    140140                        commonelements=numpy.sum(matrixelements,axis=1)!=0
    141141                        commonelements[numpy.nonzero(pattynflag)]=0    #only one layer: the elements previously in macayeal
     
    146146
    147147                        #rule out elements that don't touch the 2 boundaries
    148                         pos=numpy.nonzero(macayealpattynflag)
    149                         elist=numpy.zeros(len(pos))
    150                         elist = elist + numpy.any(numpy.sum(nodeonmacayeal[md.mesh.elements[pos,:].astype(int)-1],axis=1),axis=1)
    151                         elist = elist - numpy.any(numpy.sum(nodeonpattyn[md.mesh.elements[pos,:].astype(int)-1]  ,axis=1),axis=1)
    152                         pos1=numpy.nonzero(elist==1)
     148                        pos=numpy.nonzero(macayealpattynflag)[0]
     149                        elist=numpy.zeros(numpy.size(pos),dtype=int)
     150                        elist = elist + numpy.sum(nodeonmacayeal[md.mesh.elements[pos,:].astype(int)-1],axis=1).astype(bool)
     151                        elist = elist - numpy.sum(nodeonpattyn[md.mesh.elements[pos,:].astype(int)-1]  ,axis=1).astype(bool)
     152                        pos1=numpy.nonzero(elist==1)[0]
    153153                        macayealflag[pos[pos1]]=1
    154154                        macayealpattynflag[pos[pos1]]=0
    155                         pos2=numpy.nonzero(elist==-1)
     155                        pos2=numpy.nonzero(elist==-1)[0]
    156156                        pattynflag[pos[pos2]]=1
    157157                        macayealpattynflag[pos[pos2]]=0
     
    169169                        nodeonpattynstokes[numpy.nonzero(numpy.logical_and(nodeonpattyn,nodeonstokes))]=1
    170170                        #Stokes elements in contact with this layer become PattynStokes elements
    171                         matrixelements=ismember(md.mesh.elements,numpy.nonzero(nodeonpattynstokes))
     171                        matrixelements=ismember(md.mesh.elements.astype(int)-1,numpy.nonzero(nodeonpattynstokes)[0])
    172172                        commonelements=numpy.sum(matrixelements,axis=1)!=0
    173173                        commonelements[numpy.nonzero(pattynflag)]=0    #only one layer: the elements previously in macayeal
     
    178178
    179179                        #rule out elements that don't touch the 2 boundaries
    180                         pos=numpy.nonzero(pattynstokesflag)
    181                         elist=numpy.zeros(len(pos))
    182                         elist = elist + numpy.any(numpy.sum(nodeonstokes[md.mesh.elements[pos,:].astype(int)-1],axis=1),axis=1)
    183                         elist = elist - numpy.any(numpy.sum(nodeonpattyn[md.mesh.elements[pos,:].astype(int)-1],axis=1),axis=1)
    184                         pos1=numpy.nonzero(elist==1)
     180                        pos=numpy.nonzero(pattynstokesflag)[0]
     181                        elist=numpy.zeros(numpy.size(pos),dtype=int)
     182                        elist = elist + numpy.sum(nodeonstokes[md.mesh.elements[pos,:].astype(int)-1],axis=1).astype(bool)
     183                        elist = elist - numpy.sum(nodeonpattyn[md.mesh.elements[pos,:].astype(int)-1],axis=1).astype(bool)
     184                        pos1=numpy.nonzero(elist==1)[0]
    185185                        stokesflag[pos[pos1]]=1
    186186                        pattynstokesflag[pos[pos1]]=0
    187                         pos2=numpy.nonzero(elist==-1)
     187                        pos2=numpy.nonzero(elist==-1)[0]
    188188                        pattynflag[pos[pos2]]=1
    189189                        pattynstokesflag[pos[pos2]]=0
     
    201201                        nodeonmacayealstokes[numpy.nonzero(numpy.logical_and(nodeonmacayeal,nodeonstokes))]=1
    202202                        #Stokes elements in contact with this layer become MacAyealStokes elements
    203                         matrixelements=ismember(md.mesh.elements,numpy.nonzero(nodeonmacayealstokes))
     203                        matrixelements=ismember(md.mesh.elements.astype(int)-1,numpy.nonzero(nodeonmacayealstokes)[0])
    204204                        commonelements=numpy.sum(matrixelements,axis=1)!=0
    205205                        commonelements[numpy.nonzero(macayealflag)]=0    #only one layer: the elements previously in macayeal
     
    210210
    211211                        #rule out elements that don't touch the 2 boundaries
    212                         pos=numpy.nonzero(macayealstokesflag)
    213                         elist=numpy.zeros(len(pos))
    214                         elist = elist + numpy.any(numpy.sum(nodeonmacayeal[md.mesh.elements[pos,:].astype(int)-1],axis=1),axis=1)
    215                         elist = elist - numpy.any(numpy.sum(nodeonstokes[md.mesh.elements[pos,:].astype(int)-1]  ,axis=1),axis=1)
    216                         pos1=numpy.nonzero(elist==1)
     212                        pos=numpy.nonzero(macayealstokesflag)[0]
     213                        elist=numpy.zeros(numpy.size(pos),dtype=int)
     214                        elist = elist + numpy.sum(nodeonmacayeal[md.mesh.elements[pos,:].astype(int)-1],axis=1).astype(bool)
     215                        elist = elist - numpy.sum(nodeonstokes[md.mesh.elements[pos,:].astype(int)-1]  ,axis=1).astype(bool)
     216                        pos1=numpy.nonzero(elist==1)[0]
    217217                        macayealflag[pos[pos1]]=1
    218218                        macayealstokesflag[pos[pos1]]=0
    219                         pos2=numpy.nonzero(elist==-1)
     219                        pos2=numpy.nonzero(elist==-1)[0]
    220220                        stokesflag[pos[pos2]]=1
    221221                        macayealstokesflag[pos[pos2]]=0
Note: See TracChangeset for help on using the changeset viewer.