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

Last change on this file since 26744 was 26744, checked in by Mathieu Morlighem, 3 years ago

merged trunk-jpl and trunk for revision 26742

File size: 1.5 KB
Line 
1import numpy as np
2
3from checkfield import checkfield
4from fielddisplay import fielddisplay
5from project3d import project3d
6from WriteData import WriteData
7
8
9class calving(object):
10 """CALVING class definition
11
12 Usage:
13 calving = calving()
14 """
15
16 def __init__(self): # {{{
17 self.calvingrate = np.nan
18 #self.setdefaultparameters() # Uncomment if/when setdefaultparameters is used
19 #}}}
20
21 def __repr__(self): # {{{
22 s = ' Calving parameters:'
23 s += '{}\n'.format(fielddisplay(self, 'calvingrate', 'calving rate at given location [m/a]'))
24 return s
25 #}}}
26
27 def setdefaultparameters(self): # {{{
28 return self
29 #}}}
30
31 def extrude(self, md): # {{{
32 self.calvingrate = project3d(md, 'vector', self.calvingrate, 'type', 'node')
33 return self
34 #}}}
35
36 def checkconsistency(self, md, solution, analyses): # {{{
37 #Early return
38 if solution != 'TransientSolution' or not md.transient.ismovingfront:
39 return md
40
41 md = checkfield(md, 'fieldname', 'calving.calvingrate', '>=', 0, 'timeseries', 1, 'NaN', 1, 'Inf', 1)
42
43 return md
44 # }}}
45
46 def marshall(self, prefix, md, fid): # {{{
47 yts = md.constants.yts
48
49 WriteData(fid, prefix, 'name', 'md.calving.law', 'data', 1, 'format', 'Integer')
50 WriteData(fid, prefix, 'object', self, 'fieldname', 'calvingrate', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts, 'scale', 1. / yts)
51 # }}}
Note: See TracBrowser for help on using the repository browser.