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
RevLine 
[25125]1from checkfield import checkfield
2from fielddisplay import fielddisplay
3from WriteData import WriteData
4
5
6class rotational(object):
[25688]7 """ROTATIONAL class definition
[25125]8
[25688]9 Usage:
10 rotational = rotational()
11 """
[25125]12
[26178]13 def __init__(self, *args): #{{{
14 self.equatorialmoi = 0
15 self.polarmoi = 0
16 self.langularvelocity = 0
[25125]17
18 nargin = len(args)
19 if nargin == 0:
20 self.setdefaultparameters()
21 else:
22 raise Exception('constructor not supported')
23 #}}}
24
[26178]25 def __repr__(self): # {{{
[25125]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
[26178]33 def setdefaultparameters(self): # {{{
[25688]34 # Moment of inertia
[26178]35 self.equatorialmoi = 8.0077e37 # [kg m^2]
36 self.polarmoi = 8.0345e37 # [kg m^2]
[25125]37
[25688]38 # Mean rotational velocity of earth
[26178]39 self.angularvelocity = 7.2921e-5 # [s^-1]
[25688]40 return self
[25125]41 #}}}
42
[26178]43 def checkconsistency(self, md, solution, analyses): # {{{
[26317]44 if ('SealevelchangeAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isslc):
[25125]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
[26178]52 def defaultoutputs(self, md): #{{{
[25125]53 return []
54 #}}}
55
[26178]56 def marshall(self, prefix, md, fid): #{{{
[25125]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
[26178]62 def extrude(self, md): #{{{
[25125]63 return self
64 #}}}
Note: See TracBrowser for help on using the repository browser.