source: issm/trunk/src/m/classes/calving.py@ 21341

Last change on this file since 21341 was 21341, checked in by Mathieu Morlighem, 8 years ago

merged trunk-jpl and trunk for revision 21337

File size: 1.8 KB
RevLine 
[18757]1from fielddisplay import fielddisplay
[19048]2from project3d import project3d
[18757]3from checkfield import checkfield
4from WriteData import WriteData
5
6class calving(object):
7 """
8 CALVING class definition
9
10 Usage:
11 calving=calving();
12 """
13
14 def __init__(self): # {{{
15
[19024]16 self.calvingrate = float('NaN')
17 self.meltingrate = float('NaN')
18
[18757]19 #set defaults
20 self.setdefaultparameters()
21
22 #}}}
23 def __repr__(self): # {{{
24 string=' Calving parameters:'
25 string="%s\n%s"%(string,fielddisplay(self,'calvingrate','calving rate at given location [m/a]'))
[18816]26 string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))
[18757]27
28 return string
29 #}}}
[19048]30 def extrude(self,md): # {{{
31 self.calvingrate=project3d(md,'vector',self.calvingrate,'type','node')
32 self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')
33 return self
34 #}}}
[18757]35 def setdefaultparameters(self): # {{{
36
37 return self
38 #}}}
39 def checkconsistency(self,md,solution,analyses): # {{{
40
41 #Early return
[21341]42 if (solution!='TransientSolution') or (not md.transient.ismovingfront):
[18757]43 return md
44
[20500]45 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);
[18955]47
[18757]48 return md
49 # }}}
[21341]50 def marshall(self,prefix,md,fid): # {{{
[18757]51
[21341]52 yts=md.constants.yts
[18757]53
[21341]54 WriteData(fid,prefix,'name','md.calving.law','data',1,'format','Integer');
55 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)
[18757]57 # }}}
Note: See TracBrowser for help on using the repository browser.