Changeset 24866
- Timestamp:
- 05/15/20 20:30:32 (5 years ago)
- Location:
- issm/trunk-jpl/src/m
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/flowequation.js
r21065 r24866 92 92 if(ArrayAnyEqual(ArrayIsMember('StressbalanceSIAAnalysis', analyses),1)){ 93 93 if (ArrayAnyEqual(this.element_equation,1)){ 94 if(this.vertex_equation & ArrayAnyBelowStrict(md.mask. groundedice_levelset)){94 if(this.vertex_equation & ArrayAnyBelowStrict(md.mask.ocean_levelset)){ 95 95 console.log(sprintf("\n !!! Warning: SIA's model is not consistent on ice shelves !!!\n")); 96 96 } -
issm/trunk-jpl/src/m/classes/groundingline.js
r23355 r24866 34 34 } 35 35 for (var i=0;i<md.mesh.numberofvertices;i++){ 36 if(md.mask. groundedice_levelset[i]>0){36 if(md.mask.ocean_levelset[i]>0){ 37 37 md.checkmessage('base not equal to bed on grounded ice!'); 38 38 break; -
issm/trunk-jpl/src/m/classes/mask.js
r21155 r24866 7 7 //properties 8 8 // {{{ 9 this. groundedice_levelset = NaN;9 this.ocean_levelset = NaN; 10 10 this.ice_levelset = NaN; 11 11 //}}} … … 16 16 console.log(sprintf(" mask:")); 17 17 18 fielddisplay(this," groundedice_levelset","is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0");18 fielddisplay(this,"ocean_levelset","is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0"); 19 19 fielddisplay(this,"ice_levelset","presence of ice if < 0, icefront position if = 0, no ice if > 0"); 20 20 } //}}} 21 21 this.extrude = function(md) {//{{{ 22 this. groundedice_levelset=project3d(md,'vector',this.groundedice_levelset,'type','node');22 this.ocean_levelset=project3d(md,'vector',this.ocean_levelset,'type','node'); 23 23 this.ice_levelset=project3d(md,'vector',this.ice_levelset,'type','node'); 24 24 return this; … … 29 29 this.checkconsistency = function(md,solution,analyses){ //{{{ 30 30 31 checkfield(md,'fieldname','mask. groundedice_levelset','size',[md.mesh.numberofvertices, 1]);31 checkfield(md,'fieldname','mask.ocean_levelset','size',[md.mesh.numberofvertices, 1]); 32 32 checkfield(md,'fieldname','mask.ice_levelset' ,'size',[md.mesh.numberofvertices, 1]); 33 33 var isice=NewArrayFill(md.mesh.numberofvertices,0); … … 41 41 } // }}} 42 42 this.marshall=function(md,prefix,fid) { //{{{ 43 WriteData(fid,prefix,'object',this,'fieldname',' groundedice_levelset','format','DoubleMat','mattype',1);43 WriteData(fid,prefix,'object',this,'fieldname','ocean_levelset','format','DoubleMat','mattype',1); 44 44 WriteData(fid,prefix,'object',this,'fieldname','ice_levelset','format','DoubleMat','mattype',1); 45 45 }//}}} -
issm/trunk-jpl/src/m/classes/maskpsl.js
r20777 r24866 7 7 //properties 8 8 // {{{ 9 this. groundedice_levelset = NaN;9 this.ocean_levelset = NaN; 10 10 this.ice_levelset = NaN; 11 11 this.land_levelset = NaN; … … 18 18 console.log(sprintf(" mask:")); 19 19 20 fielddisplay(this," groundedice_levelset","is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0");20 fielddisplay(this,"ocean_levelset","is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0"); 21 21 fielddisplay(this,"ice_levelset","presence of ice if < 0, icefront position if = 0, no ice if > 0"); 22 22 fielddisplay(this,"ocean_levelset","is the vertex on the ocean? yes if = 1, no if = 0"); … … 28 28 this.checkconsistency = function(md,solution,analyses){ //{{{ 29 29 30 checkfield(md,'fieldname','mask. groundedice_levelset','size',[md.mesh.numberofvertices, 1]);30 checkfield(md,'fieldname','mask.ocean_levelset','size',[md.mesh.numberofvertices, 1]); 31 31 checkfield(md,'fieldname','mask.ice_levelset' ,'size',[md.mesh.numberofvertices, 1]); 32 32 checkfield(md,'fieldname','mask.ocean_levelset' ,'size',[md.mesh.numberofvertices, 1]); … … 59 59 } // }}} 60 60 this.marshall=function(md,prefix,fid) { //{{{ 61 WriteData(fid,prefix,'object',this,'class','mask','fieldname',' groundedice_levelset','format','DoubleMat','mattype',1);61 WriteData(fid,prefix,'object',this,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1); 62 62 WriteData(fid,prefix,'object',this,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1); 63 63 WriteData(fid,prefix,'object',this,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1); -
issm/trunk-jpl/src/m/classes/maskpsl.m
r24861 r24866 6 6 classdef maskpsl 7 7 properties (SetAccess=public) 8 ocean_levelset = NaN; 9 ice_levelset = NaN; 10 ocean_levelset = NaN; 11 land_levelset = NaN; 8 ice_levelset = NaN; 9 ocean_levelset = NaN; 10 land_levelset = NaN; 12 11 glacier_levelset = NaN; 13 12 end … … 20 19 methods 21 20 function self = extrude(self,md) % {{{ 22 self.ocean_levelset=project3d(md,'vector',self.ocean_levelset,'type','node');23 21 self.ice_levelset=project3d(md,'vector',self.ice_levelset,'type','node'); 24 22 self.ocean_levelset=project3d(md,'vector',self.ocean_levelset,'type','node'); … … 40 38 if strcmpi(solution,'LoveSolution'), return; end; 41 39 42 md = checkfield(md,'fieldname','mask.ocean_levelset','size',[md.mesh.numberofvertices 1]);43 40 md = checkfield(md,'fieldname','mask.ice_levelset' ,'size',[md.mesh.numberofvertices 1]); 44 41 md = checkfield(md,'fieldname','mask.ocean_levelset','size',[md.mesh.numberofvertices 1]); … … 47 44 function disp(self) % {{{ 48 45 disp(sprintf(' masks:')); 49 fielddisplay(self,'ocean_levelset','is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0');50 46 fielddisplay(self,'ice_levelset','presence of ice if < 0, icefront position if = 0, no ice if > 0'); 51 47 fielddisplay(self,'ocean_levelset','is the vertex on the ocean ? yes if = 1, no if = 0'); … … 55 51 function marshall(self,prefix,md,fid) % {{{ 56 52 WriteData(fid,prefix,'name','md.mask.type','data',class(md.mask),'format','String'); 57 WriteData(fid,prefix,'object',self,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1);58 53 WriteData(fid,prefix,'object',self,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1); 59 54 WriteData(fid,prefix,'object',self,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1); … … 62 57 function savemodeljs(self,fid,modelname) % {{{ 63 58 fprintf(fid,'%s.mask=new maskpsl();\n',modelname); 64 writejs1Darray(fid,[modelname '.mask.ocean_levelset'],self.ocean_levelset);65 59 writejs1Darray(fid,[modelname '.mask.ice_levelset'],self.ice_levelset); 66 60 writejs1Darray(fid,[modelname '.mask.ocean_levelset'],self.ocean_levelset); -
issm/trunk-jpl/src/m/classes/maskpsl.py
r24861 r24866 14 14 15 15 def __init__(self, *args): # {{{ 16 self.ocean_levelset = float('NaN')17 16 self.ice_levelset = float('NaN') 18 17 self.ocean_levelset = float('NaN') … … 27 26 def __repr__(self): # {{{ 28 27 string = ' masks:' 29 string = "%s\n%s" % (string, fielddisplay(self, 'ocean_levelset', 'is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0'))30 28 string = "%s\n%s" % (string, fielddisplay(self, 'ice_levelset', 'presence of ice if < 0, icefront position if = 0, no ice if > 0')) 31 29 string = "%s\n%s" % (string, fielddisplay(self, 'ocean_levelset', 'is the vertex on the ocean ? yes if = 1, no if = 0')) … … 50 48 51 49 def checkconsistency(self, md, solution, analyses): # {{{ 52 md = checkfield(md, 'fieldname', 'mask.ocean_levelset', 'size', [md.mesh.numberofvertices])53 50 md = checkfield(md, 'fieldname', 'mask.ice_levelset', 'size', [md.mesh.numberofvertices]) 54 51 md = checkfield(md, 'fieldname', 'mask.ocean_levelset', 'size', [md.mesh.numberofvertices]) … … 72 69 73 70 def extrude(self, md): # {{{ 74 self.ocean_levelset = project3d(md, 'vector', self.ocean_levelset, 'type', 'node')75 71 self.ice_levelset = project3d(md, 'vector', self.ice_levelset, 'type', 'node') 76 72 self.ocean_levelset = project3d(md, 'vector', self.ocean_levelset, 'type', 'node') … … 90 86 def marshall(self, prefix, md, fid): # {{{ 91 87 WriteData(fid, prefix, 'name', 'md.mask.type', 'data', type(md.mask).__name__, 'format', 'String') 92 WriteData(fid, prefix, 'object', self, 'class', 'mask', 'fieldname', 'ocean_levelset', 'format', 'DoubleMat', 'mattype', 1)93 88 WriteData(fid, prefix, 'object', self, 'class', 'mask', 'fieldname', 'ice_levelset', 'format', 'DoubleMat', 'mattype', 1) 94 89 WriteData(fid, prefix, 'object', self, 'class', 'mask', 'fieldname', 'ocean_levelset', 'format', 'DoubleMat', 'mattype', 1) … … 97 92 98 93 def savemodeljs(self, fid, modelname): # {{{ 99 writejs1Darray(fid, [modelname, '.mask.ocean_levelset'], self.ocean_levelset)100 94 writejs1Darray(fid, [modelname, '.mask.ice_levelset'], self.ice_levelset) 101 95 writejs1Darray(fid, [modelname, '.mask.ocean_levelset'], self.ocean_levelset) -
issm/trunk-jpl/src/m/classes/model.js
r24469 r24866 643 643 md.geometry.bed=project2d(md,md.geometry.bed,1); 644 644 645 if (!Number.isNaN(md.mask. groundedice_levelset))646 md.mask. groundedice_levelset=project2d(md,md.mask.groundedice_levelset,1);645 if (!Number.isNaN(md.mask.ocean_levelset)) 646 md.mask.ocean_levelset=project2d(md,md.mask.ocean_levelset,1); 647 647 648 648 if (!Number.isNaN(md.mask.ice_levelset)) -
issm/trunk-jpl/src/m/classes/stressbalance.js
r22576 r24866 97 97 98 98 //singular solution 99 if(!ArrayAnyNaN(md.stressbalance.spcvx) | !ArrayAnyNaN(md.stressbalance.spcvy) | !ArrayAnyAboveStrict(md.mask. groundedice_levelset,0)){99 if(!ArrayAnyNaN(md.stressbalance.spcvx) | !ArrayAnyNaN(md.stressbalance.spcvy) | !ArrayAnyAboveStrict(md.mask.ocean_levelset,0)){ 100 100 md = checkmessage(md,'model is not well posed (singular). You need at least one node with fixed velocity!'); 101 101 console.log(sprintf('\n !!! Warning: no spc applied, model might not be well posed if no basal friction is applied, check for solution crash\n')); … … 126 126 //CHECK THAT NO rotation specified for FS Grounded ice at base 127 127 if (md.mesh.domaintype() == '3D' & md.flowequation.isFS){ 128 for(var i=0;i<md.mask. groundedice_levelset.length;i++){129 if(md.mask. groundedice_levelset[i]>0 & md.mesh.vertexonbase[i]){128 for(var i=0;i<md.mask.ocean_levelset.length;i++){ 129 if(md.mask.ocean_levelset[i]>0 & md.mesh.vertexonbase[i]){ 130 130 if(!ArrayIsNan(md.stressbalance.referential[i])){ 131 131 md.checkmessage('no referential should be specified for basal vertices of grounded ice'); -
issm/trunk-jpl/src/m/parameterization/setmask.js
r19823 r24866 63 63 64 64 //level sets 65 groundedice_levelset=vertexongroundedice;66 pos=ArrayFind(vertexongroundedice,0);for(var i=0;i<pos.length;i++) groundedice_levelset[i]=-1;67 md.mask. groundedice_levelset=groundedice_levelset;65 ocean_levelset=vertexongroundedice; 66 pos=ArrayFind(vertexongroundedice,0);for(var i=0;i<pos.length;i++) ocean_levelset[i]=-1; 67 md.mask.ocean_levelset=ocean_levelset; 68 68 69 69 if(arguments.length>3){
Note:
See TracChangeset
for help on using the changeset viewer.