source: issm/trunk-jpl/src/m/classes/rotational.py@ 26317

Last change on this file since 26317 was 26317, checked in by kakajanto, 4 years ago

BUG: Name change issues, SealevelRISE to SealevelCHANGE, and other python fixes

File size: 2.3 KB
Line 
1from checkfield import checkfield
2from fielddisplay import fielddisplay
3from WriteData import WriteData
4
5
6class rotational(object):
7 """ROTATIONAL class definition
8
9 Usage:
10 rotational = rotational()
11 """
12
13 def __init__(self, *args): #{{{
14 self.equatorialmoi = 0
15 self.polarmoi = 0
16 self.langularvelocity = 0
17
18 nargin = len(args)
19 if nargin == 0:
20 self.setdefaultparameters()
21 else:
22 raise Exception('constructor not supported')
23 #}}}
24
25 def __repr__(self): # {{{
26 s = ' rotational parameters:\n'
27 s += '{}\n'.format(fielddisplay(self, 'equatorialmoi', 'mean equatorial moment of inertia [kg m^2]'))
28 s += '{}\n'.format(fielddisplay(self, 'polarmoi', 'polar moment of inertia [kg m^2]'))
29 s += '{}\n'.format(fielddisplay(self, 'angularvelocity', 'mean rotational velocity of earth [per second]'))
30 return s
31 #}}}
32
33 def setdefaultparameters(self): # {{{
34 # Moment of inertia
35 self.equatorialmoi = 8.0077e37 # [kg m^2]
36 self.polarmoi = 8.0345e37 # [kg m^2]
37
38 # Mean rotational velocity of earth
39 self.angularvelocity = 7.2921e-5 # [s^-1]
40 return self
41 #}}}
42
43 def checkconsistency(self, md, solution, analyses): # {{{
44 if ('SealevelchangeAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isslc):
45 return md
46 md = checkfield(md, 'fieldname', 'solidearth.rotational.equatorialmoi', 'NaN', 1, 'Inf', 1)
47 md = checkfield(md, 'fieldname', 'solidearth.rotational.polarmoi', 'NaN', 1, 'Inf', 1)
48 md = checkfield(md, 'fieldname', 'solidearth.rotational.angularvelocity', 'NaN', 1, 'Inf', 1)
49 return md
50 #}}}
51
52 def defaultoutputs(self, md): #{{{
53 return []
54 #}}}
55
56 def marshall(self, prefix, md, fid): #{{{
57 WriteData(fid, prefix, 'object', self, 'fieldname', 'equatorialmoi', 'name', 'md.solidearth.rotational.equatorialmoi', 'format', 'Double')
58 WriteData(fid, prefix, 'object', self, 'fieldname', 'polarmoi', 'name', 'md.solidearth.rotational.polarmoi', 'format', 'Double')
59 WriteData(fid, prefix, 'object', self, 'fieldname', 'angularvelocity', 'name', 'md.solidearth.rotational.angularvelocity', 'format', 'Double')
60 #}}}
61
62 def extrude(self, md): #{{{
63 return self
64 #}}}
Note: See TracBrowser for help on using the repository browser.