source:
issm/oecreview/Archive/19101-20495/ISSM-20294-20295.diff@
20498
Last change on this file since 20498 was 20498, checked in by , 9 years ago | |
---|---|
File size: 6.9 KB |
-
TabularUnified ../trunk-jpl/src/m/classes/maskpsl.js
1 //MASKPSL class definition 2 // 3 // Usage: 4 // maskpsl= new maskpsl(); 5 6 function maskpsl () { 7 //properties 8 // {{{ 9 this.groundedice_levelset = NaN; 10 this.ice_levelset = NaN; 11 this.land_levelset = NaN; 12 this.ocean_levelset = NaN; 13 //}}} 14 //methods 15 this.setdefaultparameters = function (){ //{{{ 16 } // }}} 17 this.disp = function () { //{{{ 18 console.log(sprintf(" mask:")); 19 20 fielddisplay(this,"groundedice_levelset","is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0"); 21 fielddisplay(this,"ice_levelset","presence of ice if < 0, icefront position if = 0, no ice if > 0"); 22 fielddisplay(this,"ocean_levelset","is the vertex on the ocean? yes if = 1, no if = 0"); 23 fielddisplay(this,"land_levelset","is the vertex on land? yes if = 1, no if = 0"); 24 } //}}} 25 this.classname = function () { //{{{ 26 return "maskpsl"; 27 } //}}} 28 this.checkconsistency = function(md,solution,analyses){ //{{{ 29 30 checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices, 1]); 31 checkfield(md,'fieldname','mask.ice_levelset' ,'size',[md.mesh.numberofvertices, 1]); 32 checkfield(md,'fieldname','mask.ocean_levelset' ,'size',[md.mesh.numberofvertices, 1]); 33 checkfield(md,'fieldname','mask.land_levelset' ,'size',[md.mesh.numberofvertices, 1]); 34 35 var isice=NewArrayFill(md.mesh.numberofvertices,0); 36 for(var i=0;i<md.mesh.numberofvertices;i++)if(md.mask.ice_levelset[i]<=0)isice[i]=1; 37 if (ArraySum(isice)==0){ 38 console.log('no ice present in the domain'); 39 } 40 if (ArrayMax(md.mask.ice_levelset)<0){ 41 console.log('no ice front provided'); 42 } 43 44 var icefront=NewArrayFill(md.mesh.numberofelements,0); 45 for(var i=0;i<md.mesh.numberofelements;i++){ 46 for(var j=0;j<md.mesh.elements[0].length;j++){ 47 icefront[i]+=(md.mask.ice_levelset[md.mesh.elements[i][j]-1]==0); 48 } 49 } 50 if ((ArrayMax(icefront)==3 & (md.mesh.elementtype() == 'Tria')) | (ArrayMax(icefront)==6 & md.mesh.elementtype() == 'Penta')){ 51 if (md.mesh.elementtype()=='Tria'){ 52 var pos=ArrayFindEqual(icefront,3); numberemptyelements=pos.length; 53 } 54 else if (md.mesh.elementtype() == 'Penta'){ 55 var pos=ArrayFindEqual(icefront,6); numberemptyelements=pos.length; 56 } 57 throw Error(sprintf(" %i have all nodes on ice front, change md.mask.ice_levelset to fix it",numberemptyelements)); 58 } 59 } // }}} 60 this.marshall=function(md,fid) { //{{{ 61 WriteData(fid,'object',this,'class','mask','fieldname','groundedice_levelset','format','DoubleMat','mattype',1); 62 WriteData(fid,'object',this,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1); 63 WriteData(fid,'object',this,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1); 64 WriteData(fid,'object',this,'class','mask','fieldname','land_levelset','format','DoubleMat','mattype',1); 65 66 // get mask of vertices of elements with ice 67 var isice= NewArrayFill(md.mesh.numberofvertices,0); 68 for(var i=0;i<md.mesh.numberofvertices;i++)if(md.mask.ice_levelset[i]<=0)isice[i]=1; 69 70 var vlist = NewArrayFill(md.mesh.numberofvertices,0); 71 var pos=[]; 72 for(var i=0;i<md.mesh.numberofelements;i++){ 73 var sum=0; 74 for(var j=0;j<md.mesh.elements[0].length;j++){ 75 sum+=isice[md.mesh.elements[i][j]-1]; 76 } 77 if(sum>0)pos.push(i); 78 } 79 for(var i=0;i<pos.length;i++){ 80 for(var j=0;j<md.mesh.elements[0].length;j++){ 81 vlist[md.mesh.elements[pos[i]][j]-1]=1; 82 } 83 } 84 WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1); 85 }//}}} 86 this.fix=function() { //{{{ 87 }//}}} 88 89 } -
TabularUnified ../trunk-jpl/src/m/classes/outputdefinition.m
49 49 WriteData(fid,'data',enums,'enum',OutputdefinitionListEnum(),'format','DoubleMat','mattype',1); 50 50 end % }}} 51 51 function savemodeljs(self,fid,modelname) % {{{ 52 52 53 fprintf(fid,'%s.outputdefinition.definitions=[];\n',modelname); 53 54 if ~isempty(self.definitions), 54 55 error('outputdefinition savemodeljs error message: not supported yet!'); 55 56 end -
TabularUnified ../trunk-jpl/src/m/classes/maskpsl.m
82 82 end % }}} 83 83 function savemodeljs(self,fid,modelname) % {{{ 84 84 85 fprintf(fid,'%s.mask=new maskpsl();\n',modelname); 85 86 writejs1Darray(fid,[modelname '.mask.groundedice_levelset'],self.groundedice_levelset); 86 87 writejs1Darray(fid,[modelname '.mask.ice_levelset'],self.ice_levelset); 87 88 writejs1Darray(fid,[modelname '.mask.ocean_levelset'],self.ocean_levelset); -
TabularUnified ../trunk-jpl/src/m/classes/clusters/generic.js
73 73 var solutionlength = new Uint32Array(1); 74 74 solutionlength[0] = solutionbuffer.byteLength; 75 75 76 var binbuffer = new Uint16Array(fid.buffer); 76 var binbuffer = new Uint16Array(fid.rawbuffer()); 77 77 78 var binlength = new Uint32Array(1); 78 79 binlength[0] = binbuffer.byteLength; 79 80 80 81 var data = new Blob([runtimenamelength,runtimenamebuffer,namelength,namebuffer,toolkitslength,toolkitsbuffer,solutionlength,solutionbuffer,binlength,binbuffer]); 81 //console.log(fid.buffer); 82 if (typeof(download) != "undefined") download(fid.buffer); 82 if (typeof(download) != "undefined") download(fid.rawbuffer()); 83 83 oReq.send(data); 84 84 85 85 return; 86 86 87 87 } //}}} 88 this.ab2str = function(buf) { 88 this.ab2str = function(buf) { //{{{ 89 89 return String.fromCharCode.apply(null, new Uint16Array(buf)); 90 90 } 91 91 this.str2ab = function(str) { … … 94 94 buf[i] = str.charCodeAt(i); 95 95 } 96 96 return buf; 97 } 97 } //}}} 98 98 } -
TabularUnified ../trunk-jpl/src/m/Makefile.am
99 99 ${ISSM_DIR}/src/m/classes/initialization.js \ 100 100 ${ISSM_DIR}/src/m/classes/inversion.js \ 101 101 ${ISSM_DIR}/src/m/classes/mask.js \ 102 ${ISSM_DIR}/src/m/classes/maskpsl.js \ 102 103 ${ISSM_DIR}/src/m/classes/masstransport.js \ 103 104 ${ISSM_DIR}/src/m/classes/matice.js \ 104 105 ${ISSM_DIR}/src/m/classes/mesh2d.js \
Note:
See TracBrowser
for help on using the repository browser.