1 | from checkfield import checkfield
|
---|
2 | from fielddisplay import fielddisplay
|
---|
3 | from WriteData import WriteData
|
---|
4 |
|
---|
5 |
|
---|
6 | class 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 | #}}}
|
---|