Changeset 22758 for issm/trunk/src/m/classes/hydrologydc.m
- Timestamp:
- 05/10/18 10:24:27 (7 years ago)
- Location:
- issm/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk
- Property svn:mergeinfo changed
-
issm/trunk/src
- Property svn:mergeinfo changed
-
issm/trunk/src/m/classes/hydrologydc.m
r21341 r22758 12 12 rel_tol = 0; 13 13 max_iter = 0; 14 steps_per_step = 0; 14 15 sedimentlimit_flag = 0; 15 16 sedimentlimit = 0; 16 17 transfer_flag = 0; 18 unconfined_flag = 0; 17 19 leakage_factor = 0; 18 20 basal_moulin_input = NaN; 21 requested_outputs = {}; 19 22 20 23 spcsediment_head = NaN; … … 58 61 end 59 62 % }}} 63 function list = defaultoutputs(self,md) % {{{ 64 list = {'SedimentHead','SedimentHeadResidual','EffectivePressure'}; 65 if self.isefficientlayer, 66 list=[list,{'EplHead','HydrologydcMaskEplactiveNode','HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThickness'}]; 67 end 68 if self.steps_per_step>1, 69 list = [list,'EffectivePressureTimeAverage','SedimentHeadTimeAverage']; 70 if self.isefficientlayer, 71 list = [list,'EplHeadTimeAverage','HydrologydcEplThicknessTimeAverage']; 72 end 73 end 74 end % }}} 75 60 76 function self = initialize(self,md) % {{{ 61 77 if isnan(self.basal_moulin_input), … … 76 92 self.rel_tol = 1.0e-06; 77 93 self.max_iter = 100; 94 self.steps_per_step = 1; 78 95 self.sedimentlimit_flag = 0; 79 96 self.sedimentlimit = 0; 80 97 self.transfer_flag = 0; 98 self.unconfined_flag = 0; 81 99 self.leakage_factor = 10.0; 100 self.requested_outputs = {'default'}; 101 82 102 83 103 self.sediment_compressibility = 1.0e-08; … … 111 131 md = checkfield(md,'fieldname','hydrology.rel_tol','>',0,'numel',1); 112 132 md = checkfield(md,'fieldname','hydrology.max_iter','>',0,'numel',1); 133 md = checkfield(md,'fieldname','hydrology.steps_per_step','>',0,'numel',1); 113 134 md = checkfield(md,'fieldname','hydrology.sedimentlimit_flag','numel',[1],'values',[0 1 2 3]); 114 135 md = checkfield(md,'fieldname','hydrology.transfer_flag','numel',[1],'values',[0 1]); 136 md = checkfield(md,'fieldname','hydrology.unconfined_flag','numel',[1],'values',[0 1]); 137 md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1); 115 138 if self.sedimentlimit_flag==1, 116 139 md = checkfield(md,'fieldname','hydrology.sedimentlimit','>',0,'numel',1); … … 156 179 fielddisplay(self,'rel_tol','tolerance of the nonlinear iteration for the transfer between layers [dimensionless]'); 157 180 fielddisplay(self,'max_iter','maximum number of nonlinear iteration'); 181 fielddisplay(self,'steps_per_step','number of hydrology steps per timestep'); 158 182 fielddisplay(self,'sedimentlimit_flag','what kind of upper limit is applied for the inefficient layer'); 159 183 disp(sprintf('%55s 0: no limit',' ')); … … 170 194 fielddisplay(self,'leakage_factor','user defined leakage factor [m]'); 171 195 end 196 fielddisplay(self,'unconfined_flag',['Do you want unconfined scheme to be used (transitory)']); 197 disp(sprintf('%55s 0: confined only',' ')); 198 disp(sprintf('%55s 1: confined unconfined')); 199 fielddisplay(self,'requested_outputs','additional outputs requested'); 172 200 fielddisplay(self,'basal_moulin_input','water flux at a given point [m3 s-1]'); 173 201 disp(sprintf(' - for the sediment layer')); … … 205 233 WriteData(fid,prefix,'object',self,'fieldname','rel_tol','format','Double'); 206 234 WriteData(fid,prefix,'object',self,'fieldname','max_iter','format','Integer'); 235 WriteData(fid,prefix,'object',self,'fieldname','steps_per_step','format','Integer'); 207 236 WriteData(fid,prefix,'object',self,'fieldname','sedimentlimit_flag','format','Integer'); 208 237 WriteData(fid,prefix,'object',self,'fieldname','transfer_flag','format','Integer'); 238 WriteData(fid,prefix,'object',self,'fieldname','unconfined_flag','format','Integer'); 209 239 if self.sedimentlimit_flag==1, 210 240 WriteData(fid,prefix,'object',self,'fieldname','sedimentlimit','format','Double'); … … 233 263 WriteData(fid,prefix,'object',self,'fieldname','eplflip_lock','format','Integer'); 234 264 end 265 outputs = self.requested_outputs; 266 pos = find(ismember(outputs,'default')); 267 if ~isempty(pos), 268 outputs(pos) = []; %remove 'default' from outputs 269 outputs = [outputs defaultoutputs(self,md)]; %add defaults 270 end 271 WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray'); 235 272 end 236 273
Note:
See TracChangeset
for help on using the changeset viewer.