Changeset 24686 for issm/trunk/src/m/classes/linearbasalforcings.py
- Timestamp:
- 04/01/20 21:54:40 (5 years ago)
- Location:
- issm/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk
- Property svn:mergeinfo changed
/issm/trunk-jpl merged: 24314-24492,24494-24683
- Property svn:mergeinfo changed
-
issm/trunk/src
- Property svn:mergeinfo changed
-
issm/trunk/src/m/classes/linearbasalforcings.py
r24313 r24686 17 17 if not len(args): 18 18 print('empty init') 19 self.groundedice_melting_rate = float('NaN')20 19 self.deepwater_melting_rate = 0. 21 20 self.deepwater_elevation = 0. 22 21 self.upperwater_melting_rate = 0. 23 22 self.upperwater_elevation = 0. 23 self.groundedice_melting_rate = float('NaN') 24 self.perturbation_melting_rate = float('NaN') 24 25 self.geothermalflux = float('NaN') 25 26 … … 30 31 inv = args[0] 31 32 self.groundedice_melting_rate = inv.groundedice_melting_rate 33 self.perturbation_melting_rate = float('NaN') 32 34 self.geothermalflux = inv.geothermalflux 33 35 self.deepwater_melting_rate = 0. … … 41 43 raise Exception('constructor not supported') 42 44 #}}} 43 44 45 def __repr__(self): # {{{ 45 46 string = " linear basal forcings parameters:" … … 49 50 string = "%s\n%s" % (string, fielddisplay(self, "upperwater_elevation", "elevation of ocean upper water [m]")) 50 51 string = "%s\n%s" % (string, fielddisplay(self, "groundedice_melting_rate", "basal melting rate (positive if melting) [m/yr]")) 52 string = "%s\n%s" % (string, fielddisplay(self, "perturbation_melting_rate", "perturbation applied to computed melting rate (positive if melting) [m/yr]")) 51 53 string = "%s\n%s" % (string, fielddisplay(self, "geothermalflux", "geothermal heat flux [W/m^2]")) 52 54 return string 53 55 #}}} 54 55 56 def initialize(self, md): # {{{ 56 57 if np.all(np.isnan(self.groundedice_melting_rate)): … … 59 60 return self 60 61 #}}} 61 62 62 def setdefaultparameters(self): # {{{ 63 63 self.deepwater_melting_rate = 50.0 … … 68 68 return self 69 69 #}}} 70 def checkconsistency(self, md, solution, analyses): # {{{ 70 71 71 def checkconsistency(self, md, solution, analyses): # {{{ 72 if not np.all(np.isnan(self.perturbation_melting_rate)): 73 md = checkfield(md, 'fieldname', 'basalforcings.perturbation_melting_rate', 'NaN', 1, 'Inf', 1, 'timeseries', 1) 74 72 75 if 'MasstransportAnalysis' in analyses and not (solution == 'TransientSolution' and not md.transient.ismasstransport): 73 76 md = checkfield(md, 'fieldname', 'basalforcings.groundedice_melting_rate', 'NaN', 1, 'Inf', 1, 'timeseries', 1) … … 94 97 return md 95 98 # }}} 96 97 99 def marshall(self, prefix, md, fid): # {{{ 98 100 yts = md.constants.yts 99 101 100 102 WriteData(fid, prefix, 'name', 'md.basalforcings.model', 'data', 2, 'format', 'Integer') 103 WriteData(fid, prefix, 'object', self, 'fieldname', 'perturbation_melting_rate', 'name', 'md.basalforcings.perturbation_melting_rate', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 101 104 WriteData(fid, prefix, 'object', self, 'fieldname', 'groundedice_melting_rate', 'name', 'md.basalforcings.groundedice_melting_rate', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts) 102 105 WriteData(fid, prefix, 'object', self, 'fieldname', 'geothermalflux', 'name', 'md.basalforcings.geothermalflux', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts)
Note:
See TracChangeset
for help on using the changeset viewer.