source:
issm/oecreview/Archive/24684-25833/ISSM-25341-25342.diff
Last change on this file was 25834, checked in by , 4 years ago | |
---|---|
File size: 16.7 KB |
-
../trunk-jpl/test/NightlyRun/test2085.py
1 1 # Test Name: FourierLoveKernels 2 2 # Homogenous 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 6 7 from socket import gethostname … … 12 13 from model import * 13 14 from solve import * 14 15 15 # F rovolumetric potential16 # For volumetric potential 16 17 md = model() 17 18 18 19 md.materials = materials('litho') 19 20 20 md.materials.numlayers = 1021 md.materials.numlayers = 40 21 22 md.love.forcing_type = 9 22 23 23 24 md.materials.density = np.zeros((md.materials.numlayers, 1)) + 5511 … … 37 38 md.love.nfreq = 1 38 39 39 40 md.love.sh_nmin = 2 40 md.love.sh_nmax = 2 41 md.love.sh_nmax = 200 41 42 md.love.love_kernels = 1 42 43 43 44 md.miscellaneous.name = 'kernels' … … 46 47 47 48 md = solve(md,'lv') 48 49 50 # Save yi's for all layers except for the inner-most one, at select degrees. 51 degrees = [2, 20, 200] # we archive solutions for degrees 2, 20, 200 52 49 53 # Extract love kernels #{{{ 50 y1 = md.results.LoveSolution.LoveKernelsReal[:,0,:,0].squeeze() 51 y2 = md.results.LoveSolution.LoveKernelsReal[:,0,:,1].squeeze() 52 y3 = md.results.LoveSolution.LoveKernelsReal[:,0,:,2].squeeze() 53 y4 = md.results.LoveSolution.LoveKernelsReal[:,0,:,3].squeeze() 54 y5 = md.results.LoveSolution.LoveKernelsReal[:,0,:,4].squeeze() 55 y6 = md.results.LoveSolution.LoveKernelsReal[:,0,:,5].squeeze() 54 # degree 2 55 y1_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,0].squeeze() 56 y2_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,1].squeeze() 57 y3_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,2].squeeze() 58 y4_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,3].squeeze() 59 y5_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,4].squeeze() 60 y6_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,5].squeeze() 56 61 57 y1_tidal_degree2_interface1 = y1[2, 0] 58 y1_tidal_degree2_interface2 = y1[2, 1] 59 y1_tidal_degree2_interface7 = y1[2, 6] 60 y1_tidal_degree2_interface10 = y1[2, 9] 61 y1_tidal_degree2_interface11 = y1[2, 10] 62 # degree 20 63 y1_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,0].squeeze() 64 y2_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,1].squeeze() 65 y3_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,2].squeeze() 66 y4_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,3].squeeze() 67 y5_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,4].squeeze() 68 y6_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,5].squeeze() 62 69 63 y2_tidal_degree2_interface1 = y2[2, 0] 64 y2_tidal_degree2_interface2 = y2[2, 1] 65 y2_tidal_degree2_interface7 = y2[2, 6] 66 y2_tidal_degree2_interface10 = y2[2, 9] 67 y2_tidal_degree2_interface11 = y2[2, 10] 68 69 y3_tidal_degree2_interface1 = y3[2, 0] 70 y3_tidal_degree2_interface2 = y3[2, 1] 71 y3_tidal_degree2_interface7 = y3[2, 6] 72 y3_tidal_degree2_interface10 = y3[2, 9] 73 y3_tidal_degree2_interface11 = y3[2, 10] 74 75 y4_tidal_degree2_interface1 = y4[2, 0] 76 y4_tidal_degree2_interface2 = y4[2, 1] 77 y4_tidal_degree2_interface7 = y4[2, 6] 78 y4_tidal_degree2_interface10 = y4[2, 9] 79 y4_tidal_degree2_interface11 = y4[2, 10] 80 81 y5_tidal_degree2_interface1 = y5[2, 0] 82 y5_tidal_degree2_interface2 = y5[2, 1] 83 y5_tidal_degree2_interface7 = y5[2, 6] 84 y5_tidal_degree2_interface10 = y5[2, 9] 85 y5_tidal_degree2_interface11 = y5[2, 10] 86 87 y6_tidal_degree2_interface1 = y6[2, 0] 88 y6_tidal_degree2_interface2 = y6[2, 1] 89 y6_tidal_degree2_interface7 = y6[2, 6] 90 y6_tidal_degree2_interface10 = y6[2, 9] 91 y6_tidal_degree2_interface11 = y6[2, 10] 70 # degree 200 71 y1_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,0].squeeze() 72 y2_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,1].squeeze() 73 y3_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,2].squeeze() 74 y4_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,3].squeeze() 75 y5_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,4].squeeze() 76 y6_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,5].squeeze() 92 77 #}}} 93 78 94 79 # For surface load … … 97 82 md = solve(md,'lv') 98 83 99 84 # Extract love kernels #{{{ 100 y1 = md.results.LoveSolution.LoveKernelsReal[:,0,:,0].squeeze() 101 y2 = md.results.LoveSolution.LoveKernelsReal[:,0,:,1].squeeze() 102 y3 = md.results.LoveSolution.LoveKernelsReal[:,0,:,2].squeeze() 103 y4 = md.results.LoveSolution.LoveKernelsReal[:,0,:,3].squeeze() 104 y5 = md.results.LoveSolution.LoveKernelsReal[:,0,:,4].squeeze() 105 y6 = md.results.LoveSolution.LoveKernelsReal[:,0,:,5].squeeze() 85 # degree 2 86 y1_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,0].squeeze() 87 y2_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,1].squeeze() 88 y3_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,2].squeeze() 89 y4_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,3].squeeze() 90 y5_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,4].squeeze() 91 y6_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,5].squeeze() 106 92 107 y1_load_degree2_interface1 = y1[2, 0] 108 y1_load_degree2_interface2 = y1[2, 1] 109 y1_load_degree2_interface7 = y1[2, 6] 110 y1_load_degree2_interface10 = y1[2, 9] 111 y1_load_degree2_interface11 = y1[2, 10] 93 # degree 20 94 y1_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,0].squeeze() 95 y2_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,1].squeeze() 96 y3_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,2].squeeze() 97 y4_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,3].squeeze() 98 y5_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,4].squeeze() 99 y6_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,5].squeeze() 112 100 113 y2_load_degree2_interface1 = y2[2, 0] 114 y2_load_degree2_interface2 = y2[2, 1] 115 y2_load_degree2_interface7 = y2[2, 6] 116 y2_load_degree2_interface10 = y2[2, 9] 117 y2_load_degree2_interface11 = y2[2, 10] 118 119 y3_load_degree2_interface1 = y3[2, 0] 120 y3_load_degree2_interface2 = y3[2, 1] 121 y3_load_degree2_interface7 = y3[2, 6] 122 y3_load_degree2_interface10 = y3[2, 9] 123 y3_load_degree2_interface11 = y3[2, 10] 124 125 y4_load_degree2_interface1 = y4[2, 0] 126 y4_load_degree2_interface2 = y4[2, 1] 127 y4_load_degree2_interface7 = y4[2, 6] 128 y4_load_degree2_interface10 = y4[2, 9] 129 y4_load_degree2_interface11 = y4[2, 10] 130 131 y5_load_degree2_interface1 = y5[2, 0] 132 y5_load_degree2_interface2 = y5[2, 1] 133 y5_load_degree2_interface7 = y5[2, 6] 134 y5_load_degree2_interface10 = y5[2, 9] 135 y5_load_degree2_interface11 = y5[2, 10] 136 137 y6_load_degree2_interface1 = y6[2, 0] 138 y6_load_degree2_interface2 = y6[2, 1] 139 y6_load_degree2_interface7 = y6[2, 6] 140 y6_load_degree2_interface10 = y6[2, 9] 141 y6_load_degree2_interface11 = y6[2, 10] 101 # degree 200 102 y1_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,0].squeeze() 103 y2_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,1].squeeze() 104 y3_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,2].squeeze() 105 y4_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,3].squeeze() 106 y5_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,4].squeeze() 107 y6_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,5].squeeze() 142 108 #}}} 143 109 144 145 #Fields and tolerances to track changes146 #loading love numbers147 110 field_names = [ 148 'y1_tidal_degree2_interface1', 'y1_tidal_degree2_interface2', 'y1_tidal_degree2_interface7', 'y1_tidal_degree2_interface10', 'y1_tidal_degree2_interface11', 149 'y2_tidal_degree2_interface1', 'y2_tidal_degree2_interface2', 'y2_tidal_degree2_interface7', 'y2_tidal_degree2_interface10', 'y2_tidal_degree2_interface11', 150 'y3_tidal_degree2_interface1', 'y3_tidal_degree2_interface2', 'y3_tidal_degree2_interface7', 'y3_tidal_degree2_interface10', 'y3_tidal_degree2_interface11', 151 'y4_tidal_degree2_interface1', 'y4_tidal_degree2_interface2', 'y4_tidal_degree2_interface7', 'y4_tidal_degree2_interface10', 'y4_tidal_degree2_interface11', 152 'y5_tidal_degree2_interface1', 'y5_tidal_degree2_interface2', 'y5_tidal_degree2_interface7', 'y5_tidal_degree2_interface10', 'y5_tidal_degree2_interface11', 153 'y6_tidal_degree2_interface1', 'y6_tidal_degree2_interface2', 'y6_tidal_degree2_interface7', 'y6_tidal_degree2_interface10', 'y6_tidal_degree2_interface11', 154 'y1_load_degree2_interface1', 'y1_load_degree2_interface2', 'y1_load_degree2_interface7', 'y1_load_degree2_interface10', 'y1_load_degree2_interface11', 155 'y2_load_degree2_interface1', 'y2_load_degree2_interface2', 'y2_load_degree2_interface7', 'y2_load_degree2_interface10', 'y2_load_degree2_interface11', 156 'y3_load_degree2_interface1', 'y3_load_degree2_interface2', 'y3_load_degree2_interface7', 'y3_load_degree2_interface10', 'y3_load_degree2_interface11', 157 'y4_load_degree2_interface1', 'y4_load_degree2_interface2', 'y4_load_degree2_interface7', 'y4_load_degree2_interface10', 'y4_load_degree2_interface11', 158 'y5_load_degree2_interface1', 'y5_load_degree2_interface2', 'y5_load_degree2_interface7', 'y5_load_degree2_interface10', 'y5_load_degree2_interface11', 159 'y6_load_degree2_interface1', 'y6_load_degree2_interface2', 'y6_load_degree2_interface7', 'y6_load_degree2_interface10', 'y6_load_degree2_interface11' 111 'y1_tidal_degree002', 'y2_tidal_degree002', 'y3_tidal_degree002', 'y4_tidal_degree002', 'y5_tidal_degree002', 'y6_tidal_degree002', 112 'y1_tidal_degree020', 'y2_tidal_degree020', 'y3_tidal_degree020', 'y4_tidal_degree020', 'y5_tidal_degree020', 'y6_tidal_degree020', 113 'y1_tidal_degree200', 'y2_tidal_degree200', 'y3_tidal_degree200', 'y4_tidal_degree200', 'y5_tidal_degree200', 'y6_tidal_degree200', 114 'y1_loading_degree002', 'y2_loading_degree002', 'y3_loading_degree002', 'y4_loading_degree002', 'y5_loading_degree002', 'y6_loading_degree002', 115 'y1_loading_degree020', 'y2_loading_degree020', 'y3_loading_degree020', 'y4_loading_degree020', 'y5_loading_degree020', 'y6_loading_degree020', 116 'y1_loading_degree200', 'y2_loading_degree200', 'y3_loading_degree200', 'y4_loading_degree200', 'y5_loading_degree200', 'y6_loading_degree200' 160 117 ] 161 118 field_tolerances = [ 162 9e-8, 1e-7, 3e-7, 3e-7, 3e-7, 163 9e-8, 1e-7, 3e-7, 3e-7, 1e-10, 164 9e-8, 8e-8, 2e-8, 2e-7, 4e-7, 165 9e-8, 9e-8, 2e-7, 4e-7, 1e-10, 166 4e-7, 4e-7, 2e-7, 3e-8, 2e-8, 167 2e-5, 2e-6, 2e-6, 1e-6, 2e-7, 168 3e-6, 3e-6, 3e-6, 4e-6, 4e-6, 169 3e-6, 3e-6, 2e-6, 6e-7, 1e-10, 170 3e-6, 3e-6, 5e-7, 3e-6, 5e-6, 171 3e-6, 3e-6, 9e-7, 7e-7, 1e-10, 172 4e-6, 4e-6, 3e-6, 5e-7, 3e-7, 173 3e-6, 3e-6, 2e-6, 7e-7, 2e-7 119 3e-7, 3e-7, 3e-7, 1e-7, 6e-8, 9e-7, 120 2e-7, 7e-8, 3e-7, 9e-8, 9e-10, 8e-10, 121 2e-8, 4e-8, 4e-7, 3e-8, 2e-10, 1e-10, 122 4e-6, 1e-6, 4e-6, 3e-6, 8e-7, 2e-6, 123 2e-6, 1e-7, 5e-6, 3e-7, 2e-7, 2e-7, 124 2e-6, 9e-10, 5e-5, 3e-8, 5e-7, 2e-9 174 125 ] 175 126 field_values = [ 176 y1_tidal_degree2_interface1, y1_tidal_degree2_interface2, y1_tidal_degree2_interface7, y1_tidal_degree2_interface10,y1_tidal_degree2_interface11, 177 y2_tidal_degree2_interface1, y2_tidal_degree2_interface2, y2_tidal_degree2_interface7, y2_tidal_degree2_interface10,y2_tidal_degree2_interface11, 178 y3_tidal_degree2_interface1, y3_tidal_degree2_interface2, y3_tidal_degree2_interface7, y3_tidal_degree2_interface10,y3_tidal_degree2_interface11, 179 y4_tidal_degree2_interface1, y4_tidal_degree2_interface2, y4_tidal_degree2_interface7, y4_tidal_degree2_interface10,y4_tidal_degree2_interface11, 180 y5_tidal_degree2_interface1, y5_tidal_degree2_interface2, y5_tidal_degree2_interface7, y5_tidal_degree2_interface10,y5_tidal_degree2_interface11, 181 y6_tidal_degree2_interface1, y6_tidal_degree2_interface2, y6_tidal_degree2_interface7, y6_tidal_degree2_interface10,y6_tidal_degree2_interface11, 182 y1_load_degree2_interface1, y1_load_degree2_interface2, y1_load_degree2_interface7, y1_load_degree2_interface10,y1_load_degree2_interface11, 183 y2_load_degree2_interface1, y2_load_degree2_interface2, y2_load_degree2_interface7, y2_load_degree2_interface10,y2_load_degree2_interface11, 184 y3_load_degree2_interface1, y3_load_degree2_interface2, y3_load_degree2_interface7, y3_load_degree2_interface10,y3_load_degree2_interface11, 185 y4_load_degree2_interface1, y4_load_degree2_interface2, y4_load_degree2_interface7, y4_load_degree2_interface10,y4_load_degree2_interface11, 186 y5_load_degree2_interface1, y5_load_degree2_interface2, y5_load_degree2_interface7, y5_load_degree2_interface10,y5_load_degree2_interface11, 187 y6_load_degree2_interface1, y6_load_degree2_interface2, y6_load_degree2_interface7, y6_load_degree2_interface10,y6_load_degree2_interface11 127 y1_tidal_degree002, y2_tidal_degree002, y3_tidal_degree002, y4_tidal_degree002, y5_tidal_degree002, y6_tidal_degree002, 128 y1_tidal_degree020, y2_tidal_degree020, y3_tidal_degree020, y4_tidal_degree020, y5_tidal_degree020, y6_tidal_degree020, 129 y1_tidal_degree200, y2_tidal_degree200, y3_tidal_degree200, y4_tidal_degree200, y5_tidal_degree200, y6_tidal_degree200, 130 y1_loading_degree002, y2_loading_degree002, y3_loading_degree002, y4_loading_degree002, y5_loading_degree002, y6_loading_degree002, 131 y1_loading_degree020, y2_loading_degree020, y3_loading_degree020, y4_loading_degree020, y5_loading_degree020, y6_loading_degree020, 132 y1_loading_degree200, y2_loading_degree200, y3_loading_degree200, y4_loading_degree200, y5_loading_degree200, y6_loading_degree200 188 133 ] -
../trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh
13 13 MATLAB_NROPTIONS="'benchmark','slr'" 14 14 MATLAB_PATH="/usr/local/MATLAB/R2019b" 15 15 PACKAGE="ISSM-Solid_Earth" # Name of directory to copy distributable files to 16 PYTHON_NROPTIONS="--benchmark slr "16 PYTHON_NROPTIONS="--benchmark slr --exclude 2004" 17 17 TARBALL_NAME="issm-linux-solid_earth" 18 18 TARBALL="${TARBALL_NAME}.tar.gz" 19 19 -
../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh
11 11 MATLAB_NROPTIONS="'benchmark','slr'" 12 12 MATLAB_PATH="/Applications/MATLAB_R2018a.app" 13 13 PACKAGE="ISSM-Solid_Earth" # Name of directory to copy distributable files to 14 PYTHON_NROPTIONS="--benchmark slr "14 PYTHON_NROPTIONS="--benchmark slr --exclude 2004" 15 15 TARBALL_NAME="issm-linux-solid_earth" 16 16 TARBALL="${TARBALL_NAME}.tar.gz" 17 17 -
../trunk-jpl/jenkins/ross-debian_linux-solid_earth
76 76 # See documentation in test/NightlyRun/runme.* for more information. 77 77 # 78 78 MATLAB_NROPTIONS="'benchmark','slr'" 79 PYTHON_NROPTIONS="--benchmark =slr"79 PYTHON_NROPTIONS="--benchmark slr --exclude 2004" -
../trunk-jpl/test/NightlyRun/test2085.m
106 106 'y1_loading_degree200','y2_loading_degree200','y3_loading_degree200','y4_loading_degree200','y5_loading_degree200','y6_loading_degree200',... 107 107 }; 108 108 field_tolerances={... 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,... 109 3e-7, 3e-7, 3e-7, 1e-7, 6e-8, 9e-7,... 110 2e-7, 7e-8, 3e-7, 9e-8, 9e-10, 8e-10,... 111 2e-8, 4e-8, 4e-7, 3e-8, 2e-10, 1e-10,... 112 4e-6, 1e-6, 4e-6, 3e-6, 8e-7, 2e-6,... 113 2e-6, 1e-7, 5e-6, 3e-7, 2e-7, 2e-7,... 114 2e-6, 9e-10, 5e-5, 3e-8, 5e-7, 2e-9... 115 115 }; 116 116 field_values={... 117 117 y1_tidal_degree002,y2_tidal_degree002,y3_tidal_degree002,y4_tidal_degree002,y5_tidal_degree002,y6_tidal_degree002,...
Note:
See TracBrowser
for help on using the repository browser.