Changeset 28234
- Timestamp:
- 04/29/24 14:00:09 (11 months ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r28145 r28234 262 262 HydrologyEnglacialVoidRatioEnum, 263 263 HydrologyIschannelsEnum, 264 HydrologyIsIncludeSheetThicknessEnum, 265 HydrologyCreepOpenFlagEnum, 264 266 HydrologyIsTransitionEnum, 265 267 HydrologyIsWaterPressureArmaEnum, -
issm/trunk-jpl/src/m/classes/hydrologyglads.m
r28050 r28234 15 15 sheet_beta = NaN; 16 16 rheology_B_base = NaN; 17 isincludesheetthickness = 0; 18 creep_open_flag = 1; 17 19 18 20 %Channels … … 68 70 self.melt_flag=0; 69 71 self.istransition = 0; %by default use GlaDS default turbulent code 72 self.creep_open_flag = 1; 70 73 end % }}} 71 74 function md = checkconsistency(self,md,solution,analyses) % {{{ … … 85 88 md = checkfield(md,'fieldname','hydrology.sheet_beta', 'numel', [1], '>', 0); 86 89 md = checkfield(md,'fieldname','hydrology.rheology_B_base','size',[md.mesh.numberofvertices 1],'>=',0,'NaN',1,'Inf',1); 90 md = checkfield(md,'fieldname','hydrology.isincludesheetthickness','numel',[1],'values',[0 1]); 87 91 %Channels 88 92 md = checkfield(md,'fieldname','hydrology.ischannels','numel',[1],'values',[0 1]); … … 100 104 md = checkfield(md,'fieldname','hydrology.melt_flag','numel',[1],'values',[0 1 2]); 101 105 md = checkfield(md,'fieldname','hydrology.istransition','numel',[1],'values',[0 1]); 106 md = checkfield(md,'fieldname','hydrology.creep_open_flag','numel',[1],'values',[0 1]); 102 107 if self.melt_flag==1 || self.melt_flag==2 103 108 md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1); … … 115 120 fielddisplay(self,'omega','transition parameter (omega) []'); 116 121 fielddisplay(self,'rheology_B_base','Ice rheology factor B at base of ice (B) [Pa s^(-1/3)]'); 122 fielddisplay(self,'isincludesheetthickness','Do we add rho_w*g*h in effective pressure calculation? 1: yes, 0: no'); 123 fielddisplay(self,'creep_open_flag','Do we allow cavities to open by creep when N<0? 1: yes, 0: no'); 117 124 disp(sprintf(' CHANNELS')); 118 125 fielddisplay(self,'ischannels','Do we allow for channels? 1: yes, 0: no'); … … 146 153 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','sheet_beta','format','Double'); 147 154 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','rheology_B_base','format','DoubleMat','mattype',1); 155 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','isincludesheetthickness','format','Boolean'); 156 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','creep_open_flag','format','Boolean'); 148 157 149 158 %Channels -
issm/trunk-jpl/src/m/classes/hydrologyglads.py
r28050 r28234 19 19 self.cavity_spacing = 0. 20 20 self.bump_height = np.nan 21 self.omega = 0.; 22 self.sheet_alpha = np.nan; 23 self.sheet_beta = np.nan; 24 self.rheology_B_base = np.nan; 21 self.omega = 0. 22 self.sheet_alpha = np.nan 23 self.sheet_beta = np.nan 24 self.rheology_B_base = np.nan 25 self.isincludesheetthickness = 0 26 self.creep_open_flag = 1 27 self.rheology_B_base = np.nan 25 28 26 29 # Channels … … 28 31 self.channel_conductivity = np.nan 29 32 self.channel_sheet_width = 0. 30 self.channel_alpha = np.nan ;31 self.channel_beta = np.nan ;33 self.channel_alpha = np.nan 34 self.channel_beta = np.nan 32 35 33 36 # Other … … 52 55 def __repr__(self): # {{{ 53 56 s = ' GlaDS (hydrologyglads) solution parameters:\n' 54 s = '\t--SHEET\n'57 s += '\t--SHEET\n' 55 58 s += '{}\n'.format(fielddisplay(self, 'pressure_melt_coefficient', 'Pressure melt coefficient (c_t) [K Pa^ - 1]')) 56 59 s += '{}\n'.format(fielddisplay(self, 'sheet_conductivity', 'sheet conductivity (k) [m^(7 / 4) kg^(- 1 / 2)]')) … … 61 64 s += '{}\n'.format(fielddisplay(self, 'omega', 'transition parameter (omega) []')) #TH 62 65 s += '{}\n'.format(fielddisplay(self, 'rheology_B_base', 'ice rheology factor B at base of ice (B) [Pa s^(-1/3)]')) #SE 63 s = '\t--CHANNELS\n' 66 s += '{}\n'.format(fielddisplay(self, 'isincludesheetthickness', 'Do we add rho_w*g*h in effective pressure calculation? 1: yes, 0: no')) 67 s += '{}\n'.format(fielddisplay(self, 'creep_open_flag', 'Do we allow cavities to open by creep when N<0? 1: yes, 0: no')) 68 s += '\t--CHANNELS\n' 64 69 s += '{}\n'.format(fielddisplay(self, 'ischannels', 'Do we allow for channels? 1: yes, 0: no')) 65 70 s += '{}\n'.format(fielddisplay(self, 'channel_conductivity', 'channel conductivity (k_c) [m^(3 / 2) kg^(- 1 / 2)]')) … … 67 72 s += '{}\n'.format(fielddisplay(self, 'channel_alpha', 'First channel-flow exponent (alpha_s) []')) #TH 68 73 s += '{}\n'.format(fielddisplay(self, 'channel_beta', 'Second channel-flow exponent (beta_s) []')) #TH 69 s = '\t--OTHER\n'74 s += '\t--OTHER\n' 70 75 s += '{}\n'.format(fielddisplay(self, 'spcphi', 'Hydraulic potential Dirichlet constraints [Pa]')) 71 76 s += '{}\n'.format(fielddisplay(self, 'neumannflux', 'water flux applied along the model boundary (m^2 / s)')) … … 75 80 s += '{}\n'.format(fielddisplay(self, 'melt_flag', 'User specified basal melt? 0: no (default), 1: use md.basalforcings.groundedice_melting_rate')) 76 81 s += '{}\n'.format(fielddisplay(self, 'istransition','do we use standard [0, default] or transition model [1]')) 77 return s tring82 return s 78 83 # }}} 79 84 … … 96 101 def setdefaultparameters(self): # {{{ 97 102 # Sheet parameters 98 self.pressure_melt_coefficient = 7.5e-8 #K / Pa (See table 1 in Erder et al. 2013)103 self.pressure_melt_coefficient = 7.5e-8 #K / Pa (See table 1 in Werder et al. 2013) 99 104 self.cavity_spacing = 2. #m 100 self.sheet_alpha = 5.0/4.0; 101 self.sheet_beta = 3.0/2.0; 102 self.omega = 1./2000.; 105 self.sheet_alpha = 5.0/4.0 106 self.sheet_beta = 3.0/2.0 107 self.omega = 1./2000. 108 self.creep_open_flag = 1 103 109 104 110 # Channel parameters … … 106 112 self.channel_conductivity = 5.e-2 #Dow's default, Table uses 0.1 107 113 self.channel_sheet_width = 2. #m 108 self.channel_alpha = 5.0/4.0 ;109 self.channel_beta = 3.0/2.0 ;114 self.channel_alpha = 5.0/4.0 115 self.channel_beta = 3.0/2.0 110 116 111 117 # Other … … 128 134 md = checkfield(md, 'fieldname', 'hydrology.cavity_spacing', 'numel', [1], '>', 0) 129 135 md = checkfield(md, 'fieldname', 'hydrology.bump_height', 'size', [md.mesh.numberofvertices], '>=', 0, 'np.nan', 1, 'Inf', 1) 130 md = checkfield(md,'fieldname','hydrology.omega', 'numel', [1], '>=', 0); 131 md = checkfield(md,'fieldname','hydrology.sheet_alpha', 'numel', [1], '>', 0); 132 md = checkfield(md,'fieldname','hydrology.sheet_beta', 'numel', [1], '>', 0); 136 md = checkfield(md,'fieldname','hydrology.omega', 'numel', [1], '>=', 0) 137 md = checkfield(md,'fieldname','hydrology.sheet_alpha', 'numel', [1], '>', 0) 138 md = checkfield(md,'fieldname','hydrology.sheet_beta', 'numel', [1], '>', 0) 139 md = checkfield(md,'fieldname','hydrology.rheology_B_base', 'size', [md.mesh.numberofvertices], '>=', 0, 'np.nan', 1, 'Inf', 1) 140 md = checkfield(md, 'fieldname', 'hydrology.isincludesheetthickness', 'numel', [1], 'values', [0, 1]) 141 md = checkfield(md, 'fieldname', 'hydrology.creep_open_flag', 'numel', [1], 'values', [0, 1]) 133 142 md = checkfield(md,'fieldname','hydrology.rheology_B_base', 'size', [md.mesh.numberofvertices], '>=', 0, 'np.nan', 1, 'Inf', 1) 134 143 … … 137 146 md = checkfield(md, 'fieldname', 'hydrology.channel_conductivity', 'size', [md.mesh.numberofvertices], '>', 0) 138 147 md = checkfield(md, 'fieldname', 'hydrology.channel_sheet_width', 'numel', [1], '>=', 0) 139 md = checkfield(md,'fieldname','hydrology.channel_alpha', 'numel', [1], '>', 0) ;140 md = checkfield(md,'fieldname','hydrology.channel_beta', 'numel', [1], '>', 0) ;148 md = checkfield(md,'fieldname','hydrology.channel_alpha', 'numel', [1], '>', 0) 149 md = checkfield(md,'fieldname','hydrology.channel_beta', 'numel', [1], '>', 0) 141 150 142 151 # Other … … 162 171 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'cavity_spacing', 'format', 'Double') 163 172 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'bump_height', 'format', 'DoubleMat', 'mattype', 1) 164 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','omega','format','Double'); 165 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','sheet_alpha','format','Double'); 166 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','sheet_beta','format','Double'); 173 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','omega','format','Double') 174 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','sheet_alpha','format','Double') 175 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','sheet_beta','format','Double') 176 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','rheology_B_base','format','DoubleMat', 'mattype', 1) 177 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'isincludesheetthickness', 'format', 'Boolean') 178 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'creep_open_flag', 'format', 'Boolean') 167 179 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','rheology_B_base','format','DoubleMat', 'mattype', 1); 168 180 … … 171 183 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'channel_conductivity', 'format', 'DoubleMat', 'mattype', 1) 172 184 WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'channel_sheet_width', 'format', 'Double') 173 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','channel_alpha','format','Double') ;174 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','channel_beta','format','Double') ;185 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','channel_alpha','format','Double') 186 WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','channel_beta','format','Double') 175 187 176 188 # Others
Note:
See TracChangeset
for help on using the changeset viewer.