source: issm/trunk/src/m/classes/constants.m@ 26744

Last change on this file since 26744 was 26744, checked in by Mathieu Morlighem, 3 years ago

merged trunk-jpl and trunk for revision 26742

File size: 2.7 KB
Line 
1%CONSTANTS class definition
2%
3% Usage:
4% constants=constants();
5
6classdef constants
7 properties (SetAccess=public)
8 g = 0.;
9 omega = 0.;
10 yts = 0.;
11 referencetemperature = 0.;
12 gravitational_constant = 0.;
13 end
14 methods
15 function self = constants(varargin) % {{{
16 switch nargin
17 case 0
18 self=setdefaultparameters(self);
19 otherwise
20 error('constructor not supported');
21 end
22 end % }}}
23 function self = setdefaultparameters(self) % {{{
24
25 %acceleration due to gravity (m/s^2)
26 self.g=9.81;
27
28 %Earth's rotation speed
29 self.omega = 7.292*1e-5;
30
31 %converstion from year to seconds
32 self.yts=365.*24.*3600.;
33
34 %the reference temperature for enthalpy model (cf Aschwanden)
35 self.referencetemperature=223.15;
36
37 %gravitational constant:
38 self.gravitational_constant = 6.67259e-11;
39
40 end % }}}
41 function md = checkconsistency(self,md,solution,analyses) % {{{
42
43 md = checkfield(md,'fieldname','constants.g','>=',0,'size',[1 1]); %We allow 0 for validation tests
44 md = checkfield(md,'fieldname','constants.omega','>=',0,'size',[1 1]);
45 md = checkfield(md,'fieldname','constants.yts','>',0,'size',[1 1]);
46 md = checkfield(md,'fieldname','constants.referencetemperature','size',[1 1]);
47 md = checkfield(md,'fieldname','constants.gravitational_constant','size',[1 1]);
48
49 end % }}}
50 function disp(self) % {{{
51 disp(sprintf(' constants parameters:'));
52
53 fielddisplay(self,'g','gravitational acceleration [m/s^2]');
54 fielddisplay(self,'omega','angular velocity of Earth [rad/s]');
55 fielddisplay(self,'yts','number of seconds in a year [s/yr]');
56 fielddisplay(self,'referencetemperature','reference temperature used in the enthalpy model [K]');
57 fielddisplay(self,'gravitational_constant','Newtonian constant of gravitation [m^3/kg/s^2]');
58
59 end % }}}
60 function marshall(self,prefix,md,fid) % {{{
61 WriteData(fid,prefix,'object',self,'fieldname','g','format','Double');
62 WriteData(fid,prefix,'object',self,'fieldname','yts','format','Double');
63 WriteData(fid,prefix,'object',self,'fieldname','referencetemperature','format','Double');
64 WriteData(fid,prefix,'object',self,'fieldname','gravitational_constant','format','Double');
65 end % }}}
66 function savemodeljs(self,fid,modelname) % {{{
67
68 writejsdouble(fid,[modelname '.constants.g'],self.g);
69 writejsdouble(fid,[modelname '.constants.omega'],self.omega);
70 writejsdouble(fid,[modelname '.constants.yts'],self.yts);
71 writejsdouble(fid,[modelname '.constants.referencetemperature'],self.referencetemperature);
72 writejsdouble(fid,[modelname '.constants.gravitational_constant'],self.gravitational_constant);
73
74 end % }}}
75 end
76end
Note: See TracBrowser for help on using the repository browser.