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

Last change on this file since 25836 was 25836, checked in by Mathieu Morlighem, 4 years ago

merged trunk-jpl and trunk for revision 25834

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()
19
20 #}}}
21
22 def __repr__(self): # {{{
23 s = ' Calving parameters:'
24 s += '{}\n'.format(fielddisplay(self, 'calvingrate', 'calving rate at given location [m / a]'))
25 return s
26 #}}}
27
28 def extrude(self, md): # {{{
29 self.calvingrate = project3d(md, 'vector', self.calvingrate, 'type', 'node')
30 return self
31 #}}}
32
33 def setdefaultparameters(self): # {{{
34 return self
35 #}}}
36
37 def checkconsistency(self, md, solution, analyses): # {{{
38 #Early return
39 if solution != 'TransientSolution' or not md.transient.ismovingfront:
40 return md
41
42 md = checkfield(md, 'fieldname', 'calving.calvingrate', '>=', 0, 'timeseries', 1, 'NaN', 1, 'Inf', 1)
43
44 return md
45 # }}}
46
47 def marshall(self, prefix, md, fid): # {{{
48 yts = md.constants.yts
49
50 WriteData(fid, prefix, 'name', 'md.calving.law', 'data', 1, 'format', 'Integer')
51 WriteData(fid, prefix, 'object', self, 'fieldname', 'calvingrate', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts, 'scale', 1. / yts)
52 # }}}
Note: See TracBrowser for help on using the repository browser.