Changeset 25331


Ignore:
Timestamp:
07/31/20 23:58:11 (5 years ago)
Author:
adhikari
Message:

CHG: revised test to benchmark love numbers at depth for degrees 2, 20, 200. y5 loading solutions for degree 200 look a bit unreal.

Location:
issm/trunk-jpl/test
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/test/NightlyRun/test2085.m

    r25303 r25331  
    11%Test Name: FourierLoveKernels
    22% Homogeneous Earth, for which analytic solutions exist.
    3 % Love kernels for degree 2 (tested against analytic solns). 
     3% Love kernels for degree 2, 20, 200 (tested against analytic solns). 
     4% skip benchmarking for the inner-most interface.
    45
    56% for volumetric potential
     
    89        md.materials=materials('litho');
    910
    10         md.materials.numlayers = 10;
     11        md.materials.numlayers = 40;
    1112        md.love.forcing_type = 9;
    1213
     
    2829
    2930        md.love.sh_nmin = 2;
    30         md.love.sh_nmax = 2;
     31        md.love.sh_nmax = 200;
    3132        md.love.love_kernels=1;
    3233
     
    3738        md=solve(md,'lv');
    3839
     40        % save yi's for all layers except for the inner-most one, at select degrees.
     41        degrees = [2 20 200];  % we archive solutions for degrees 2, 20, 200
     42
    3943        % extract love kernels {{{
    40         y1=squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(:,1,:,1)));
    41         y2=squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(:,1,:,2)));
    42         y3=squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(:,1,:,3)));
    43         y4=squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(:,1,:,4)));
    44         y5=squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(:,1,:,5)));
    45         y6=squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(:,1,:,6)));
     44        % degree 2.
     45        y1_tidal_degree002 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(1)+1,1,2:end,1)));
     46        y2_tidal_degree002 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(1)+1,1,2:end,2)));
     47        y3_tidal_degree002 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(1)+1,1,2:end,3)));
     48        y4_tidal_degree002 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(1)+1,1,2:end,4)));
     49        y5_tidal_degree002 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(1)+1,1,2:end,5)));
     50        y6_tidal_degree002 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(1)+1,1,2:end,6)));
    4651
    47         y1_tidal_degree2_interface1 = y1(3,1); 
    48         y1_tidal_degree2_interface2 = y1(3,2); 
    49         y1_tidal_degree2_interface7 = y1(3,7); 
    50         y1_tidal_degree2_interface10 = y1(3,10); 
    51         y1_tidal_degree2_interface11 = y1(3,11); 
     52        % degree 20.
     53        y1_tidal_degree020 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(2)+1,1,2:end,1)));
     54        y2_tidal_degree020 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(2)+1,1,2:end,2)));
     55        y3_tidal_degree020 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(2)+1,1,2:end,3)));
     56        y4_tidal_degree020 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(2)+1,1,2:end,4)));
     57        y5_tidal_degree020 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(2)+1,1,2:end,5)));
     58        y6_tidal_degree020 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(2)+1,1,2:end,6)));
    5259
    53         y2_tidal_degree2_interface1 = y2(3,1); 
    54         y2_tidal_degree2_interface2 = y2(3,2); 
    55         y2_tidal_degree2_interface7 = y2(3,7); 
    56         y2_tidal_degree2_interface10 = y2(3,10); 
    57         y2_tidal_degree2_interface11 = y2(3,11); 
    58 
    59         y3_tidal_degree2_interface1 = y3(3,1); 
    60         y3_tidal_degree2_interface2 = y3(3,2); 
    61         y3_tidal_degree2_interface7 = y3(3,7); 
    62         y3_tidal_degree2_interface10 = y3(3,10); 
    63         y3_tidal_degree2_interface11 = y3(3,11); 
    64 
    65         y4_tidal_degree2_interface1 = y4(3,1); 
    66         y4_tidal_degree2_interface2 = y4(3,2); 
    67         y4_tidal_degree2_interface7 = y4(3,7); 
    68         y4_tidal_degree2_interface10 = y4(3,10); 
    69         y4_tidal_degree2_interface11 = y4(3,11); 
    70 
    71         y5_tidal_degree2_interface1 = y5(3,1); 
    72         y5_tidal_degree2_interface2 = y5(3,2); 
    73         y5_tidal_degree2_interface7 = y5(3,7); 
    74         y5_tidal_degree2_interface10 = y5(3,10); 
    75         y5_tidal_degree2_interface11 = y5(3,11); 
    76 
    77         y6_tidal_degree2_interface1 = y6(3,1); 
    78         y6_tidal_degree2_interface2 = y6(3,2); 
    79         y6_tidal_degree2_interface7 = y6(3,7); 
    80         y6_tidal_degree2_interface10 = y6(3,10); 
    81         y6_tidal_degree2_interface11 = y6(3,11); 
     60        % degree 200.
     61        y1_tidal_degree200 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(3)+1,1,2:end,1)));
     62        y2_tidal_degree200 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(3)+1,1,2:end,2)));
     63        y3_tidal_degree200 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(3)+1,1,2:end,3)));
     64        y4_tidal_degree200 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(3)+1,1,2:end,4)));
     65        y5_tidal_degree200 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(3)+1,1,2:end,5)));
     66        y6_tidal_degree200 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(3)+1,1,2:end,6)));
    8267        % }}}
    8368
     
    8570
    8671        md.love.forcing_type = 11;
    87        
    8872        md=solve(md,'lv');
    8973
    9074        % extract love kernels {{{
    91         y1=squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(:,1,:,1)));
    92         y2=squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(:,1,:,2)));
    93         y3=squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(:,1,:,3)));
    94         y4=squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(:,1,:,4)));
    95         y5=squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(:,1,:,5)));
    96         y6=squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(:,1,:,6)));
     75        % degree 2.
     76        y1_loading_degree002 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(1)+1,1,2:end,1)));
     77        y2_loading_degree002 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(1)+1,1,2:end,2)));
     78        y3_loading_degree002 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(1)+1,1,2:end,3)));
     79        y4_loading_degree002 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(1)+1,1,2:end,4)));
     80        y5_loading_degree002 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(1)+1,1,2:end,5)));
     81        y6_loading_degree002 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(1)+1,1,2:end,6)));
    9782
    98         y1_load_degree2_interface1 = y1(3,1); 
    99         y1_load_degree2_interface2 = y1(3,2); 
    100         y1_load_degree2_interface7 = y1(3,7); 
    101         y1_load_degree2_interface10 = y1(3,10); 
    102         y1_load_degree2_interface11 = y1(3,11); 
     83        % degree 20.
     84        y1_loading_degree020 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(2)+1,1,2:end,1)));
     85        y2_loading_degree020 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(2)+1,1,2:end,2)));
     86        y3_loading_degree020 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(2)+1,1,2:end,3)));
     87        y4_loading_degree020 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(2)+1,1,2:end,4)));
     88        y5_loading_degree020 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(2)+1,1,2:end,5)));
     89        y6_loading_degree020 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(2)+1,1,2:end,6)));
    10390
    104         y2_load_degree2_interface1 = y2(3,1); 
    105         y2_load_degree2_interface2 = y2(3,2); 
    106         y2_load_degree2_interface7 = y2(3,7); 
    107         y2_load_degree2_interface10 = y2(3,10); 
    108         y2_load_degree2_interface11 = y2(3,11); 
    109 
    110         y3_load_degree2_interface1 = y3(3,1); 
    111         y3_load_degree2_interface2 = y3(3,2); 
    112         y3_load_degree2_interface7 = y3(3,7); 
    113         y3_load_degree2_interface10 = y3(3,10); 
    114         y3_load_degree2_interface11 = y3(3,11); 
    115 
    116         y4_load_degree2_interface1 = y4(3,1); 
    117         y4_load_degree2_interface2 = y4(3,2); 
    118         y4_load_degree2_interface7 = y4(3,7); 
    119         y4_load_degree2_interface10 = y4(3,10); 
    120         y4_load_degree2_interface11 = y4(3,11); 
    121 
    122         y5_load_degree2_interface1 = y5(3,1); 
    123         y5_load_degree2_interface2 = y5(3,2); 
    124         y5_load_degree2_interface7 = y5(3,7); 
    125         y5_load_degree2_interface10 = y5(3,10); 
    126         y5_load_degree2_interface11 = y5(3,11); 
    127 
    128         y6_load_degree2_interface1 = y6(3,1); 
    129         y6_load_degree2_interface2 = y6(3,2); 
    130         y6_load_degree2_interface7 = y6(3,7); 
    131         y6_load_degree2_interface10 = y6(3,10); 
    132         y6_load_degree2_interface11 = y6(3,11); 
     91        % degree 200.
     92        y1_loading_degree200 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(3)+1,1,2:end,1)));
     93        y2_loading_degree200 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(3)+1,1,2:end,2)));
     94        y3_loading_degree200 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(3)+1,1,2:end,3)));
     95        y4_loading_degree200 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(3)+1,1,2:end,4)));
     96        y5_loading_degree200 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(3)+1,1,2:end,5)));
     97        y6_loading_degree200 = squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(degrees(3)+1,1,2:end,6)));
    13398        % }}}
    13499
    135100field_names = {...
    136         'y1_tidal_degree2_interface1','y1_tidal_degree2_interface2','y1_tidal_degree2_interface7','y1_tidal_degree2_interface10','y1_tidal_degree2_interface11',...
    137         'y2_tidal_degree2_interface1','y2_tidal_degree2_interface2','y2_tidal_degree2_interface7','y2_tidal_degree2_interface10','y2_tidal_degree2_interface11',...
    138         'y3_tidal_degree2_interface1','y3_tidal_degree2_interface2','y3_tidal_degree2_interface7','y3_tidal_degree2_interface10','y3_tidal_degree2_interface11',...
    139         'y4_tidal_degree2_interface1','y4_tidal_degree2_interface2','y4_tidal_degree2_interface7','y4_tidal_degree2_interface10','y4_tidal_degree2_interface11',...
    140         'y5_tidal_degree2_interface1','y5_tidal_degree2_interface2','y5_tidal_degree2_interface7','y5_tidal_degree2_interface10','y5_tidal_degree2_interface11',...
    141         'y6_tidal_degree2_interface1','y6_tidal_degree2_interface2','y6_tidal_degree2_interface7','y6_tidal_degree2_interface10','y6_tidal_degree2_interface11',...
    142         'y1_load_degree2_interface1','y1_load_degree2_interface2','y1_load_degree2_interface7','y1_load_degree2_interface10','y1_load_degree2_interface11',...
    143         'y2_load_degree2_interface1','y2_load_degree2_interface2','y2_load_degree2_interface7','y2_load_degree2_interface10','y2_load_degree2_interface11',...
    144         'y3_load_degree2_interface1','y3_load_degree2_interface2','y3_load_degree2_interface7','y3_load_degree2_interface10','y3_load_degree2_interface11',...
    145         'y4_load_degree2_interface1','y4_load_degree2_interface2','y4_load_degree2_interface7','y4_load_degree2_interface10','y4_load_degree2_interface11',...
    146         'y5_load_degree2_interface1','y5_load_degree2_interface2','y5_load_degree2_interface7','y5_load_degree2_interface10','y5_load_degree2_interface11',...
    147         'y6_load_degree2_interface1','y6_load_degree2_interface2','y6_load_degree2_interface7','y6_load_degree2_interface10','y6_load_degree2_interface11',...
    148         };
     101        'y1_tidal_degree002','y2_tidal_degree002','y3_tidal_degree002','y4_tidal_degree002','y5_tidal_degree002','y6_tidal_degree002',...
     102        'y1_tidal_degree020','y2_tidal_degree020','y3_tidal_degree020','y4_tidal_degree020','y5_tidal_degree020','y6_tidal_degree020',...
     103        'y1_tidal_degree200','y2_tidal_degree200','y3_tidal_degree200','y4_tidal_degree200','y5_tidal_degree200','y6_tidal_degree200',...
     104        'y1_loading_degree002','y2_loading_degree002','y3_loading_degree002','y4_loading_degree002','y5_loading_degree002','y6_loading_degree002',...
     105        'y1_loading_degree020','y2_loading_degree020','y3_loading_degree020','y4_loading_degree020','y5_loading_degree020','y6_loading_degree020',...
     106        'y1_loading_degree200','y2_loading_degree200','y3_loading_degree200','y4_loading_degree200','y5_loading_degree200','y6_loading_degree200',...
     107        };
    149108field_tolerances={...
    150         9e-8, 1e-7, 3e-7, 3e-7, 3e-7,...
    151         9e-8, 1e-7, 3e-7, 3e-7, 1e-10,...
    152         9e-8, 8e-8, 2e-8, 2e-7, 4e-7,...
    153         9e-8, 9e-8, 2e-7, 4e-7, 1e-10,...
    154         4e-7, 4e-7, 2e-7, 3e-8, 2e-8,...
    155         2e-5, 2e-6, 2e-6, 1e-6, 2e-7,...
    156         3e-6, 3e-6, 3e-6, 4e-6, 4e-6,...
    157         3e-6, 3e-6, 2e-6, 6e-7, 1e-10,...
    158         3e-6, 3e-6, 5e-7, 3e-6, 5e-6,...
    159         3e-6, 3e-6, 9e-7, 7e-7, 1e-10,...
    160         4e-6, 4e-6, 3e-6, 5e-7, 3e-7,...
    161         3e-6, 3e-6, 2e-6, 7e-7, 2e-7...
     109        1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,...
     110        1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,...
     111        1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,...
     112        1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,...
     113        1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,...
     114        1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,...
    162115        };
    163116field_values={...
    164         y1_tidal_degree2_interface1, y1_tidal_degree2_interface2, y1_tidal_degree2_interface7, y1_tidal_degree2_interface10,y1_tidal_degree2_interface11,...
    165         y2_tidal_degree2_interface1, y2_tidal_degree2_interface2, y2_tidal_degree2_interface7, y2_tidal_degree2_interface10,y2_tidal_degree2_interface11,...
    166         y3_tidal_degree2_interface1, y3_tidal_degree2_interface2, y3_tidal_degree2_interface7, y3_tidal_degree2_interface10,y3_tidal_degree2_interface11,...
    167         y4_tidal_degree2_interface1, y4_tidal_degree2_interface2, y4_tidal_degree2_interface7, y4_tidal_degree2_interface10,y4_tidal_degree2_interface11,...
    168         y5_tidal_degree2_interface1, y5_tidal_degree2_interface2, y5_tidal_degree2_interface7, y5_tidal_degree2_interface10,y5_tidal_degree2_interface11,...
    169         y6_tidal_degree2_interface1, y6_tidal_degree2_interface2, y6_tidal_degree2_interface7, y6_tidal_degree2_interface10,y6_tidal_degree2_interface11,...
    170         y1_load_degree2_interface1, y1_load_degree2_interface2, y1_load_degree2_interface7, y1_load_degree2_interface10,y1_load_degree2_interface11,...
    171         y2_load_degree2_interface1, y2_load_degree2_interface2, y2_load_degree2_interface7, y2_load_degree2_interface10,y2_load_degree2_interface11,...
    172         y3_load_degree2_interface1, y3_load_degree2_interface2, y3_load_degree2_interface7, y3_load_degree2_interface10,y3_load_degree2_interface11,...
    173         y4_load_degree2_interface1, y4_load_degree2_interface2, y4_load_degree2_interface7, y4_load_degree2_interface10,y4_load_degree2_interface11,...
    174         y5_load_degree2_interface1, y5_load_degree2_interface2, y5_load_degree2_interface7, y5_load_degree2_interface10,y5_load_degree2_interface11,...
    175         y6_load_degree2_interface1, y6_load_degree2_interface2, y6_load_degree2_interface7, y6_load_degree2_interface10,y6_load_degree2_interface11,...
     117        y1_tidal_degree002,y2_tidal_degree002,y3_tidal_degree002,y4_tidal_degree002,y5_tidal_degree002,y6_tidal_degree002,...
     118        y1_tidal_degree020,y2_tidal_degree020,y3_tidal_degree020,y4_tidal_degree020,y5_tidal_degree020,y6_tidal_degree020,...
     119        y1_tidal_degree200,y2_tidal_degree200,y3_tidal_degree200,y4_tidal_degree200,y5_tidal_degree200,y6_tidal_degree200,...
     120        y1_loading_degree002,y2_loading_degree002,y3_loading_degree002,y4_loading_degree002,y5_loading_degree002,y6_loading_degree002,...
     121        y1_loading_degree020,y2_loading_degree020,y3_loading_degree020,y4_loading_degree020,y5_loading_degree020,y6_loading_degree020,...
     122        y1_loading_degree200,y2_loading_degree200,y3_loading_degree200,y4_loading_degree200,y5_loading_degree200,y6_loading_degree200,...
    176123        };
    177124
Note: See TracChangeset for help on using the changeset viewer.