Changeset 28234


Ignore:
Timestamp:
04/29/24 14:00:09 (11 months ago)
Author:
timhill2
Message:

GlaDS: options to include sheet thickness in hydraulic potential and turn off cavity creep opening

Location:
issm/trunk-jpl/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r28145 r28234  
    262262        HydrologyEnglacialVoidRatioEnum,
    263263        HydrologyIschannelsEnum,
     264        HydrologyIsIncludeSheetThicknessEnum,
     265        HydrologyCreepOpenFlagEnum,
    264266        HydrologyIsTransitionEnum,
    265267        HydrologyIsWaterPressureArmaEnum,
  • issm/trunk-jpl/src/m/classes/hydrologyglads.m

    r28050 r28234  
    1515                sheet_beta                = NaN;
    1616                rheology_B_base           = NaN;
     17                isincludesheetthickness   = 0;
     18                creep_open_flag                   = 1;
    1719
    1820                %Channels
     
    6870                        self.melt_flag=0;
    6971                        self.istransition = 0; %by default use GlaDS default turbulent code
     72                        self.creep_open_flag = 1;
    7073                end % }}}
    7174                function md = checkconsistency(self,md,solution,analyses) % {{{
     
    8588                        md = checkfield(md,'fieldname','hydrology.sheet_beta', 'numel', [1], '>', 0);
    8689                        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]);
    8791                        %Channels
    8892                        md = checkfield(md,'fieldname','hydrology.ischannels','numel',[1],'values',[0 1]);
     
    100104                        md = checkfield(md,'fieldname','hydrology.melt_flag','numel',[1],'values',[0 1 2]);
    101105                        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]);
    102107                        if self.melt_flag==1 || self.melt_flag==2
    103108                                md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
     
    115120                        fielddisplay(self,'omega','transition parameter (omega) []');
    116121                        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');
    117124                        disp(sprintf('      CHANNELS'));
    118125                        fielddisplay(self,'ischannels','Do we allow for channels? 1: yes, 0: no');
     
    146153                        WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','sheet_beta','format','Double');
    147154                        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');
    148157
    149158                        %Channels
  • issm/trunk-jpl/src/m/classes/hydrologyglads.py

    r28050 r28234  
    1919        self.cavity_spacing = 0.
    2020        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
    2528
    2629        # Channels
     
    2831        self.channel_conductivity = np.nan
    2932        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
    3235
    3336        # Other
     
    5255    def __repr__(self):  # {{{
    5356        s = '   GlaDS (hydrologyglads) solution parameters:\n'
    54         s = '\t--SHEET\n'
     57        s += '\t--SHEET\n'
    5558        s += '{}\n'.format(fielddisplay(self, 'pressure_melt_coefficient', 'Pressure melt coefficient (c_t) [K Pa^ - 1]'))
    5659        s += '{}\n'.format(fielddisplay(self, 'sheet_conductivity', 'sheet conductivity (k) [m^(7 / 4) kg^(- 1 / 2)]'))
     
    6164        s += '{}\n'.format(fielddisplay(self, 'omega', 'transition parameter (omega) []')) #TH
    6265        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'
    6469        s += '{}\n'.format(fielddisplay(self, 'ischannels', 'Do we allow for channels? 1: yes, 0: no'))
    6570        s += '{}\n'.format(fielddisplay(self, 'channel_conductivity', 'channel conductivity (k_c) [m^(3 / 2) kg^(- 1 / 2)]'))
     
    6772        s += '{}\n'.format(fielddisplay(self, 'channel_alpha', 'First channel-flow exponent (alpha_s) []')) #TH
    6873        s += '{}\n'.format(fielddisplay(self, 'channel_beta', 'Second channel-flow exponent (beta_s) []')) #TH
    69         s = '\t--OTHER\n'
     74        s += '\t--OTHER\n'
    7075        s += '{}\n'.format(fielddisplay(self, 'spcphi', 'Hydraulic potential Dirichlet constraints [Pa]'))
    7176        s += '{}\n'.format(fielddisplay(self, 'neumannflux', 'water flux applied along the model boundary (m^2 / s)'))
     
    7580        s += '{}\n'.format(fielddisplay(self, 'melt_flag', 'User specified basal melt? 0: no (default), 1: use md.basalforcings.groundedice_melting_rate'))
    7681        s += '{}\n'.format(fielddisplay(self, 'istransition','do we use standard [0, default] or transition model [1]'))
    77         return string
     82        return s
    7883    # }}}
    7984
     
    96101    def setdefaultparameters(self):  # {{{
    97102        # 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)
    99104        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
    103109
    104110        # Channel parameters
     
    106112        self.channel_conductivity = 5.e-2  #Dow's default, Table uses 0.1
    107113        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
    110116
    111117        # Other
     
    128134        md = checkfield(md, 'fieldname', 'hydrology.cavity_spacing', 'numel', [1], '>', 0)
    129135        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])
    133142        md = checkfield(md,'fieldname','hydrology.rheology_B_base', 'size', [md.mesh.numberofvertices], '>=', 0, 'np.nan', 1, 'Inf', 1)
    134143
     
    137146        md = checkfield(md, 'fieldname', 'hydrology.channel_conductivity', 'size', [md.mesh.numberofvertices], '>', 0)
    138147        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)
    141150
    142151        # Other
     
    162171        WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'cavity_spacing', 'format', 'Double')
    163172        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')
    167179        WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','rheology_B_base','format','DoubleMat', 'mattype', 1);
    168180
     
    171183        WriteData(fid, prefix, 'object', self, 'class', 'hydrology', 'fieldname', 'channel_conductivity', 'format', 'DoubleMat', 'mattype', 1)
    172184        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')
    175187
    176188        # Others
Note: See TracChangeset for help on using the changeset viewer.