source: issm/oecreview/Archive/23390-24306/ISSM-23657-23658.diff@ 24307

Last change on this file since 24307 was 24307, checked in by Mathieu Morlighem, 5 years ago

NEW: adding Archive/23390-24306

File size: 12.8 KB
  • ../trunk-jpl/src/m/classes/calvinglevermann.py

     
    2222        def __repr__(self): # {{{
    2323                string='   Calving Levermann parameters:'
    2424                string="%s\n%s"%(string,fielddisplay(self,'coeff','proportionality coefficient in Levermann model'))
    25                 string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))
    2625
    2726                return string
    2827                #}}}
    2928        def extrude(self,md): # {{{
    3029                self.coeff=project3d(md,'vector',self.coeff,'type','node')
    31                 self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')
    3230                return self
    3331        #}}}
    3432        def setdefaultparameters(self): # {{{
     
    4341                        return md
    4442
    4543                md = checkfield(md,'fieldname','calving.coeff','size',[md.mesh.numberofvertices],'>',0)
    46                 md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>=',0)
    4744                return md
    4845        # }}}
    4946        def marshall(self,prefix,md,fid):    # {{{
     
    5047                yts=md.constants.yts
    5148                WriteData(fid,prefix,'name','md.calving.law','data',3,'format','Integer');
    5249                WriteData(fid,prefix,'object',self,'fieldname','coeff','format','DoubleMat','mattype',1)
    53                 WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts)
    5450        # }}}
  • ../trunk-jpl/src/m/classes/frontalforcings.py

     
    1414        def __init__(self): # {{{
    1515
    1616                self.meltingrate   = float('NaN')
    17                 self.melt_parameterization   = 0.
    18                 self.basin = float('NaN')
    19                 self.numberofbasins = float('NaN')
    20                 self.subglacial_discharge = float('NaN')
    21                 self.thermalforcings = float('NaN')
    2217
    2318                #set defaults
    2419                self.setdefaultparameters()
     
    2621                #}}}
    2722        def __repr__(self): # {{{
    2823                string='   Frontalforcings parameters:'
    29                 string="%s\n%s"%(string,fielddisplay(self,'melt_parameterization','0: no, 1: Rignot melt parameterization (Rignot et al.,2016)'))
    30                 if self.melt_parameterization==0:
    31                     string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))
    32                 elif self.melt_parameterization==1:
    33                     string="%s\n%s"%(string,fielddisplay(self,'basin','basin ID for vertices'))
    34                     string="%s\n%s"%(string,fielddisplay(self,'numberofbasins','number of basins'))
    35                     string="%s\n%s"%(string,fielddisplay(self,'subglacial_discharge','sum of subglacial discharge for each basin [m/d]'))
    36                     string="%s\n%s"%(string,fielddisplay(self,'thermalforcing','thermal forcing [C]'))
     24                string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))
    3725
    3826                return string
    3927                #}}}
     
    4836        def checkconsistency(self,md,solution,analyses):    # {{{
    4937
    5038                #Early return
    51                 if (solution!='TransientSolution') or (not md.transient.ismovingfront):
    52                         return md
    53                        
    54                 md = checkfield(md,'fieldname','frontalforcings.melt_parameterization','numel',[1],'values',[0,1]);
    55                 if self.melt_parameterization==0:
    56                     md = checkfield(md,'fieldname','frontalforcings.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0);
    57                 elif self.melt_parameterization==1:
    58                     md = checkfield(md,'fieldname','frontalforcings.basin','>',0,'nan',1,'Inf',1);
    59                     md = checkfield(md,'fieldname','frontalforcings.numberofbasins','numel',[1]);
    60                     md = checkfield(md,'fieldname','frontalforcings.subglacial_discharge','>=',0,'nan',1,'Inf',1,'timeseries',1);
    61                     md = checkfield(md,'fieldname','frontalforcings.thermalforcing','nan',1,'Inf',1,'timeseries',1);
     39                if (solution!='TransientSolution') or (not md.transient.ismovingfront):
     40                    return md
    6241
     42                md = checkfield(md,'fieldname','frontalforcings.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0);
     43
    6344                return md
    6445        # }}}
    6546        def marshall(self,prefix,md,fid):    # {{{
    6647
    67                 yts=md.constants.yts
     48            yts=md.constants.yts
    6849
    69                 WriteData(fid,prefix,'object',self,'fieldname','melt_parameterization','format','Integer');
    70                 if self.melt_parameterization==0:
    71                     WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
    72                 elif self.melt_parameterization==1:
    73                     WriteData(fid,prefix,'object',self,'fieldname','basin','format','DoubleMat','mattype',1);
    74                     WriteData(fid,prefix,'object',self,'fieldname','numberofbasins','format','Integer');
    75                     WriteData(fid,prefix,'object',self,'fieldname','subglacial_discharge','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
    76                     WriteData(fid,prefix,'object',self,'fieldname','thermalforcing','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
     50            WriteData(fid,prefix,'name','md.frontalforcings.parameterization','data',1,'format','Integer')
     51            WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
    7752
    7853        # }}}
  • ../trunk-jpl/src/m/classes/calvingminthickness.py

     
    2222        def __repr__(self): # {{{
    2323                string='   Calving Minimum thickness:'
    2424                string="%s\n%s"%(string,fielddisplay(self,'min_thickness','minimum thickness below which no ice is allowed'))
    25                 string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))
    2625                return string
    2726        #}}}
    2827        def extrude(self,md): # {{{
    29                 self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')
    3028                return self
    3129        #}}}
    3230        def setdefaultparameters(self): # {{{
     
    4139                        return
    4240
    4341                md = checkfield(md,'fieldname','calving.min_thickness','>',0,'NaN',1,'Inf',1)
    44                 md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>=',0)
    4542                return md
    4643        # }}}
    4744        def marshall(self,prefix,md,fid):    # {{{
     
    4845                yts=md.constants.yts
    4946                WriteData(fid,prefix,'name','md.calving.law','data',4,'format','Integer')
    5047                WriteData(fid,prefix,'object',self,'fieldname','min_thickness','format','Double')
    51                 WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
    5248        # }}}
  • ../trunk-jpl/src/m/classes/frontalforcingsrignot.py

     
     1from fielddisplay import fielddisplay
     2from project3d import project3d
     3from checkfield import checkfield
     4from WriteData import WriteData
     5
     6class frontalforcingsrignot(object):
     7        """
     8        FRONTAL FORCINGS Rignot class definition
     9
     10           Usage:
     11              frontalforcingsrignot=frontalforcingsrignot();
     12        """
     13
     14        def __init__(self): # {{{
     15
     16                self.basin= float('NaN');
     17                self.numberofbasins = 0.;
     18                self.subglacial_discharge = float('NaN');
     19                self.thermalforcing = float('NaN');
     20
     21                #set defaults
     22                self.setdefaultparameters()
     23
     24                #}}}
     25        def __repr__(self): # {{{
     26                string='   Frontalforcings parameters:'
     27                string="%s\n%s"%(string,fielddisplay(self,'basin','basin ID for vertices'))
     28                string="%s\n%s"%(string,fielddisplay(self,'numberofbasins','number of basins'))
     29                string="%s\n%s"%(string,fielddisplay(self,'subglacial_discharge','sum of subglacial discharge for each basin [m/d]'))
     30                string="%s\n%s"%(string,fielddisplay(self,'thermalforcing','thermal forcing [C]'))
     31
     32                return string
     33                #}}}
     34        def extrude(self,md): # {{{
     35                return self
     36        #}}}
     37        def setdefaultparameters(self): # {{{
     38
     39                return self
     40        #}}}
     41        def checkconsistency(self,md,solution,analyses):    # {{{
     42
     43                #Early return
     44                if (solution!='TransientSolution') or (not md.transient.ismovingfront):
     45                    return md
     46
     47                md = checkfield(md,'fieldname','frontalforcings.basin','>',0,'nan',1,'Inf',1);
     48                md = checkfield(md,'fieldname','frontalforcings.numberofbasins','numel',[1]);
     49                md = checkfield(md,'fieldname','frontalforcings.subglacial_discharge','>=',0,'nan',1,'Inf',1,'timeseries',1);
     50                md = checkfield(md,'fieldname','frontalforcings.thermalforcing','nan',1,'Inf',1,'timeseries',1);
     51
     52                return md
     53        # }}}
     54        def marshall(self,prefix,md,fid):    # {{{
     55
     56            yts=md.constants.yts
     57
     58            WriteData(fid,prefix,'name','md.frontalforcings.parameterization','data',2,'format','Integer')
     59            WriteData(fid,prefix,'object',self,'fieldname','basin','format','DoubleMat','mattype',1);
     60            WriteData(fid,prefix,'object',self,'fieldname','numberofbasins','format','Integer');
     61            WriteData(fid,prefix,'object',self,'fieldname','subglacial_discharge','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
     62            WriteData(fid,prefix,'object',self,'fieldname','thermalforcing','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
     63
     64        # }}}
  • ../trunk-jpl/src/m/classes/calving.py

     
    2323        def __repr__(self): # {{{
    2424                string='   Calving parameters:'
    2525                string="%s\n%s"%(string,fielddisplay(self,'calvingrate','calving rate at given location [m/a]'))
    26                 string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))
    2726
    2827                return string
    2928                #}}}
    3029        def extrude(self,md): # {{{
    3130                self.calvingrate=project3d(md,'vector',self.calvingrate,'type','node')
    32                 self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')
    3331                return self
    3432        #}}}
    3533        def setdefaultparameters(self): # {{{
     
    4341                        return md
    4442
    4543                md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);
    46                 md = checkfield(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);
    4744
    4845                return md
    4946        # }}}
     
    5350
    5451                WriteData(fid,prefix,'name','md.calving.law','data',1,'format','Integer');
    5552                WriteData(fid,prefix,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts)
    56                 WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts)
    5753        # }}}
  • ../trunk-jpl/src/m/classes/calvingvonmises.py

     
    2626                string="%s\n%s"%(string,fielddisplay(self,'stress_threshold_groundedice','sigma_max applied to grounded ice only [Pa]'))
    2727                string="%s\n%s"%(string,fielddisplay(self,'stress_threshold_floatingice','sigma_max applied to floating ice only [Pa]'))
    2828
    29                 string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))
    3029                return string
    3130        #}}}
    3231        def extrude(self,md): # {{{
    33                 self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')
    3432                return self
    3533        #}}}
    3634        def setdefaultparameters(self): # {{{
     
    4644
    4745                md = checkfield(md,'fieldname','calving.stress_threshold_groundedice','>',0,'nan',1,'Inf',1)
    4846                md = checkfield(md,'fieldname','calving.stress_threshold_floatingice','>',0,'nan',1,'Inf',1)
    49                 md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0)
    5047
    5148                return md
    5249        # }}}
     
    5653                WriteData(fid,prefix,'name','md.calving.law','data',2,'format','Integer')
    5754                WriteData(fid,prefix,'object',self,'fieldname','stress_threshold_groundedice','format','DoubleMat','mattype',1)
    5855                WriteData(fid,prefix,'object',self,'fieldname','stress_threshold_floatingice','format','DoubleMat','mattype',1)
    59                 WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts)
    6056        # }}}
Note: See TracBrowser for help on using the repository browser.