Changeset 24313 for issm/trunk/src/m/classes/calvinglevermann.py
- Timestamp:
- 11/01/19 12:01:57 (5 years ago)
- Location:
- issm/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk
-
issm/trunk/src
- Property svn:mergeinfo changed
-
issm/trunk/src/m/classes/calvinglevermann.py
r21341 r24313 2 2 from checkfield import checkfield 3 3 from WriteData import WriteData 4 from project3d import project3d 5 4 6 5 7 class calvinglevermann(object): 6 7 8 """ 9 CALVINGLEVERMANN class definition 8 10 9 10 calvinglevermann=calvinglevermann(); 11 11 Usage: 12 calvinglevermann = calvinglevermann() 13 """ 12 14 13 def __init__(self):# {{{15 def __init__(self): # {{{ 14 16 15 self.coeff = float('NaN') 16 self.meltingrate = float('NaN') 17 self.coeff = float('NaN') 17 18 18 19 19 #set defaults 20 self.setdefaultparameters() 20 21 21 #}}} 22 def __repr__(self): # {{{ 23 string=' Calving Levermann parameters:' 24 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]')) 22 #}}} 26 23 27 return string 28 #}}} 29 def extrude(self,md): # {{{ 30 self.coeff=project3d(md,'vector',self.coeff,'type','node') 31 self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node') 32 return self 33 #}}} 34 def setdefaultparameters(self): # {{{ 24 def __repr__(self): # {{{ 25 string = ' Calving Levermann parameters:' 26 string = "%s\n%s" % (string, fielddisplay(self, 'coeff', 'proportionality coefficient in Levermann model')) 35 27 36 #Proportionality coefficient in Levermann model 37 self.coeff=2e13; 38 #}}} 39 def checkconsistency(self,md,solution,analyses): # {{{ 28 return string 29 #}}} 40 30 41 #Early return 42 if (solution!='TransientSolution') or (not md.transient.ismovingfront): 43 return md 31 def extrude(self, md): # {{{ 32 self.coeff = project3d(md, 'vector', self.coeff, 'type', 'node') 33 return self 34 #}}} 44 35 45 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) 47 return md 48 # }}} 49 def marshall(self,prefix,md,fid): # {{{ 50 yts=md.constants.yts 51 WriteData(fid,prefix,'name','md.calving.law','data',3,'format','Integer'); 52 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) 54 # }}} 36 def setdefaultparameters(self): # {{{ 37 #Proportionality coefficient in Levermann model 38 self.coeff = 2e13 39 #}}} 40 41 def checkconsistency(self, md, solution, analyses): # {{{ 42 #Early return 43 if (solution != 'TransientSolution') or (not md.transient.ismovingfront): 44 return md 45 46 md = checkfield(md, 'fieldname', 'calving.coeff', 'size', [md.mesh.numberofvertices], '>', 0) 47 return md 48 # }}} 49 50 def marshall(self, prefix, md, fid): # {{{ 51 WriteData(fid, prefix, 'name', 'md.calving.law', 'data', 3, 'format', 'Integer') 52 WriteData(fid, prefix, 'object', self, 'fieldname', 'coeff', 'format', 'DoubleMat', 'mattype', 1) 53 # }}}
Note:
See TracChangeset
for help on using the changeset viewer.