Changeset 17991


Ignore:
Timestamp:
05/13/14 12:07:19 (11 years ago)
Author:
schlegel
Message:

CHG: add checks for nan

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

Legend:

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

    r17959 r17991  
    208208                        md.stressbalance.loadingforce=project2d(md,md.stressbalance.loadingforce,md.mesh.numberoflayers);
    209209                        md.masstransport.spcthickness=project2d(md,md.masstransport.spcthickness,md.mesh.numberoflayers);
    210                         md.damage.spcdamage=project2d(md,md.damage.spcdamage,md.mesh.numberoflayers)
     210                        if ~isnan(md.damage.spcdamage), md.damage.spcdamage=project2d(md,md.damage.spcdamage,md.mesh.numberoflayers); end
    211211                        md.thermal.spctemperature=project2d(md,md.thermal.spctemperature,md.mesh.numberoflayers);
    212212
     
    236236                        md.geometry.base=project2d(md,md.geometry.base,1);
    237237                        md.geometry.bed=project2d(md,md.geometry.bed,1);
     238
    238239                        md.mask.groundedice_levelset=project2d(md,md.mask.groundedice_levelset,1);
    239240                        md.mask.ice_levelset=project2d(md,md.mask.ice_levelset,1);
     
    250251                        mesh.numberofelements=md.mesh.numberofelements2d;
    251252                        mesh.elements=md.mesh.elements2d;
    252                         mesh.vertexonboundary=project2d(md,md.mesh.vertexonboundary,1);
    253                         mesh.elementconnectivity=project2d(md,md.mesh.elementconnectivity,1);
     253                        if ~isnan(md.mesh.vertexonboundary), mesh.vertexonboundary=project2d(md,md.mesh.vertexonboundary,1); end
     254                        if ~isnan(md.mesh.elementconnectivity), mesh.elementconnectivity=project2d(md,md.mesh.elementconnectivity,1); end
    254255                        md.mesh=mesh;
    255256
     
    760761
    761762                        %connectivity
    762                         md.mesh.elementconnectivity=repmat(md.mesh.elementconnectivity,numlayers-1,1);
    763                         md.mesh.elementconnectivity(find(md.mesh.elementconnectivity==0))=NaN;
    764                         for i=2:numlayers-1,
    765                                 md.mesh.elementconnectivity((i-1)*md.mesh.numberofelements2d+1:(i)*md.mesh.numberofelements2d,:)...
    766                                         =md.mesh.elementconnectivity((i-1)*md.mesh.numberofelements2d+1:(i)*md.mesh.numberofelements2d,:)+md.mesh.numberofelements2d;
    767                         end
    768                         md.mesh.elementconnectivity(find(isnan(md.mesh.elementconnectivity)))=0;
     763                        if ~isnan(md.mesh.elementconnectivity)
     764                                md.mesh.elementconnectivity=repmat(md.mesh.elementconnectivity,numlayers-1,1);
     765                                md.mesh.elementconnectivity(find(md.mesh.elementconnectivity==0))=NaN;
     766                                for i=2:numlayers-1,
     767                                        md.mesh.elementconnectivity((i-1)*md.mesh.numberofelements2d+1:(i)*md.mesh.numberofelements2d,:)...
     768                                                =md.mesh.elementconnectivity((i-1)*md.mesh.numberofelements2d+1:(i)*md.mesh.numberofelements2d,:)+md.mesh.numberofelements2d;
     769                                end
     770                                md.mesh.elementconnectivity(find(isnan(md.mesh.elementconnectivity)))=0;
     771                        end
    769772
    770773                        %materials
  • issm/trunk-jpl/src/m/classes/model.py

    r17959 r17991  
    657657                md.mesh.elementconnectivity=numpy.tile(md.mesh.elementconnectivity,(numlayers-1,1))
    658658                md.mesh.elementconnectivity[numpy.nonzero(md.mesh.elementconnectivity==0)]=-sys.maxint-1
    659                 for i in xrange(1,numlayers-1):
    660                         md.mesh.elementconnectivity[i*md.mesh.numberofelements2d:(i+1)*md.mesh.numberofelements2d,:] \
    661                                 =md.mesh.elementconnectivity[i*md.mesh.numberofelements2d:(i+1)*md.mesh.numberofelements2d,:]+md.mesh.numberofelements2d
    662                 md.mesh.elementconnectivity[numpy.nonzero(md.mesh.elementconnectivity<0)]=0
     659                if not numpy.isnan(md.mesh.lementconnectivity).all():
     660                        for i in xrange(1,numlayers-1):
     661                                md.mesh.elementconnectivity[i*md.mesh.numberofelements2d:(i+1)*md.mesh.numberofelements2d,:] \
     662                                                =md.mesh.elementconnectivity[i*md.mesh.numberofelements2d:(i+1)*md.mesh.numberofelements2d,:]+md.mesh.numberofelements2d
     663                                md.mesh.elementconnectivity[numpy.nonzero(md.mesh.elementconnectivity<0)]=0
    663664
    664665                #materials
     
    764765                md.stressbalance.loadingforce=project2d(md,md.stressbalance.loadingforce,md.mesh.numberoflayers)
    765766                md.masstransport.spcthickness=project2d(md,md.masstransport.spcthickness,md.mesh.numberoflayers)
    766                 md.damage.spcdamage=project2d(md,md.damage.spcdamage,md.mesh.numberoflayers-1)
     767                if not numpy.isnan(md.damage.spcdamage).all(): md.damage.spcdamage=project2d(md,md.damage.spcdamage,md.mesh.numberoflayers-1)
    767768                md.thermal.spctemperature=project2d(md,md.thermal.spctemperature,md.mesh.numberoflayers-1)
    768769
     
    805806                mesh.numberofelements=md.mesh.numberofelements2d
    806807                mesh.elements=md.mesh.elements2d
    807                 mesh.vertexonboundary=project2d(md,md.mesh.vertexonboundary,1)
    808                 mesh.elementconnectivity=project2d(md,md.mesh.elementconnectivity,1)
     808                if not numpy.isnan(md.mesh.vertexonboundary).all(): mesh.vertexonboundary=project2d(md,md.mesh.vertexonboundary,1)
     809                if not numpy.isnan(md.mesh.elementconnectivity).all(): mesh.elementconnectivity=project2d(md,md.mesh.elementconnectivity,1)
    809810                md.mesh=mesh
    810811
Note: See TracChangeset for help on using the changeset viewer.