Changeset 25144
- Timestamp:
- 06/24/20 19:13:48 (5 years ago)
- Location:
- issm/trunk-jpl/src/m/classes
- Files:
-
- 1 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk-jpl/src/m/classes/lovenumbers.m ¶
r25143 r25144 1 %LOVE numbers class definition1 %LOVENUMBERS numbers class definition 2 2 % 3 3 % Usage: 4 % love =love() %will setup love numbers deg 1001 by default5 % love =love('maxdeg',10001); %supply numbers of degrees required (here, 10001)4 % lovenumbers=lovenumbers() %will setup love numbers deg 1001 by default 5 % lovenumbers=lovenumbers('maxdeg',10001); %supply numbers of degrees required (here, 10001) 6 6 7 classdef love 7 classdef lovenumbers 8 8 properties (SetAccess=public) 9 9 … … 21 21 end 22 22 methods 23 function self = love (varargin) % {{{23 function self = lovenumbers(varargin) % {{{ 24 24 options=pairoptions(varargin{:}); 25 25 maxdeg=getfieldvalue(options,'maxdeg',1000); … … 29 29 30 30 %initialize love numbers: 31 self.h= love_numbers('type','loadingverticaldisplacement','referenceframe','CM','maxdeg',maxdeg);32 self.k= love_numbers('type','loadinggravitationalpotential','referenceframe','CM','maxdeg',maxdeg);33 self.l= love_numbers('type','loadinghorizontaldisplacement','referenceframe','CM','maxdeg',maxdeg);34 self.th= love_numbers('type','tidalverticaldisplacement','referenceframe','CM','maxdeg',maxdeg);35 self.tk= love_numbers('type','tidalgravitationalpotential','referenceframe','CM','maxdeg',maxdeg);36 self.tl= love_numbers('type','tidalhorizontaldisplacement','referenceframe','CM','maxdeg',maxdeg);31 self.h=getlovenumbers('type','loadingverticaldisplacement','referenceframe','CM','maxdeg',maxdeg); 32 self.k=getlovenumbers('type','loadinggravitationalpotential','referenceframe','CM','maxdeg',maxdeg); 33 self.l=getlovenumbers('type','loadinghorizontaldisplacement','referenceframe','CM','maxdeg',maxdeg); 34 self.th=getlovenumbers('type','tidalverticaldisplacement','referenceframe','CM','maxdeg',maxdeg); 35 self.tk=getlovenumbers('type','tidalgravitationalpotential','referenceframe','CM','maxdeg',maxdeg); 36 self.tl=getlovenumbers('type','tidalhorizontaldisplacement','referenceframe','CM','maxdeg',maxdeg); 37 37 38 38 %secular fluid love number: … … 47 47 end 48 48 49 md = checkfield(md,'fieldname','solidearth.love .h','NaN',1,'Inf',1);50 md = checkfield(md,'fieldname','solidearth.love .k','NaN',1,'Inf',1);51 md = checkfield(md,'fieldname','solidearth.love .l','NaN',1,'Inf',1);49 md = checkfield(md,'fieldname','solidearth.lovenumbers.h','NaN',1,'Inf',1); 50 md = checkfield(md,'fieldname','solidearth.lovenumbers.k','NaN',1,'Inf',1); 51 md = checkfield(md,'fieldname','solidearth.lovenumbers.l','NaN',1,'Inf',1); 52 52 53 53 54 md = checkfield(md,'fieldname','solidearth.love .th','NaN',1,'Inf',1);55 md = checkfield(md,'fieldname','solidearth.love .tk','NaN',1,'Inf',1);56 md = checkfield(md,'fieldname','solidearth.love .tk2secular','NaN',1,'Inf',1);54 md = checkfield(md,'fieldname','solidearth.lovenumbers.th','NaN',1,'Inf',1); 55 md = checkfield(md,'fieldname','solidearth.lovenumbers.tk','NaN',1,'Inf',1); 56 md = checkfield(md,'fieldname','solidearth.lovenumbers.tk2secular','NaN',1,'Inf',1); 57 57 58 58 %check that love numbers are provided at the same level of accuracy: 59 59 if (size(self.h,1)~=size(self.k,1) | size(self.h,1)~=size(self.l,1)), 60 error('love error message: love numbers should be provided at the same level of accuracy');60 error('lovenumbers error message: love numbers should be provided at the same level of accuracy'); 61 61 end 62 62 … … 67 67 end % }}} 68 68 function disp(self) % {{{ 69 disp(sprintf(' love parameters:'));69 disp(sprintf(' lovenumbers parameters:')); 70 70 71 71 fielddisplay(self,'h','load Love number for radial displacement'); … … 80 80 function marshall(self,prefix,md,fid) % {{{ 81 81 82 WriteData(fid,prefix,'object',self,'fieldname','h','name','md.solidearth.love .h','format','DoubleMat','mattype',1);83 WriteData(fid,prefix,'object',self,'fieldname','k','name','md.solidearth.love .k','format','DoubleMat','mattype',1);84 WriteData(fid,prefix,'object',self,'fieldname','l','name','md.solidearth.love .l','format','DoubleMat','mattype',1);82 WriteData(fid,prefix,'object',self,'fieldname','h','name','md.solidearth.lovenumbers.h','format','DoubleMat','mattype',1); 83 WriteData(fid,prefix,'object',self,'fieldname','k','name','md.solidearth.lovenumbers.k','format','DoubleMat','mattype',1); 84 WriteData(fid,prefix,'object',self,'fieldname','l','name','md.solidearth.lovenumbers.l','format','DoubleMat','mattype',1); 85 85 86 WriteData(fid,prefix,'object',self,'fieldname','th','name','md.solidearth.love .th','format','DoubleMat','mattype',1);87 WriteData(fid,prefix,'object',self,'fieldname','tk','name','md.solidearth.love .tk','format','DoubleMat','mattype',1);88 WriteData(fid,prefix,'object',self,'fieldname','tl','name','md.solidearth.love .tl','format','DoubleMat','mattype',1);89 WriteData(fid,prefix,'object',self,'data',self.tk2secular,'fieldname','love .tk2secular','format','Double');86 WriteData(fid,prefix,'object',self,'fieldname','th','name','md.solidearth.lovenumbers.th','format','DoubleMat','mattype',1); 87 WriteData(fid,prefix,'object',self,'fieldname','tk','name','md.solidearth.lovenumbers.tk','format','DoubleMat','mattype',1); 88 WriteData(fid,prefix,'object',self,'fieldname','tl','name','md.solidearth.lovenumbers.tl','format','DoubleMat','mattype',1); 89 WriteData(fid,prefix,'object',self,'data',self.tk2secular,'fieldname','lovenumbers.tk2secular','format','Double'); 90 90 91 91 end % }}} 92 92 function savemodeljs(self,fid,modelname) % {{{ 93 writejs1Darray(fid,[modelname '.love .h'],self.h);94 writejs1Darray(fid,[modelname '.love .k'],self.k);95 writejs1Darray(fid,[modelname '.love .l'],self.l);93 writejs1Darray(fid,[modelname '.lovenumbers.h'],self.h); 94 writejs1Darray(fid,[modelname '.lovenumbers.k'],self.k); 95 writejs1Darray(fid,[modelname '.lovenumbers.l'],self.l); 96 96 end % }}} 97 97 function self = extrude(self,md) % {{{ -
TabularUnified issm/trunk-jpl/src/m/classes/solidearth.m ¶
r25138 r25144 9 9 settings = solidearthsettings(); 10 10 surfaceload = surfaceload(); 11 love = love();11 lovenumbers = lovenumbers(); 12 12 rotational = rotational(); 13 13 planetradius = planetradius('earth'); … … 47 47 self.settings.checkconsistency(md,solution,analyses); 48 48 self.surfaceload.checkconsistency(md,solution,analyses); 49 self.love .checkconsistency(md,solution,analyses);49 self.lovenumbers.checkconsistency(md,solution,analyses); 50 50 self.rotational.checkconsistency(md,solution,analyses); 51 51 … … 64 64 self.settings.disp(); 65 65 self.surfaceload.disp(); 66 self.love .disp();66 self.lovenumbers.disp(); 67 67 self.rotational.disp(); 68 68 … … 76 76 self.settings.marshall(prefix,md,fid); 77 77 self.surfaceload.marshall(prefix,md,fid); 78 self.love .marshall(prefix,md,fid);78 self.lovenumbers.marshall(prefix,md,fid); 79 79 self.rotational.marshall(prefix,md,fid); 80 80 … … 94 94 self.settings.savemodeljs(fid,modelname); 95 95 self.surfaceload.savemodeljs(fid,modelname); 96 self.love .savemodeljs(fid,modelname);96 self.lovenumbers.savemodeljs(fid,modelname); 97 97 self.rotational.savemodeljs(fid,modelname); 98 98 writejscellstring(fid,[modelname '.solidearth.requested_outputs'],self.requested_outputs);
Note:
See TracChangeset
for help on using the changeset viewer.