Changeset 15815


Ignore:
Timestamp:
08/13/13 10:29:19 (12 years ago)
Author:
Mathieu Morlighem
Message:

BUG: still fixing python BC

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

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.py

    r15812 r15815  
    5050                values=md.mask.icelevelset[md.mesh.segments[:,0:-1]-1]
    5151                segmentsfront=1-values
    52                 segments=(numpy.sum(segmentsfront,axis=1)!=numbernodesfront).astype(int)
     52                numpy.sum(segmentsfront,axis=1)!=numbernodesfront
     53                segments=numpy.nonzero(numpy.sum(segmentsfront,axis=1)!=numbernodesfront)[0]
    5354                #Find all nodes for these segments and spc them
    5455                pos=md.mesh.segments[segments,0:-1]
    5556        else:
    5657                pos=numpy.nonzero(md.mesh.vertexonboundary)[0]
    57         md.stressbalance.spcvx[pos[:]]=0
    58         md.stressbalance.spcvy[pos[:]]=0
    59         md.stressbalance.spcvz[pos[:]]=0
     58        md.stressbalance.spcvx[pos[:]-1]=0
     59        md.stressbalance.spcvy[pos[:]-1]=0
     60        md.stressbalance.spcvz[pos[:]-1]=0
     61                                                                                                                                                                                                                                           
     62        if md.mesh.dimension==2:
     63                numbernodesfront=2
     64        else:
     65                numbernodesfront=4
     66        if any(md.mask.icelevelset<=0):
     67                values=md.mask.icelevelset[md.mesh.segments[:,0:-1]-1]
     68                segmentsfront=1-values
     69                numpy.sum(segmentsfront,axis=1)!=numbernodesfront
     70                segments=numpy.nonzero(numpy.sum(segmentsfront,axis=1)!=numbernodesfront)[0]
     71                print segments
     72                #Find all nodes for these segments and spc them
     73                pos=md.mesh.segments[segments,0:-1]
     74                print pos
     75        else:
     76                pos=numpy.nonzero(md.mesh.vertexonboundary)[0]
     77        md.stressbalance.spcvx[pos[:]-1]=0
     78        md.stressbalance.spcvy[pos[:]-1]=0
     79        md.stressbalance.spcvz[pos[:]-1]=0
    6080
    6181        #Dirichlet Values
  • issm/trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.py

    r15812 r15815  
    5858                values=md.mask.icelevelset[md.mesh.segments[:,0:-1]-1]
    5959                segmentsfront=1-values
    60                 segments=(numpy.sum(segmentsfront,axis=1)!=numbernodesfront).astype(int)
     60                numpy.sum(segmentsfront,axis=1)!=numbernodesfront
     61                segments=numpy.nonzero(numpy.sum(segmentsfront,axis=1)!=numbernodesfront)[0]
    6162                #Find all nodes for these segments and spc them
    6263                pos=md.mesh.segments[segments,0:-1]
    6364        else:
    6465                pos=numpy.nonzero(md.mesh.vertexonboundary)[0]
    65         md.stressbalance.spcvx[pos[:]]=0
    66         md.stressbalance.spcvy[pos[:]]=0
    67         md.stressbalance.spcvz[pos[:]]=0
     66        md.stressbalance.spcvx[pos[:]-1]=0
     67        md.stressbalance.spcvy[pos[:]-1]=0
     68        md.stressbalance.spcvz[pos[:]-1]=0
    6869
    6970        #Dirichlet Values
Note: See TracChangeset for help on using the changeset viewer.