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