Changeset 17602


Ignore:
Timestamp:
03/31/14 09:24:22 (11 years ago)
Author:
Mathieu Morlighem
Message:

BUG: do not use mesh variable

File:
1 edited

Legend:

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

    r17588 r17602  
    4646
    4747        #get nodes inside profile
    48         mesh.elementconnectivity=copy.deepcopy(md.mesh.elementconnectivity)
     48        elementconnectivity=copy.deepcopy(md.mesh.elementconnectivity)
    4949        if m.strcmp(md.mesh.meshtype(),'2Dhorizontal'):
    50                 mesh.elements=copy.deepcopy(md.mesh.elements)
    51                 mesh.x=copy.deepcopy(md.mesh.x)
    52                 mesh.y=copy.deepcopy(md.mesh.y)
    53                 mesh.numberofvertices=copy.deepcopy(md.mesh.numberofvertices)
    54                 mesh.numberofelements=copy.deepcopy(md.mesh.numberofelements)
     50                elements=copy.deepcopy(md.mesh.elements)
     51                x=copy.deepcopy(md.mesh.x)
     52                y=copy.deepcopy(md.mesh.y)
     53                numberofvertices=copy.deepcopy(md.mesh.numberofvertices)
     54                numberofelements=copy.deepcopy(md.mesh.numberofelements)
    5555        else:
    56                 mesh.elements=copy.deepcopy(md.mesh.elements2d)
    57                 mesh.x=copy.deepcopy(md.mesh.x2d)
    58                 mesh.y=copy.deepcopy(md.mesh.y2d)
    59                 mesh.numberofvertices=copy.deepcopy(md.mesh.numberofvertices2d)
    60                 mesh.numberofelements=copy.deepcopy(md.mesh.numberofelements2d)
     56                elements=copy.deepcopy(md.mesh.elements2d)
     57                x=copy.deepcopy(md.mesh.x2d)
     58                y=copy.deepcopy(md.mesh.y2d)
     59                numberofvertices=copy.deepcopy(md.mesh.numberofvertices2d)
     60                numberofelements=copy.deepcopy(md.mesh.numberofelements2d)
    6161
    6262        if len(args)==1:
     
    6464                if isfile:
    6565                        #get flag list of elements and nodes inside the contour
    66                         nodein=ContourToMesh(mesh.elements,mesh.x,mesh.y,file,'node',1)
    67                         elemin=(numpy.sum(nodein(mesh.elements),axis=1)==numpy.size(mesh.elements,axis=1))
     66                        nodein=ContourToMesh(elements,x,y,file,'node',1)
     67                        elemin=(numpy.sum(nodein(elements),axis=1)==numpy.size(elements,axis=1))
    6868                        #modify element connectivity
    6969                        elemout=numpy.nonzero(numpy.logical_not(elemin))[0]
    70                         mesh.elementconnectivity[elemout,:]=0
    71                         mesh.elementconnectivity[numpy.nonzero(m.ismember(mesh.elementconnectivity,elemout+1))]=0
     70                        elementconnectivity[elemout,:]=0
     71                        elementconnectivity[numpy.nonzero(m.ismember(elementconnectivity,elemout+1))]=0
    7272                else:
    7373                        #get flag list of elements and nodes inside the contour
    74                         nodein=numpy.zeros(mesh.numberofvertices)
    75                         elemin=numpy.zeros(mesh.numberofelements)
     74                        nodein=numpy.zeros(numberofvertices)
     75                        elemin=numpy.zeros(numberofelements)
    7676
    7777                        pos=numpy.nonzero(flags)
    7878                        elemin[pos]=1
    79                         nodein[mesh.elements[pos,:]-1]=1
     79                        nodein[elements[pos,:]-1]=1
    8080
    8181                        #modify element connectivity
    8282                        elemout=numpy.nonzero(numpy.logical_not(elemin))[0]
    83                         mesh.elementconnectivity[elemout,:]=0
    84                         mesh.elementconnectivity[numpy.nonzero(m.ismember(mesh.elementconnectivity,elemout+1))]=0
     83                        elementconnectivity[elemout,:]=0
     84                        elementconnectivity[numpy.nonzero(m.ismember(elementconnectivity,elemout+1))]=0
    8585
    8686        #Find element on boundary
    8787        #First: find elements on the boundary of the domain
    88         flag=copy.deepcopy(mesh.elementconnectivity)
     88        flag=copy.deepcopy(elementconnectivity)
    8989        if len(args)==1:
    9090                flag[numpy.nonzero(flag)]=elemin[flag[numpy.nonzero(flag)]]
     
    9898
    9999        for el1 in pos:
    100                 els2=mesh.elementconnectivity[el1,numpy.nonzero(mesh.elementconnectivity[el1,:])[0]]-1
     100                els2=elementconnectivity[el1,numpy.nonzero(elementconnectivity[el1,:])[0]]-1
    101101                if numpy.size(els2)>1:
    102                         flag=numpy.intersect1d(numpy.intersect1d(mesh.elements[els2[0],:],mesh.elements[els2[1],:]),mesh.elements[el1,:])
    103                         nods1=mesh.elements[el1,:]
     102                        flag=numpy.intersect1d(numpy.intersect1d(elements[els2[0],:],elements[els2[1],:]),elements[el1,:])
     103                        nods1=elements[el1,:]
    104104                        nods1=numpy.delete(nods1,numpy.nonzero(nods1==flag))
    105105                        segments[count,:]=[nods1[0],nods1[1],el1+1]
    106106
    107                         ord1=numpy.nonzero(nods1[0]==mesh.elements[el1,:])[0][0]
    108                         ord2=numpy.nonzero(nods1[1]==mesh.elements[el1,:])[0][0]
     107                        ord1=numpy.nonzero(nods1[0]==elements[el1,:])[0][0]
     108                        ord2=numpy.nonzero(nods1[1]==elements[el1,:])[0][0]
    109109
    110110                        #swap segment nodes if necessary
     
    116116                        count+=1
    117117                else:
    118                         nods1=mesh.elements[el1,:]
    119                         flag=numpy.setdiff1d(nods1,mesh.elements[els2,:])
     118                        nods1=elements[el1,:]
     119                        flag=numpy.setdiff1d(nods1,elements[els2,:])
    120120                        for j in xrange(0,3):
    121121                                nods=numpy.delete(nods1,j)
    122122                                if numpy.any(m.ismember(flag,nods)):
    123123                                        segments[count,:]=[nods[0],nods[1],el1+1]
    124                                         ord1=numpy.nonzero(nods[0]==mesh.elements[el1,:])[0][0]
    125                                         ord2=numpy.nonzero(nods[1]==mesh.elements[el1,:])[0][0]
     124                                        ord1=numpy.nonzero(nods[0]==elements[el1,:])[0][0]
     125                                        ord2=numpy.nonzero(nods[1]==elements[el1,:])[0][0]
    126126                                        if ( (ord1==0 and ord2==1) or (ord1==1 and ord2==2) or (ord1==2 and ord2==0) ):
    127127                                                temp=segments[count,0]
Note: See TracChangeset for help on using the changeset viewer.