Changeset 25298


Ignore:
Timestamp:
07/20/20 23:28:07 (5 years ago)
Author:
adhikari
Message:

CHG: Love kerneles solutions are validated against anlytic solutions and solutions archived

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

Legend:

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

    r23272 r25298  
    3838%loading love numbers
    3939field_names     ={'LoveH_loading_elastic','LoveK_loading_elastic','LoveL_loading_elastic'};
    40 field_tolerances={4.3e-9,4.3e-9,4.3e-9};
     40field_tolerances={2.0e-8,2.0e-8,2.0e-8};
    4141field_values={...
    4242        (md.results.LoveSolution.LoveHr(:,1)),...
  • issm/trunk-jpl/test/NightlyRun/test2085.m

    r24819 r25298  
     1%Test Name: FourierLoveKernels
     2% Homogeneous Earth, for which analytic solutions exist.
     3% Love kernels for degree 2 (tested against analytic solns). 
    14
    2 %Test Name: LovenumberstAtDepth.
    3 %Same as test #1 of test2084.m
     5% for volumetric potential
     6        md=model();
     7       
     8        md.materials=materials('litho');
    49
    5 md=model();
    6 md.cluster=generic('name',oshostname(),'np',1);
     10        md.materials.numlayers = 10;
     11        md.love.forcing_type = 9;
    712
    8 md.materials=materials('litho');
    9 md.miscellaneous.name='FourierLoveTest';
    10 md.groundingline.migration='None';
     13        md.materials.density=  (1:md.materials.numlayers)'*0+5511;
     14        md.materials.lame_mu=  (1:md.materials.numlayers)'*0+0.75e11;
     15        md.materials.viscosity=(1:md.materials.numlayers)'*0+1e21;
     16        md.materials.lame_lambda=md.materials.lame_mu*0+5e17;
     17        md.materials.issolid=ones(md.materials.numlayers,1);
     18        md.materials.isburgers=zeros(md.materials.numlayers,1);
     19        md.materials.burgers_mu=md.materials.lame_mu/3;
     20        md.materials.burgers_viscosity=md.materials.viscosity/10;
    1121
    12 md.verbose=verbose('111111101');
    13 cst=365.25*24*3600*1000;
     22        md.materials.radius =  linspace(10e3,6371e3,md.materials.numlayers+1)';
     23        md.love.g0 = 9.8134357285509388; % directly grabbed from fourierlovesolver for this particular case.
    1424
    15         md.materials.numlayers=6;
    16         md.materials.radius =  [10 1222.5 3.4800e+03   5.7010e+03   5.9510e+03   6.3010e+03   6.3710e+03]'*1e3;
    17         md.materials.density=  [1.0750e4 1.0750e+04   4.9780e+03   3.8710e+03   3.4380e+03   3.0370e+03]';
    18         md.materials.lame_mu=  [1e-5         0   2.2834e+00   1.0549e+00   7.0363e-01   5.0605e-01]'*1e11;
    19         md.materials.viscosity=[0             0   2.0000e+00   1.0000e+00   1.0000e+00   1.0000e+25]'*1e21;
    20         md.materials.lame_lambda=md.materials.lame_mu*0+5e14;
    21         md.materials.issolid=[1 0 1 1 1 1]';
    22         md.materials.isburgers=zeros(md.materials.numlayers,1);
     25        md.love.allow_layer_deletion=1;
     26        md.love.frequencies=0;
     27        md.love.nfreq=length(md.love.frequencies);
    2328
    24 md.love.love_kernels=1;
    25 md.love.allow_layer_deletion=1;
    26 md.love.frequencies=([0]*2*pi)'/cst;
    27 md.love.nfreq=length(md.love.frequencies);
    28 md.love.sh_nmax=2;
     29        md.love.sh_nmin = 2;
     30        md.love.sh_nmax = 2;
     31        md.love.love_kernels=1;
    2932
    30 md.materials.burgers_mu=md.materials.lame_mu;
    31 md.materials.burgers_viscosity=md.materials.viscosity;
     33        md.miscellaneous.name='kernels';
     34        md.cluster=generic('name',oshostname(),'np',1);
     35        md.verbose=verbose('111111101');
     36       
     37        md=solve(md,'lv');
    3238
    33 md=solve(md,'lv');
     39        % 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)));
    3446
    35 %Fields and tolerances to track changes
    36 %loading love numbers
    37 field_names = {'LoveH_loading_elastic','LoveK_loading_elastic','LoveL_loading_elastic','LoveKernels_degree1','LoveKernels_degree2'};
    38 field_tolerances={1e-10,1e-10,1e-10,4e-10,1e-10};
     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
     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); 
     82        % }}}
     83
     84% for surface load.
     85
     86        md.love.forcing_type = 11;
     87       
     88        md=solve(md,'lv');
     89
     90        % 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)));
     97
     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); 
     103
     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); 
     133        % }}}
     134
     135field_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        };
     149field_tolerances={...
     150        1e-10,1e-10,1e-10,1e-10,1e-10,...
     151        1e-10,1e-10,1e-10,1e-10,1e-10,...
     152        1e-10,1e-10,1e-10,1e-10,1e-10,...
     153        1e-10,1e-10,1e-10,1e-10,1e-10,...
     154        1e-10,1e-10,1e-10,1e-10,1e-10,...
     155        1e-10,1e-10,1e-10,1e-10,1e-10,...
     156        1e-10,1e-10,1e-10,1e-10,1e-10,...
     157        1e-10,1e-10,1e-10,1e-10,1e-10,...
     158        1e-10,1e-10,1e-10,1e-10,1e-10,...
     159        1e-10,1e-10,1e-10,1e-10,1e-10,...
     160        1e-10,1e-10,1e-10,1e-10,1e-10,...
     161        1e-10,1e-10,1e-10,1e-10,1e-10,...
     162        };
    39163field_values={...
    40         (md.results.LoveSolution.LoveHr(:,1)),...
    41         (md.results.LoveSolution.LoveKr(:,1)),...
    42         (md.results.LoveSolution.LoveLr(:,1)),...
    43         squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(2,1,:,:))),...
    44         squeeze(cell2mat(md.results.LoveSolution.LoveKernelsReal(3,1,:,:))),...
     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,...
    45176        };
     177
Note: See TracChangeset for help on using the changeset viewer.