Changeset 22283
- Timestamp:
- 11/30/17 23:41:58 (7 years ago)
- Location:
- issm/trunk-jpl/src/m/classes
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/hydrologydc.m
r22278 r22283 64 64 list = {'SedimentHead','SedimentHeadResidual','EffectivePressure'}; 65 65 if self.isefficientlayer, 66 list=[list,{'EplHead','HydrologydcMaskEplactiveNode', ... 67 'HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThickness'}]; 66 list=[list,{'EplHead','HydrologydcMaskEplactiveNode','HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThickness'}]; 68 67 end 69 68 if self.steps_per_step>1, 70 list = [list,' TimeAverageEffectivePressure'];69 list = [list,'EffectivePressureTimeAverage']; 71 70 end 72 71 end % }}} -
issm/trunk-jpl/src/m/classes/hydrologydc.py
r22278 r22283 149 149 list.extend(['EplHead','HydrologydcMaskEplactiveNode','HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThickness']) 150 150 if self.steps_per_step>1: 151 list.extend([' TimeAverageEffectivePressure'])151 list.extend(['EffectivePressureTimeAverage']) 152 152 153 153 return list 154 155 154 #}}} 156 155 … … 178 177 md = checkfield(md,'fieldname','hydrology.transfer_flag','numel',[1],'values',[0,1]) 179 178 md = checkfield(md,'fieldname','hydrology.unconfined_flag','numel',[1],'values',[0,1]) 180 md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1) ;179 md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1) 181 180 182 181 if self.sedimentlimit_flag==1: -
issm/trunk-jpl/src/m/classes/hydrologyshreve.js
r21065 r22283 11 11 this.stabilization=1; 12 12 13 //default output 14 this.requested_outputs=['default']; 15 13 16 }// }}} 14 17 this.disp= function(){// {{{ … … 17 20 fielddisplay(this,'spcwatercolumn','water thickness constraints (NaN means no constraint) [m]'); 18 21 fielddisplay(this,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.'); 22 fielddisplay(this,'requested_outputs','additional outputs requested'); 19 23 20 24 }// }}} … … 37 41 checkfield(md,'fieldname','hydrology.spcwatercolumn','Inf',1,'timeseries',1); 38 42 checkfield(md,'fieldname','hydrology.stabilization','>=',0); 43 checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1); 39 44 40 45 } // }}} … … 43 48 WriteData(fid,prefix,'object',this,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 44 49 WriteData(fid,prefix,'object',this,'fieldname','stabilization','format','Double'); 50 var outputs = this.requested_outputs; 51 for (var i=0;i<outputs.length;i++){ 52 if (outputs[i] == 'default') { 53 outputs.splice(i,1); 54 var newoutputs=this.defaultoutputs(md); 55 for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]); 56 } 57 } 58 WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray'); 59 }//}}} 60 this.defaultoutputs = function(md) { //{{{ 61 return ['Watercolumn','HydrologyWaterVx','HydrologyWaterVy']; 45 62 }//}}} 46 63 this.fix=function() { //{{{ … … 51 68 this.spcwatercolumn = NaN; 52 69 this.stabilization = 0; 70 this.requested_outputs = []; 53 71 this.setdefaultparameters(); 54 72 //}}} -
issm/trunk-jpl/src/m/classes/hydrologyshreve.m
r21049 r22283 6 6 classdef hydrologyshreve 7 7 properties (SetAccess=public) 8 spcwatercolumn = NaN; 9 stabilization = 0; 8 spcwatercolumn = NaN; 9 stabilization = 0; 10 requested_outputs = {}; 10 11 end 11 12 methods … … 22 23 end 23 24 end % }}} 25 function list = defaultoutputs(self,md) % {{{ 26 list = {'Watercolumn','HydrologyWaterVx','HydrologyWaterVy'}; 27 end % }}} 28 24 29 function self = setdefaultparameters(self) % {{{ 25 30 26 31 %Type of stabilization to use 0:nothing 1:artificial_diffusivity 27 self.stabilization=1; 32 self.stabilization = 1; 33 self.requested_outputs = {'default'}; 28 34 end % }}} 29 35 function md = checkconsistency(self,md,solution,analyses) % {{{ … … 41 47 fielddisplay(self,'spcwatercolumn','water thickness constraints (NaN means no constraint) [m]'); 42 48 fielddisplay(self,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.'); 49 fielddisplay(self,'requested_outputs','additional outputs requested'); 43 50 44 51 end % }}} … … 47 54 WriteData(fid,prefix,'object',self,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 48 55 WriteData(fid,prefix,'object',self,'fieldname','stabilization','format','Double'); 56 outputs = self.requested_outputs; 57 pos = find(ismember(outputs,'default')); 58 if ~isempty(pos), 59 outputs(pos) = []; %remove 'default' from outputs 60 outputs = [outputs defaultoutputs(self,md)]; %add defaults 61 end 62 WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray'); 49 63 end % }}} 50 64 function savemodeljs(self,fid,modelname) % {{{ -
issm/trunk-jpl/src/m/classes/hydrologyshreve.py
r21049 r22283 14 14 self.spcwatercolumn = float('NaN') 15 15 self.stabilization = 0 16 16 self.requested_outputs = [] 17 17 #set defaults 18 18 self.setdefaultparameters() … … 24 24 string="%s\n%s"%(string,fielddisplay(self,'spcwatercolumn','water thickness constraints (NaN means no constraint) [m]')) 25 25 string="%s\n%s"%(string,fielddisplay(self,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.')) 26 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 26 27 return string 27 28 #}}} … … 33 34 #Type of stabilization to use 0:nothing 1:artificial_diffusivity 34 35 self.stabilization=1 35 36 self.requested_outputs= ['default'] 36 37 return self 37 38 #}}} 39 def defaultoutputs(self,md): # {{{ 40 list = ['Watercolumn','HydrologyWaterVx','HydrologyWaterVy'] 41 return list 42 #}}} 43 38 44 def checkconsistency(self,md,solution,analyses): # {{{ 39 45 … … 44 50 md = checkfield(md,'fieldname','hydrology.spcwatercolumn','Inf',1,'timeseries',1) 45 51 md = checkfield(md,'fieldname','hydrology.stabilization','>=',0) 46 52 md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1) 47 53 return md 48 54 # }}} … … 51 57 WriteData(fid,prefix,'object',self,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 52 58 WriteData(fid,prefix,'object',self,'fieldname','stabilization','format','Double') 59 #process requested outputs 60 outputs = self.requested_outputs 61 indices = [i for i, x in enumerate(outputs) if x == 'default'] 62 if len(indices) > 0: 63 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 64 outputs =outputscopy 65 WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray') 66 53 67 # }}} -
issm/trunk-jpl/src/m/classes/hydrologysommers.m
r21526 r22283 17 17 relaxation = 0; 18 18 storage = 0; 19 requested_outputs = {}; 19 20 end 20 21 methods … … 31 32 end 32 33 end % }}} 34 function list = defaultoutputs(self,md) % {{{ 35 list = {'HydrologyHead','HydrologyGapHeight','EffectivePressure','HydrologyBasalFlux','DegreeOfChannelization'}; 36 end % }}} 37 33 38 function self = setdefaultparameters(self) % {{{ 34 39 % Set under-relaxation parameter to be 1 (no under-relaxation of nonlinear iteration) 35 40 self.relaxation=1; 36 41 self.storage=0; 42 self.requested_outputs={'default'}; 37 43 end % }}} 38 44 function md = checkconsistency(self,md,solution,analyses) % {{{ … … 54 60 md = checkfield(md,'fieldname','hydrology.relaxation','>=',0); 55 61 md = checkfield(md,'fieldname','hydrology.storage','>=',0); 62 md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1); 56 63 end % }}} 57 64 function disp(self) % {{{ … … 68 75 fielddisplay(self,'relaxation','under-relaxation coefficient for nonlinear iteration'); 69 76 fielddisplay(self,'storage','englacial storage coefficient (void ratio)'); 77 fielddisplay(self,'requested_outputs','additional outputs requested'); 70 78 end % }}} 71 79 function marshall(self,prefix,md,fid) % {{{ … … 83 91 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','neumannflux','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts); 84 92 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','spchead','format','DoubleMat','mattype',1); 85 93 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','relaxation','format','Double'); 86 94 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','storage','format','Double'); 95 outputs = self.requested_outputs; 96 pos = find(ismember(outputs,'default')); 97 if ~isempty(pos), 98 outputs(pos) = []; %remove 'default' from outputs 99 outputs = [outputs defaultoutputs(self,md)]; %add defaults 100 end 101 WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray'); 87 102 end % }}} 88 103 end -
issm/trunk-jpl/src/m/classes/hydrologysommers.py
r22267 r22283 23 23 self.relaxation = 0 24 24 self.storage = 0 25 self.requested_outputs = [] 25 26 26 27 #set defaults … … 42 43 string="%s\n%s"%(string,fielddisplay(self,'relaxation','under-relaxation coefficient for nonlinear iteration')) 43 44 string="%s\n%s"%(string,fielddisplay(self,'storage','englacial storage coefficient (void ratio)')) 45 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) 44 46 return string 45 47 #}}} … … 51 53 self.relaxation=1 52 54 self.storage=0 55 self.requested_outputs=['default'] 53 56 return self 54 57 #}}} 58 def defaultoutputs(self,md): # {{{ 59 list = ['HydrologyHead','HydrologyGapHeight','EffectivePressure','HydrologyBasalFlux','DegreeOfChannelization'] 60 return list 61 #}}} 62 55 63 def checkconsistency(self,md,solution,analyses): # {{{ 56 64 … … 70 78 md = checkfield(md,'fieldname','hydrology.relaxation','>=',0) 71 79 md = checkfield(md,'fieldname','hydrology.storage','>=',0) 80 md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1) 72 81 73 82 return md … … 86 95 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','neumannflux','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts) 87 96 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','spchead','format','DoubleMat','mattype',1) 88 97 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','relaxation','format','Double') 89 98 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','storage','format','Double') 99 #process requested outputs 100 outputs = self.requested_outputs 101 indices = [i for i, x in enumerate(outputs) if x == 'default'] 102 if len(indices) > 0: 103 outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:] 104 outputs =outputscopy 105 WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray') 90 106 # }}}
Note:
See TracChangeset
for help on using the changeset viewer.