Changeset 21155


Ignore:
Timestamp:
08/24/16 11:02:56 (9 years ago)
Author:
Mathieu Morlighem
Message:

CHG: 0 is now allowed in levelset

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

Legend:

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

    r20832 r21155  
    1919                        fielddisplay(this,"ice_levelset","presence of ice if < 0, icefront position if = 0, no ice if > 0");
    2020                } //}}}
    21         this.extrude = function(md) {//{{{
    22             this.groundedice_levelset=project3d(md,'vector',this.groundedice_levelset,'type','node');
    23             this.ice_levelset=project3d(md,'vector',this.ice_levelset,'type','node');
    24             return this;
    25         }//}}}
     21                this.extrude = function(md) {//{{{
     22                        this.groundedice_levelset=project3d(md,'vector',this.groundedice_levelset,'type','node');
     23                        this.ice_levelset=project3d(md,'vector',this.ice_levelset,'type','node');
     24                        return this;
     25                }//}}}
    2626                this.classname = function () { //{{{
    2727                        return "mask";
     
    3939                                console.log('no ice front provided');
    4040                        }
    41                                
    42                         var icefront=NewArrayFill(md.mesh.numberofelements,0);
    43                         for(var i=0;i<md.mesh.numberofelements;i++){
    44                                 for(var j=0;j<md.mesh.elements[0].length;j++){
    45                                         icefront[i]+=(md.mask.ice_levelset[md.mesh.elements[i][j]-1]==0);
    46                                 }
    47                         }
    48                         if ((ArrayMax(icefront)==3 & (md.mesh.elementtype() == 'Tria')) | (ArrayMax(icefront)==6 & md.mesh.elementtype() == 'Penta')){
    49                                 if (md.mesh.elementtype()=='Tria'){
    50                                         var pos=ArrayFindEqual(icefront,3); numberemptyelements=pos.length;
    51                                 }
    52                                 else if (md.mesh.elementtype() == 'Penta'){
    53                                         var pos=ArrayFindEqual(icefront,6); numberemptyelements=pos.length;
    54                                 }
    55                                 throw Error(sprintf(" %i have all nodes on ice front, change md.mask.ice_levelset to fix it",numberemptyelements));
    56                         }
    5741                } // }}}
    5842                this.marshall=function(md,prefix,fid) { //{{{
  • issm/trunk-jpl/src/m/classes/mask.m

    r21141 r21155  
    4848                                disp('WARNING: no ice front provided');
    4949                        end
    50                         icefront=sum(md.mask.ice_levelset(md.mesh.elements)==0,2);
    51                         if (max(icefront)==3 & strcmp(elementtype(md.mesh),'Tria')) | (max(icefront==6) & strcmp(elementtype(md.mesh),'Penta')),
    52                                 error('At least one element has all nodes on ice front, change md.mask.ice_levelset to fix it')
    53                         end
    5450                end % }}}
    5551                function disp(self) % {{{
  • issm/trunk-jpl/src/m/classes/mask.py

    r21049 r21155  
    4444                        raise TypeError("no ice present in the domain")
    4545
    46                 icefront=numpy.sum(md.mask.ice_levelset[md.mesh.elements-1]==0,axis=1)
    47                 if (max(icefront)==3 and m.strcmp(md.mesh.elementtype(),'Tria')) or (max(icefront==6) and m.strcmp(md.mesh.elementtype(),'Penta')):
    48                         raise TypeError("At least one element has all nodes on ice front, change md.mask.ice_levelset to fix it")
    49 
    5046                return md
    5147        # }}}
Note: See TracChangeset for help on using the changeset viewer.