Changeset 22859
- Timestamp:
- 06/21/18 06:02:26 (7 years ago)
- Location:
- issm/trunk-jpl/src/m/classes
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/hydrologydc.m
r22286 r22859 5 5 6 6 classdef hydrologydc 7 properties (SetAccess=public) 7 properties (SetAccess=public) 8 8 water_compressibility = 0; 9 9 isefficientlayer = 0; … … 40 40 end 41 41 methods 42 % {{{ function self = extrude(self,md) 43 function self = extrude(self,md) 42 % {{{ function self = extrude(self,md) 43 function self = extrude(self,md) 44 44 self.spcsediment_head=project3d(md,'vector',self.spcsediment_head,'type','node','layer',1); 45 45 self.sediment_transmitivity=project3d(md,'vector',self.sediment_transmitivity,'type','node','layer',1); … … 49 49 self.mask_eplactive_node=project3d(md,'vector',self.mask_eplactive_node,'type','node','layer',1); 50 50 end 51 end 51 end 52 52 % }}} 53 % {{{ function self = hydrologydc(varargin) 54 function self = hydrologydc(varargin) 53 % {{{ function self = hydrologydc(varargin) 54 function self = hydrologydc(varargin) 55 55 switch nargin 56 56 case 0 … … 59 59 error('constructor not supported'); 60 60 end 61 end 61 end 62 62 % }}} 63 63 function list = defaultoutputs(self,md) % {{{ 64 list = {'SedimentHead ','SedimentHeadResidual','EffectivePressure'};64 list = {'SedimentHeadHydrostep','SedimentHeadResidual','EffectivePressureHydrostep'}; 65 65 if self.isefficientlayer, 66 list=[list,{'EplHead ','HydrologydcMaskEplactiveNode','HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThickness'}];66 list=[list,{'EplHeadHydrostep','HydrologydcMaskEplactiveNode','HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThicknessHydrostep'}]; 67 67 end 68 68 if self.steps_per_step>1, 69 list = [list,'EffectivePressure TimeAverage','SedimentHeadTimeAverage'];69 list = [list,'EffectivePressure','SedimentHead']; 70 70 if self.isefficientlayer, 71 list = [list,'EplHead TimeAverage','HydrologydcEplThicknessTimeAverage'];71 list = [list,'EplHead','HydrologydcEplThickness']; 72 72 end 73 73 end 74 end % }}} 74 end % }}} 75 75 76 76 function self = initialize(self,md) % {{{ … … 81 81 82 82 end % }}} 83 % {{{ function self = setdefaultparameters(self) 84 85 function self = setdefaultparameters(self) 83 % {{{ function self = setdefaultparameters(self) 84 85 function self = setdefaultparameters(self) 86 86 87 87 %Parameters from de Fleurian 2014 … … 114 114 self.epl_conductivity = 8.0e-02; 115 115 self.eplflip_lock = 0; 116 end 117 118 % }}} 119 % {{{ function md = checkconsistency(self,md,solution,analyses) 120 121 function md = checkconsistency(self,md,solution,analyses) 116 end 117 118 % }}} 119 % {{{ function md = checkconsistency(self,md,solution,analyses) 120 121 function md = checkconsistency(self,md,solution,analyses) 122 122 %Early return 123 123 if ~ismember('HydrologyDCInefficientAnalysis',analyses) & ~ismember('HydrologyDCEfficientAnalysis',analyses), … … 163 163 if (self.epl_colapse_thickness>self.epl_initial_thickness), 164 164 md = checkmessage(md,'Colapsing thickness for EPL larger than initial thickness'); 165 end 166 end 167 end 165 end 166 end 167 end 168 168 169 169 % }}} 170 170 % {{{ function disp(self) 171 171 172 function disp(self) 172 function disp(self) 173 173 disp(sprintf(' hydrology Dual Porous Continuum Equivalent parameters:')); 174 174 disp(sprintf(' - general parameters')); … … 220 220 end 221 221 222 end 223 224 % }}} 225 % {{{ function marshall(self,prefix,md,fid) 226 227 function marshall(self,prefix,md,fid) 222 end 223 224 % }}} 225 % {{{ function marshall(self,prefix,md,fid) 226 227 function marshall(self,prefix,md,fid) 228 228 WriteData(fid,prefix,'name','md.hydrology.model','data',1,'format','Integer'); 229 229 WriteData(fid,prefix,'object',self,'fieldname','water_compressibility','format','Double'); … … 246 246 247 247 WriteData(fid,prefix,'object',self,'fieldname','spcsediment_head','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 248 WriteData(fid,prefix,'object',self,'fieldname','sediment_compressibility','format','Double'); 249 WriteData(fid,prefix,'object',self,'fieldname','sediment_porosity','format','Double'); 248 WriteData(fid,prefix,'object',self,'fieldname','sediment_compressibility','format','Double'); 249 WriteData(fid,prefix,'object',self,'fieldname','sediment_porosity','format','Double'); 250 250 WriteData(fid,prefix,'object',self,'fieldname','sediment_thickness','format','Double'); 251 WriteData(fid,prefix,'object',self,'fieldname','sediment_transmitivity','format','DoubleMat','mattype',1'); 252 253 if self.isefficientlayer==1, 254 WriteData(fid,prefix,'object',self,'fieldname','spcepl_head','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 251 WriteData(fid,prefix,'object',self,'fieldname','sediment_transmitivity','format','DoubleMat','mattype',1'); 252 253 if self.isefficientlayer==1, 254 WriteData(fid,prefix,'object',self,'fieldname','spcepl_head','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts); 255 255 WriteData(fid,prefix,'object',self,'fieldname','mask_eplactive_node','format','DoubleMat','mattype',1); 256 WriteData(fid,prefix,'object',self,'fieldname','epl_compressibility','format','Double'); 257 WriteData(fid,prefix,'object',self,'fieldname','epl_porosity','format','Double'); 256 WriteData(fid,prefix,'object',self,'fieldname','epl_compressibility','format','Double'); 257 WriteData(fid,prefix,'object',self,'fieldname','epl_porosity','format','Double'); 258 258 WriteData(fid,prefix,'object',self,'fieldname','epl_initial_thickness','format','Double'); 259 259 WriteData(fid,prefix,'object',self,'fieldname','epl_colapse_thickness','format','Double'); … … 270 270 end 271 271 WriteData(fid,prefix,'data',outputs,'name','md.hydrology.requested_outputs','format','StringArray'); 272 end 272 end 273 273 274 274 % }}} -
issm/trunk-jpl/src/m/classes/hydrologydc.py
r22286 r22859 45 45 self.epl_conductivity = 0 46 46 self.eplflip_lock = 0 47 47 48 48 #set defaults 49 49 self.setdefaultparameters() … … 58 58 string="%s\n%s"%(string,fielddisplay(self,'rel_tol','tolerance of the nonlinear iteration for the transfer between layers [dimensionless]')) 59 59 string="%s\n%s"%(string,fielddisplay(self,'max_iter','maximum number of nonlinear iteration')) 60 string="%s\n%s"%(string,fielddisplay(self,'steps_per_step','number of hydrology steps per time step')) 60 string="%s\n%s"%(string,fielddisplay(self,'steps_per_step','number of hydrology steps per time step')) 61 61 string="%s\n%s"%(string,fielddisplay(self,'basal_moulin_input','water flux at a given point [m3 s-1]')) 62 62 string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested')) … … 66 66 string="%s\n\t\t%s"%(string,'2: hydrostatic pressure') 67 67 string="%s\n\t\t%s"%(string,'3: normal stress') 68 68 69 69 if self.sedimentlimit_flag==1: 70 70 string="%s\n%s"%(string,fielddisplay(self,'sedimentlimit','user defined upper limit for the inefficient layer [m]')) … … 73 73 string="%s\n\t\t%s"%(string,'0: no transfer') 74 74 string="%s\n\t\t%s"%(string,'1: constant leakage factor: leakage_factor') 75 75 76 76 if self.transfer_flag is 1: 77 77 string="%s\n%s"%(string,fielddisplay(self,'leakage_factor','user defined leakage factor [m]')) … … 80 80 string="%s\n\t\t%s"%(string,'0: Confined only') 81 81 string="%s\n\t\t%s"%(string,'1: Confined-Unconfined') 82 82 83 83 string="%s\n%s"%(string,' - for the sediment layer') 84 84 string="%s\n%s"%(string,fielddisplay(self,'spcsediment_head','sediment water head constraints (NaN means no constraint) [m above MSL]')) … … 95 95 string="%s\n%s"%(string,fielddisplay(self,'epl_porosity','epl [dimensionless]')) 96 96 string="%s\n%s"%(string,fielddisplay(self,'epl_max_thickness','epl maximal thickness [m]')) 97 string="%s\n%s"%(string,fielddisplay(self,'epl_initial_thickness','epl initial thickness [m]')) 97 string="%s\n%s"%(string,fielddisplay(self,'epl_initial_thickness','epl initial thickness [m]')) 98 98 string="%s\n%s"%(string,fielddisplay(self,'epl_colapse_thickness','epl colapsing thickness [m]')) 99 99 string="%s\n%s"%(string,fielddisplay(self,'epl_thick_comp','epl thickness computation flag')) … … 111 111 return self 112 112 #}}} 113 def setdefaultparameters(self): #{{{ 113 def setdefaultparameters(self): #{{{ 114 114 #Parameters from de Fleurian 2014 115 115 self.water_compressibility = 5.04e-10 … … 140 140 self.epl_conductivity = 8.0e-02 141 141 self.eplflip_lock = 0 142 142 143 143 return self 144 144 # }}} 145 145 146 146 def defaultoutputs(self,md): # {{{ 147 list = ['SedimentHead ','SedimentHeadResidual','EffectivePressure']148 if self.isefficientlayer==1: 149 list.extend(['EplHead ','HydrologydcMaskEplactiveNode','HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThickness'])147 list = ['SedimentHeadHydrostep','SedimentHeadResidual','EffectivePressureHydrostep'] 148 if self.isefficientlayer==1: 149 list.extend(['EplHeadHydrostep','HydrologydcMaskEplactiveNode','HydrologydcMaskEplactiveElt','EplHeadSlopeX','EplHeadSlopeY','HydrologydcEplThicknessHydrostep']) 150 150 if self.steps_per_step>1: 151 list.extend(['EffectivePressure TimeAverage','SedimentHeadTimeAverage'])151 list.extend(['EffectivePressure','SedimentHead']) 152 152 if self.isefficientlayer==1: 153 list.extend(['EplHead TimeAverage','HydrologydcEplThicknessTimeAverage'])153 list.extend(['EplHead','HydrologydcEplThickness']) 154 154 return list 155 155 #}}} … … 162 162 return self 163 163 # }}} 164 def checkconsistency(self,md,solution,analyses): #{{{ 164 def checkconsistency(self,md,solution,analyses): #{{{ 165 165 166 166 #Early return … … 206 206 md = checkfield(md,'fieldname','hydrology.epl_conductivity','numel',[1],'>',0.) 207 207 # }}} 208 def marshall(self,prefix,md,fid): #{{{ 208 def marshall(self,prefix,md,fid): #{{{ 209 209 WriteData(fid,prefix,'name','md.hydrology.model','data',1,'format','Integer') 210 210 WriteData(fid,prefix,'object',self,'fieldname','water_compressibility','format','Double') … … 227 227 WriteData(fid,prefix,'object',self,'fieldname','spcsediment_head','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 228 228 WriteData(fid,prefix,'object',self,'fieldname','sediment_compressibility','format','Double') 229 WriteData(fid,prefix,'object',self,'fieldname','sediment_porosity','format','Double') 229 WriteData(fid,prefix,'object',self,'fieldname','sediment_porosity','format','Double') 230 230 WriteData(fid,prefix,'object',self,'fieldname','sediment_thickness','format','Double') 231 WriteData(fid,prefix,'object',self,'fieldname','sediment_transmitivity','format','DoubleMat','mattype',1) 232 233 if self.isefficientlayer==1: 234 WriteData(fid,prefix,'object',self,'fieldname','spcepl_head','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 231 WriteData(fid,prefix,'object',self,'fieldname','sediment_transmitivity','format','DoubleMat','mattype',1) 232 233 if self.isefficientlayer==1: 234 WriteData(fid,prefix,'object',self,'fieldname','spcepl_head','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts) 235 235 WriteData(fid,prefix,'object',self,'fieldname','mask_eplactive_node','format','DoubleMat','mattype',1) 236 WriteData(fid,prefix,'object',self,'fieldname','epl_compressibility','format','Double') 237 WriteData(fid,prefix,'object',self,'fieldname','epl_porosity','format','Double') 236 WriteData(fid,prefix,'object',self,'fieldname','epl_compressibility','format','Double') 237 WriteData(fid,prefix,'object',self,'fieldname','epl_porosity','format','Double') 238 238 WriteData(fid,prefix,'object',self,'fieldname','epl_max_thickness','format','Double') 239 WriteData(fid,prefix,'object',self,'fieldname','epl_initial_thickness','format','Double') 239 WriteData(fid,prefix,'object',self,'fieldname','epl_initial_thickness','format','Double') 240 240 WriteData(fid,prefix,'object',self,'fieldname','epl_colapse_thickness','format','Double') 241 WriteData(fid,prefix,'object',self,'fieldname','epl_thick_comp','format','Integer') 241 WriteData(fid,prefix,'object',self,'fieldname','epl_thick_comp','format','Integer') 242 242 WriteData(fid,prefix,'object',self,'fieldname','epl_conductivity','format','Double') 243 243 WriteData(fid,prefix,'object',self,'fieldname','eplflip_lock','format','Integer')
Note:
See TracChangeset
for help on using the changeset viewer.