Changeset 25331
- Timestamp:
- 07/31/20 23:58:11 (5 years ago)
- Location:
- issm/trunk-jpl/test
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/test/NightlyRun/test2085.m
r25303 r25331 1 1 %Test Name: FourierLoveKernels 2 2 % 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. 4 5 5 6 % for volumetric potential … … 8 9 md.materials=materials('litho'); 9 10 10 md.materials.numlayers = 10;11 md.materials.numlayers = 40; 11 12 md.love.forcing_type = 9; 12 13 … … 28 29 29 30 md.love.sh_nmin = 2; 30 md.love.sh_nmax = 2 ;31 md.love.sh_nmax = 200; 31 32 md.love.love_kernels=1; 32 33 … … 37 38 md=solve(md,'lv'); 38 39 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 39 43 % 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))); 46 51 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))); 52 59 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))); 82 67 % }}} 83 68 … … 85 70 86 71 md.love.forcing_type = 11; 87 88 72 md=solve(md,'lv'); 89 73 90 74 % 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))); 97 82 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))); 103 90 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))); 133 98 % }}} 134 99 135 100 field_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 }; 149 108 field_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,... 162 115 }; 163 116 field_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,... 176 123 }; 177 124
Note:
See TracChangeset
for help on using the changeset viewer.