Changeset 13566
- Timestamp:
- 10/09/12 11:07:57 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/parameterization/setflowequation.py
r13503 r13566 137 137 nodeonmacayealpattyn[numpy.nonzero(numpy.logical_and(nodeonmacayeal,nodeonpattyn))]=1 138 138 #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]) 140 140 commonelements=numpy.sum(matrixelements,axis=1)!=0 141 141 commonelements[numpy.nonzero(pattynflag)]=0 #only one layer: the elements previously in macayeal … … 146 146 147 147 #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] 153 153 macayealflag[pos[pos1]]=1 154 154 macayealpattynflag[pos[pos1]]=0 155 pos2=numpy.nonzero(elist==-1) 155 pos2=numpy.nonzero(elist==-1)[0] 156 156 pattynflag[pos[pos2]]=1 157 157 macayealpattynflag[pos[pos2]]=0 … … 169 169 nodeonpattynstokes[numpy.nonzero(numpy.logical_and(nodeonpattyn,nodeonstokes))]=1 170 170 #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]) 172 172 commonelements=numpy.sum(matrixelements,axis=1)!=0 173 173 commonelements[numpy.nonzero(pattynflag)]=0 #only one layer: the elements previously in macayeal … … 178 178 179 179 #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] 185 185 stokesflag[pos[pos1]]=1 186 186 pattynstokesflag[pos[pos1]]=0 187 pos2=numpy.nonzero(elist==-1) 187 pos2=numpy.nonzero(elist==-1)[0] 188 188 pattynflag[pos[pos2]]=1 189 189 pattynstokesflag[pos[pos2]]=0 … … 201 201 nodeonmacayealstokes[numpy.nonzero(numpy.logical_and(nodeonmacayeal,nodeonstokes))]=1 202 202 #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]) 204 204 commonelements=numpy.sum(matrixelements,axis=1)!=0 205 205 commonelements[numpy.nonzero(macayealflag)]=0 #only one layer: the elements previously in macayeal … … 210 210 211 211 #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] 217 217 macayealflag[pos[pos1]]=1 218 218 macayealstokesflag[pos[pos1]]=0 219 pos2=numpy.nonzero(elist==-1) 219 pos2=numpy.nonzero(elist==-1)[0] 220 220 stokesflag[pos[pos2]]=1 221 221 macayealstokesflag[pos[pos2]]=0
Note:
See TracChangeset
for help on using the changeset viewer.