Changeset 26493


Ignore:
Timestamp:
10/20/21 10:43:39 (3 years ago)
Author:
jdquinn
Message:

CHG: MATLAB -> Python; clean up

Location:
issm/trunk-jpl/src/m/classes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/frontalforcingsrignot.m

    r26487 r26493  
    4646                        md = checkfield(md,'fieldname','frontalforcings.num_basins','numel',1,'NaN',1,'Inf',1,'>',0);
    4747                        md = checkfield(md,'fieldname','frontalforcings.basin_id','Inf',1,'>=',0,'<=',md.frontalforcings.num_basins,'size',[md.mesh.numberofelements 1]);
    48                         md = checkfield(md,'fieldname','frontalforcings.subglacial_discharge','>=',0,'nan',1,'Inf',1,'timeseries',1);
    49                         md = checkfield(md,'fieldname','frontalforcings.thermalforcing','nan',1,'Inf',1,'timeseries',1);
     48                        md = checkfield(md,'fieldname','frontalforcings.subglacial_discharge','>=',0,'NaN',1,'Inf',1,'timeseries',1);
     49                        md = checkfield(md,'fieldname','frontalforcings.thermalforcing','NaN',1,'Inf',1,'timeseries',1);
    5050
    5151                end % }}}
  • issm/trunk-jpl/src/m/classes/frontalforcingsrignot.py

    r24213 r26493  
     1import numpy as np
     2
    13from checkfield import checkfield
    24from WriteData import WriteData
     
    57
    68class frontalforcingsrignot(object):
    7     """
    8     FRONTAL FORCINGS Rignot class definition
     9    """FRONTAL FORCINGS Rignot class definition
    910
    10        Usage:
    11           frontalforcingsrignot = frontalforcingsrignot()
     11    Usage:
     12        frontalforcingsrignot = frontalforcingsrignot()
    1213    """
    1314
    14     def __init__(self):  # {{{
    15         self.basin = float('NaN')
    16         self.numberofbasins = 0.
    17         self.subglacial_discharge = float('NaN')
    18         self.thermalforcing = float('NaN')
     15    def __init__(self, *args):  # {{{
     16        self.basin_id = np.nan
     17        self.num_basins = 0
     18        self.subglacial_discharge = np.nan
     19        self.thermalforcing = np.nan
    1920
    20     #set defaults
    21         self.setdefaultparameters()
     21        if len(args) == 0:
     22            self.setdefaultparameters()
     23        else:
     24            error('constructor not supported')
    2225
    2326    #}}}
    2427
    2528    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]'))
     29        s = '   Frontalforcings parameters:\n'
     30        s += '{}\n'.format(fielddisplay(self, 'basin_id', 'basin ID for elements'))
     31        s += '{}\n'.format(fielddisplay(self, 'num_basins', 'number of basins'))
     32        s += '{}\n'.format(fielddisplay(self, 'subglacial_discharge', 'sum of subglacial discharge for each basin [m/d]'))
     33        s += '{}\n'.format(fielddisplay(self, 'thermalforcing', 'thermal forcing [∘C]'))
     34        return s
     35    #}}}
    3136
    32         return string
     37    def setdefaultparameters(self): # {{{
     38        self.basin_id = np.nan
     39        self.num_basins = 0
     40        self.subglacial_discharge = np.nan
     41        self.thermalforcing = np.nan
     42
     43        return self
    3344    #}}}
    3445
     
    3748    #}}}
    3849
    39     def setdefaultparameters(self):  # {{{
    40 
    41         return self
    42     #}}}
    43 
    4450    def checkconsistency(self, md, solution, analyses):  # {{{
    45         #Early return
     51        # Early return
    4652        if (solution != 'TransientSolution') or (not md.transient.ismovingfront):
    4753            return md
    4854
    49         md = checkfield(md, 'fieldname', 'frontalforcings.basin', '>', 0, 'nan', 1, 'Inf', 1)
    50         md = checkfield(md, 'fieldname', 'frontalforcings.numberofbasins', 'numel', [1])
    51         md = checkfield(md, 'fieldname', 'frontalforcings.subglacial_discharge', '>=', 0, 'nan', 1, 'Inf', 1, 'timeseries', 1)
    52         md = checkfield(md, 'fieldname', 'frontalforcings.thermalforcing', 'nan', 1, 'Inf', 1, 'timeseries', 1)
     55        md = checkfield(md, 'fieldname', 'frontalforcings.num_basins', 'numel', [1], 'NaN', 1, 'Inf', 1, '>', 0)
     56        md = checkfield(md, 'fieldname', 'frontalforcings.basin_id', 'Inf', 1, '>=', 0, '<=', md.frontalforcings.num_basins, 'size', [md.mesh.numberofelements])
     57        md = checkfield(md, 'fieldname', 'frontalforcings.subglacial_discharge', '>=', 0, 'NaN', 1, 'Inf', 1, 'timeseries', 1)
     58        md = checkfield(md, 'fieldname', 'frontalforcings.thermalforcing', 'NaN', 1, 'Inf', 1, 'timeseries', 1)
    5359        return md
    5460    # }}}
     
    5662    def marshall(self, prefix, md, fid):  # {{{
    5763        WriteData(fid, prefix, 'name', 'md.frontalforcings.parameterization', 'data', 2, 'format', 'Integer')
    58         WriteData(fid, prefix, 'object', self, 'fieldname', 'basin', 'format', 'DoubleMat', 'mattype', 1)
    59         WriteData(fid, prefix, 'object', self, 'fieldname', 'numberofbasins', 'format', 'Integer')
    60         WriteData(fid, prefix, 'object', self, 'fieldname', 'subglacial_discharge', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1)
    61         WriteData(fid, prefix, 'object', self, 'fieldname', 'thermalforcing', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1)
    62 
     64        WriteData(fid, prefix, 'object', self, 'fieldname', 'basin_id', 'data', self.basin_id, 'name', 'md.frontalforcings.basin_id', 'format', 'IntMat', 'mattype', 2) # 0-indexed
     65        WriteData(fid, prefix, 'object', self, 'fieldname', 'num_basins', 'format', 'Integer')
     66        WriteData(fid, prefix, 'object', self, 'fieldname', 'subglacial_discharge', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts)
     67        WriteData(fid, prefix, 'object', self, 'fieldname', 'thermalforcing', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', md.constants.yts)
    6368    # }}}
Note: See TracChangeset for help on using the changeset viewer.