Changeset 26493
- Timestamp:
- 10/20/21 10:43:39 (3 years ago)
- Location:
- issm/trunk-jpl/src/m/classes
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/frontalforcingsrignot.m
r26487 r26493 46 46 md = checkfield(md,'fieldname','frontalforcings.num_basins','numel',1,'NaN',1,'Inf',1,'>',0); 47 47 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); 50 50 51 51 end % }}} -
issm/trunk-jpl/src/m/classes/frontalforcingsrignot.py
r24213 r26493 1 import numpy as np 2 1 3 from checkfield import checkfield 2 4 from WriteData import WriteData … … 5 7 6 8 class frontalforcingsrignot(object): 7 """ 8 FRONTAL FORCINGS Rignot class definition 9 """FRONTAL FORCINGS Rignot class definition 9 10 10 11 11 Usage: 12 frontalforcingsrignot = frontalforcingsrignot() 12 13 """ 13 14 14 def __init__(self ): # {{{15 self.basin = float('NaN')16 self.num berofbasins = 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 19 20 20 #set defaults 21 self.setdefaultparameters() 21 if len(args) == 0: 22 self.setdefaultparameters() 23 else: 24 error('constructor not supported') 22 25 23 26 #}}} 24 27 25 28 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 #}}} 31 36 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 33 44 #}}} 34 45 … … 37 48 #}}} 38 49 39 def setdefaultparameters(self): # {{{40 41 return self42 #}}}43 44 50 def checkconsistency(self, md, solution, analyses): # {{{ 45 # Early return51 # Early return 46 52 if (solution != 'TransientSolution') or (not md.transient.ismovingfront): 47 53 return md 48 54 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) 53 59 return md 54 60 # }}} … … 56 62 def marshall(self, prefix, md, fid): # {{{ 57 63 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) 63 68 # }}}
Note:
See TracChangeset
for help on using the changeset viewer.