Changeset 25138
- Timestamp:
- 06/24/20 17:33:44 (5 years ago)
- Location:
- issm/trunk-jpl/src/m
- Files:
-
- 1 added
- 1 deleted
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/boundaryconditions/love_numbers.m
r21307 r25138 1 function series=love_numbers( type,reference_frame)1 function series=love_numbers(varargin) 2 2 %LOVE_NUMBERS: provide love numbers 3 3 % retrieved from: http://www.srosat.com/iag-jsg/loveNb.php … … 5 5 % 6 6 % Usage: 7 % series = love_numbers(type) 8 % series = love_numbers(type,reference_frame) 7 % series = love_numbers('type','loadingverticaldisplacement','referenceframe','CM','maxdeg',1001) 9 8 % 10 % - type = one of 'h','k','l','gamma' and 'lambda'. 9 % - type = one of 'loadingverticaldisplacement', 'loadinggravitationalpotential', 'loadinghorizontaldisplacement', ... 10 % 'tidalverticaldisplacement', 'tidalgravitationalpotential', 'tidalhorizontaldisplacement' 11 11 % - reference_frame = one of 'CM' (default) and 'CF'. 12 % - maxdeg = default 1001 12 13 % 13 14 % Example: 14 % love_k = love_numbers('k'); 15 % love_k = love_numbers('k','CF'); 16 % 15 % h=love_number('type','loadingverticaldisplacement','referenceframe','CM','maxdeg',maxdeg); 16 % k=love_number('type','loadinggravitationalpotential','referenceframe','CM','maxdeg',maxdeg); 17 % l=love_number('type','loadinghorizontaldisplacement','referenceframe','CM','maxdeg',maxdeg); 18 % th=love_number('type','tidalverticaldisplacement','referenceframe','CM','maxdeg',maxdeg); 19 % tk=love_number('type','tidalgravitationalpotential','referenceframe','CM','maxdeg',maxdeg); 20 % tl=love_number('type','tidalhorizontaldisplacement','referenceframe','CM','maxdeg',maxdeg); 17 21 18 % some checks: 19 if nargin==1, 20 frame='CM'; 21 disp('Info: computation is done in Center of Mass (CM) reference frame'); 22 elseif nargin==2, 23 frame=reference_frame; 24 if ~( strcmpi(reference_frame,'CM') | strcmpi(reference_frame,'CF')), 25 error('reference_frame should be one of ''CM'' or ''CF'''); 26 end 27 else 28 help love_numbers 29 error('bad usage'); 22 %recover options: 23 options=pairoptions(varargin{:}); 24 type=getfieldvalue(options,'type'); 25 frame=getfieldvalue(options,'referenceframe','CM'); 26 maxdeg=getfieldvalue(options,'maxdeg',1000); 27 28 if(maxdeg>10000), 29 error('PREM love numbers computed only for deg < 10,000. Request lower maxdeg' ); 30 30 end 31 31 32 if ~( strcmpi(type,'h') | strcmpi(type,'k') | strcmpi(type,'l') | strcmpi(type,'gamma') | strcmpi(type,'lambda') ), 33 error('type should be one of ''h'',''k'',''l'',''gamma'' and ''lambda'''); 32 if ~( strcmpi(type,'loadingverticaldisplacement') | strcmpi(type,'loadinggravitationalpotential') | strcmpi(type,'loadinghorizontaldisplacement') ... 33 | strcmpi(type,'tidalverticaldisplacement') | strcmpi(type,'tidalgravitationalpotential') | strcmpi(type,'tidalhorizontaldisplacement')), 34 error('type should be one of ''loadingverticaldisplacement'', ''loadinggravitationalpotential'', ''loadinghorizontaldisplacement'',''tidalverticaldisplacement'', ''tidalgravitationalpotential'', ''tidalhorizontaldisplacement'''); 34 35 end 35 36 36 37 love_numbers=[... 37 38 0 0 0 0 0 0 0 38 39 -1.28740059 -1.00000000 -0.89858519 1.28740059 0.42519882 0.89858519 0.00000000 … … 10037 10038 -6.27342778 -0.00030945 0.00018956 7.27311833 0.99905480 0.99950099 0.49327194]; 10038 10039 10039 if type=='h', 10040 %cut off series at maxdeg: 10041 love_numbers(maxdeg+2:end,:)=[]; 10042 10043 %retrive right type: 10044 if strcmpi(type,'loadingverticaldisplacement'), 10040 10045 series=love_numbers(:,1); 10041 elseif type=='k',10046 elseif strcmpi(type,'loadinggravitationalpotential'), 10042 10047 series=love_numbers(:,2); 10043 elseif type=='l',10048 elseif strcmpi(type,'loadinghorizontaldisplacement'), 10044 10049 series=love_numbers(:,3); 10045 elseif type=='gamma',10050 elseif strcmpi(type,'tidalverticaldisplacement'), 10046 10051 series=love_numbers(:,4); 10047 elseif type=='lambda',10052 elseif strcmpi(type,'tidalgravitationalpotential'), 10048 10053 series=love_numbers(:,5); 10054 elseif strcmpi(type,'tidalhorizontaldisplacement'), 10055 series=love_numbers(:,6); 10049 10056 else 10050 10057 error(['love_numbers error message: unknow type:' type]); … … 10052 10059 10053 10060 % choose degree 1 term for CF reference system 10054 if frame=='CM',10061 if strcmpi(frame,'CM'), 10055 10062 return; 10056 elseif frame=='CF', % from Blewitt, 2003, JGR10057 if type=='h',10063 elseif strcmpi(frame,'CF'), % from Blewitt, 2003, JGR 10064 if strcmpi(type,'loadingverticaldisplacement'), 10058 10065 series(2,1) = -0.269; 10059 elseif type=='k',10066 elseif strcmpi(type,'loadinggravitationalpotential'), 10060 10067 series(2,1) = 0.021; 10061 elseif type=='l',10068 elseif strcmpi(type,'loadinghorizontaldisplacement'), 10062 10069 series(2,1) = 0.134; 10063 10070 end … … 10066 10073 end 10067 10074 10075 10076 -
issm/trunk-jpl/src/m/classes/solidearth.m
r25118 r25138 9 9 settings = solidearthsettings(); 10 10 surfaceload = surfaceload(); 11 love = lo adinglove();11 love = love(); 12 12 rotational = rotational(); 13 13 planetradius = planetradius('earth');
Note:
See TracChangeset
for help on using the changeset viewer.