source: issm/oecreview/Archive/24684-25833/ISSM-25341-25342.diff

Last change on this file was 25834, checked in by Mathieu Morlighem, 4 years ago

CHG: added 24684-25833

File size: 16.7 KB
RevLine 
[25834]1Index: ../trunk-jpl/test/NightlyRun/test2085.py
2===================================================================
3--- ../trunk-jpl/test/NightlyRun/test2085.py (revision 25341)
4+++ ../trunk-jpl/test/NightlyRun/test2085.py (revision 25342)
5@@ -1,6 +1,7 @@
6 # Test Name: FourierLoveKernels
7 # Homogenous Earth, for which analytic solutions exist.
8-# Love kernels for degree 2 (tested against analytic solns).
9+# Love kernels for degree 2, 20, 200 (tested against analytic solns).
10+# Skip benchmarking for the inner-most interface.
11
12
13 from socket import gethostname
14@@ -12,12 +13,12 @@
15 from model import *
16 from solve import *
17
18-# Fro volumetric potential
19+# For volumetric potential
20 md = model()
21
22 md.materials = materials('litho')
23
24-md.materials.numlayers = 10
25+md.materials.numlayers = 40
26 md.love.forcing_type = 9
27
28 md.materials.density = np.zeros((md.materials.numlayers, 1)) + 5511
29@@ -37,7 +38,7 @@
30 md.love.nfreq = 1
31
32 md.love.sh_nmin = 2
33-md.love.sh_nmax = 2
34+md.love.sh_nmax = 200
35 md.love.love_kernels = 1
36
37 md.miscellaneous.name = 'kernels'
38@@ -46,49 +47,33 @@
39
40 md = solve(md,'lv')
41
42+# Save yi's for all layers except for the inner-most one, at select degrees.
43+degrees = [2, 20, 200] # we archive solutions for degrees 2, 20, 200
44+
45 # Extract love kernels #{{{
46-y1 = md.results.LoveSolution.LoveKernelsReal[:,0,:,0].squeeze()
47-y2 = md.results.LoveSolution.LoveKernelsReal[:,0,:,1].squeeze()
48-y3 = md.results.LoveSolution.LoveKernelsReal[:,0,:,2].squeeze()
49-y4 = md.results.LoveSolution.LoveKernelsReal[:,0,:,3].squeeze()
50-y5 = md.results.LoveSolution.LoveKernelsReal[:,0,:,4].squeeze()
51-y6 = md.results.LoveSolution.LoveKernelsReal[:,0,:,5].squeeze()
52+# degree 2
53+y1_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,0].squeeze()
54+y2_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,1].squeeze()
55+y3_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,2].squeeze()
56+y4_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,3].squeeze()
57+y5_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,4].squeeze()
58+y6_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,5].squeeze()
59
60-y1_tidal_degree2_interface1 = y1[2, 0]
61-y1_tidal_degree2_interface2 = y1[2, 1]
62-y1_tidal_degree2_interface7 = y1[2, 6]
63-y1_tidal_degree2_interface10 = y1[2, 9]
64-y1_tidal_degree2_interface11 = y1[2, 10]
65+# degree 20
66+y1_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,0].squeeze()
67+y2_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,1].squeeze()
68+y3_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,2].squeeze()
69+y4_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,3].squeeze()
70+y5_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,4].squeeze()
71+y6_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,5].squeeze()
72
73-y2_tidal_degree2_interface1 = y2[2, 0]
74-y2_tidal_degree2_interface2 = y2[2, 1]
75-y2_tidal_degree2_interface7 = y2[2, 6]
76-y2_tidal_degree2_interface10 = y2[2, 9]
77-y2_tidal_degree2_interface11 = y2[2, 10]
78-
79-y3_tidal_degree2_interface1 = y3[2, 0]
80-y3_tidal_degree2_interface2 = y3[2, 1]
81-y3_tidal_degree2_interface7 = y3[2, 6]
82-y3_tidal_degree2_interface10 = y3[2, 9]
83-y3_tidal_degree2_interface11 = y3[2, 10]
84-
85-y4_tidal_degree2_interface1 = y4[2, 0]
86-y4_tidal_degree2_interface2 = y4[2, 1]
87-y4_tidal_degree2_interface7 = y4[2, 6]
88-y4_tidal_degree2_interface10 = y4[2, 9]
89-y4_tidal_degree2_interface11 = y4[2, 10]
90-
91-y5_tidal_degree2_interface1 = y5[2, 0]
92-y5_tidal_degree2_interface2 = y5[2, 1]
93-y5_tidal_degree2_interface7 = y5[2, 6]
94-y5_tidal_degree2_interface10 = y5[2, 9]
95-y5_tidal_degree2_interface11 = y5[2, 10]
96-
97-y6_tidal_degree2_interface1 = y6[2, 0]
98-y6_tidal_degree2_interface2 = y6[2, 1]
99-y6_tidal_degree2_interface7 = y6[2, 6]
100-y6_tidal_degree2_interface10 = y6[2, 9]
101-y6_tidal_degree2_interface11 = y6[2, 10]
102+# degree 200
103+y1_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,0].squeeze()
104+y2_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,1].squeeze()
105+y3_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,2].squeeze()
106+y4_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,3].squeeze()
107+y5_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,4].squeeze()
108+y6_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,5].squeeze()
109 #}}}
110
111 # For surface load
112@@ -97,92 +82,52 @@
113 md = solve(md,'lv')
114
115 # Extract love kernels #{{{
116-y1 = md.results.LoveSolution.LoveKernelsReal[:,0,:,0].squeeze()
117-y2 = md.results.LoveSolution.LoveKernelsReal[:,0,:,1].squeeze()
118-y3 = md.results.LoveSolution.LoveKernelsReal[:,0,:,2].squeeze()
119-y4 = md.results.LoveSolution.LoveKernelsReal[:,0,:,3].squeeze()
120-y5 = md.results.LoveSolution.LoveKernelsReal[:,0,:,4].squeeze()
121-y6 = md.results.LoveSolution.LoveKernelsReal[:,0,:,5].squeeze()
122+# degree 2
123+y1_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,0].squeeze()
124+y2_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,1].squeeze()
125+y3_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,2].squeeze()
126+y4_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,3].squeeze()
127+y5_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,4].squeeze()
128+y6_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,5].squeeze()
129
130-y1_load_degree2_interface1 = y1[2, 0]
131-y1_load_degree2_interface2 = y1[2, 1]
132-y1_load_degree2_interface7 = y1[2, 6]
133-y1_load_degree2_interface10 = y1[2, 9]
134-y1_load_degree2_interface11 = y1[2, 10]
135+# degree 20
136+y1_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,0].squeeze()
137+y2_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,1].squeeze()
138+y3_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,2].squeeze()
139+y4_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,3].squeeze()
140+y5_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,4].squeeze()
141+y6_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,5].squeeze()
142
143-y2_load_degree2_interface1 = y2[2, 0]
144-y2_load_degree2_interface2 = y2[2, 1]
145-y2_load_degree2_interface7 = y2[2, 6]
146-y2_load_degree2_interface10 = y2[2, 9]
147-y2_load_degree2_interface11 = y2[2, 10]
148-
149-y3_load_degree2_interface1 = y3[2, 0]
150-y3_load_degree2_interface2 = y3[2, 1]
151-y3_load_degree2_interface7 = y3[2, 6]
152-y3_load_degree2_interface10 = y3[2, 9]
153-y3_load_degree2_interface11 = y3[2, 10]
154-
155-y4_load_degree2_interface1 = y4[2, 0]
156-y4_load_degree2_interface2 = y4[2, 1]
157-y4_load_degree2_interface7 = y4[2, 6]
158-y4_load_degree2_interface10 = y4[2, 9]
159-y4_load_degree2_interface11 = y4[2, 10]
160-
161-y5_load_degree2_interface1 = y5[2, 0]
162-y5_load_degree2_interface2 = y5[2, 1]
163-y5_load_degree2_interface7 = y5[2, 6]
164-y5_load_degree2_interface10 = y5[2, 9]
165-y5_load_degree2_interface11 = y5[2, 10]
166-
167-y6_load_degree2_interface1 = y6[2, 0]
168-y6_load_degree2_interface2 = y6[2, 1]
169-y6_load_degree2_interface7 = y6[2, 6]
170-y6_load_degree2_interface10 = y6[2, 9]
171-y6_load_degree2_interface11 = y6[2, 10]
172+# degree 200
173+y1_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,0].squeeze()
174+y2_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,1].squeeze()
175+y3_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,2].squeeze()
176+y4_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,3].squeeze()
177+y5_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,4].squeeze()
178+y6_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,5].squeeze()
179 #}}}
180
181-
182-#Fields and tolerances to track changes
183-#loading love numbers
184 field_names = [
185- 'y1_tidal_degree2_interface1', 'y1_tidal_degree2_interface2', 'y1_tidal_degree2_interface7', 'y1_tidal_degree2_interface10', 'y1_tidal_degree2_interface11',
186- 'y2_tidal_degree2_interface1', 'y2_tidal_degree2_interface2', 'y2_tidal_degree2_interface7', 'y2_tidal_degree2_interface10', 'y2_tidal_degree2_interface11',
187- 'y3_tidal_degree2_interface1', 'y3_tidal_degree2_interface2', 'y3_tidal_degree2_interface7', 'y3_tidal_degree2_interface10', 'y3_tidal_degree2_interface11',
188- 'y4_tidal_degree2_interface1', 'y4_tidal_degree2_interface2', 'y4_tidal_degree2_interface7', 'y4_tidal_degree2_interface10', 'y4_tidal_degree2_interface11',
189- 'y5_tidal_degree2_interface1', 'y5_tidal_degree2_interface2', 'y5_tidal_degree2_interface7', 'y5_tidal_degree2_interface10', 'y5_tidal_degree2_interface11',
190- 'y6_tidal_degree2_interface1', 'y6_tidal_degree2_interface2', 'y6_tidal_degree2_interface7', 'y6_tidal_degree2_interface10', 'y6_tidal_degree2_interface11',
191- 'y1_load_degree2_interface1', 'y1_load_degree2_interface2', 'y1_load_degree2_interface7', 'y1_load_degree2_interface10', 'y1_load_degree2_interface11',
192- 'y2_load_degree2_interface1', 'y2_load_degree2_interface2', 'y2_load_degree2_interface7', 'y2_load_degree2_interface10', 'y2_load_degree2_interface11',
193- 'y3_load_degree2_interface1', 'y3_load_degree2_interface2', 'y3_load_degree2_interface7', 'y3_load_degree2_interface10', 'y3_load_degree2_interface11',
194- 'y4_load_degree2_interface1', 'y4_load_degree2_interface2', 'y4_load_degree2_interface7', 'y4_load_degree2_interface10', 'y4_load_degree2_interface11',
195- 'y5_load_degree2_interface1', 'y5_load_degree2_interface2', 'y5_load_degree2_interface7', 'y5_load_degree2_interface10', 'y5_load_degree2_interface11',
196- 'y6_load_degree2_interface1', 'y6_load_degree2_interface2', 'y6_load_degree2_interface7', 'y6_load_degree2_interface10', 'y6_load_degree2_interface11'
197+ 'y1_tidal_degree002', 'y2_tidal_degree002', 'y3_tidal_degree002', 'y4_tidal_degree002', 'y5_tidal_degree002', 'y6_tidal_degree002',
198+ 'y1_tidal_degree020', 'y2_tidal_degree020', 'y3_tidal_degree020', 'y4_tidal_degree020', 'y5_tidal_degree020', 'y6_tidal_degree020',
199+ 'y1_tidal_degree200', 'y2_tidal_degree200', 'y3_tidal_degree200', 'y4_tidal_degree200', 'y5_tidal_degree200', 'y6_tidal_degree200',
200+ 'y1_loading_degree002', 'y2_loading_degree002', 'y3_loading_degree002', 'y4_loading_degree002', 'y5_loading_degree002', 'y6_loading_degree002',
201+ 'y1_loading_degree020', 'y2_loading_degree020', 'y3_loading_degree020', 'y4_loading_degree020', 'y5_loading_degree020', 'y6_loading_degree020',
202+ 'y1_loading_degree200', 'y2_loading_degree200', 'y3_loading_degree200', 'y4_loading_degree200', 'y5_loading_degree200', 'y6_loading_degree200'
203 ]
204 field_tolerances = [
205- 9e-8, 1e-7, 3e-7, 3e-7, 3e-7,
206- 9e-8, 1e-7, 3e-7, 3e-7, 1e-10,
207- 9e-8, 8e-8, 2e-8, 2e-7, 4e-7,
208- 9e-8, 9e-8, 2e-7, 4e-7, 1e-10,
209- 4e-7, 4e-7, 2e-7, 3e-8, 2e-8,
210- 2e-5, 2e-6, 2e-6, 1e-6, 2e-7,
211- 3e-6, 3e-6, 3e-6, 4e-6, 4e-6,
212- 3e-6, 3e-6, 2e-6, 6e-7, 1e-10,
213- 3e-6, 3e-6, 5e-7, 3e-6, 5e-6,
214- 3e-6, 3e-6, 9e-7, 7e-7, 1e-10,
215- 4e-6, 4e-6, 3e-6, 5e-7, 3e-7,
216- 3e-6, 3e-6, 2e-6, 7e-7, 2e-7
217+ 3e-7, 3e-7, 3e-7, 1e-7, 6e-8, 9e-7,
218+ 2e-7, 7e-8, 3e-7, 9e-8, 9e-10, 8e-10,
219+ 2e-8, 4e-8, 4e-7, 3e-8, 2e-10, 1e-10,
220+ 4e-6, 1e-6, 4e-6, 3e-6, 8e-7, 2e-6,
221+ 2e-6, 1e-7, 5e-6, 3e-7, 2e-7, 2e-7,
222+ 2e-6, 9e-10, 5e-5, 3e-8, 5e-7, 2e-9
223 ]
224 field_values = [
225- y1_tidal_degree2_interface1, y1_tidal_degree2_interface2, y1_tidal_degree2_interface7, y1_tidal_degree2_interface10,y1_tidal_degree2_interface11,
226- y2_tidal_degree2_interface1, y2_tidal_degree2_interface2, y2_tidal_degree2_interface7, y2_tidal_degree2_interface10,y2_tidal_degree2_interface11,
227- y3_tidal_degree2_interface1, y3_tidal_degree2_interface2, y3_tidal_degree2_interface7, y3_tidal_degree2_interface10,y3_tidal_degree2_interface11,
228- y4_tidal_degree2_interface1, y4_tidal_degree2_interface2, y4_tidal_degree2_interface7, y4_tidal_degree2_interface10,y4_tidal_degree2_interface11,
229- y5_tidal_degree2_interface1, y5_tidal_degree2_interface2, y5_tidal_degree2_interface7, y5_tidal_degree2_interface10,y5_tidal_degree2_interface11,
230- y6_tidal_degree2_interface1, y6_tidal_degree2_interface2, y6_tidal_degree2_interface7, y6_tidal_degree2_interface10,y6_tidal_degree2_interface11,
231- y1_load_degree2_interface1, y1_load_degree2_interface2, y1_load_degree2_interface7, y1_load_degree2_interface10,y1_load_degree2_interface11,
232- y2_load_degree2_interface1, y2_load_degree2_interface2, y2_load_degree2_interface7, y2_load_degree2_interface10,y2_load_degree2_interface11,
233- y3_load_degree2_interface1, y3_load_degree2_interface2, y3_load_degree2_interface7, y3_load_degree2_interface10,y3_load_degree2_interface11,
234- y4_load_degree2_interface1, y4_load_degree2_interface2, y4_load_degree2_interface7, y4_load_degree2_interface10,y4_load_degree2_interface11,
235- y5_load_degree2_interface1, y5_load_degree2_interface2, y5_load_degree2_interface7, y5_load_degree2_interface10,y5_load_degree2_interface11,
236- y6_load_degree2_interface1, y6_load_degree2_interface2, y6_load_degree2_interface7, y6_load_degree2_interface10,y6_load_degree2_interface11
237+ y1_tidal_degree002, y2_tidal_degree002, y3_tidal_degree002, y4_tidal_degree002, y5_tidal_degree002, y6_tidal_degree002,
238+ y1_tidal_degree020, y2_tidal_degree020, y3_tidal_degree020, y4_tidal_degree020, y5_tidal_degree020, y6_tidal_degree020,
239+ y1_tidal_degree200, y2_tidal_degree200, y3_tidal_degree200, y4_tidal_degree200, y5_tidal_degree200, y6_tidal_degree200,
240+ y1_loading_degree002, y2_loading_degree002, y3_loading_degree002, y4_loading_degree002, y5_loading_degree002, y6_loading_degree002,
241+ y1_loading_degree020, y2_loading_degree020, y3_loading_degree020, y4_loading_degree020, y5_loading_degree020, y6_loading_degree020,
242+ y1_loading_degree200, y2_loading_degree200, y3_loading_degree200, y4_loading_degree200, y5_loading_degree200, y6_loading_degree200
243 ]
244Index: ../trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh
245===================================================================
246--- ../trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh (revision 25341)
247+++ ../trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh (revision 25342)
248@@ -13,7 +13,7 @@
249 MATLAB_NROPTIONS="'benchmark','slr'"
250 MATLAB_PATH="/usr/local/MATLAB/R2019b"
251 PACKAGE="ISSM-Solid_Earth" # Name of directory to copy distributable files to
252-PYTHON_NROPTIONS="--benchmark slr"
253+PYTHON_NROPTIONS="--benchmark slr --exclude 2004"
254 TARBALL_NAME="issm-linux-solid_earth"
255 TARBALL="${TARBALL_NAME}.tar.gz"
256
257Index: ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh
258===================================================================
259--- ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh (revision 25341)
260+++ ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh (revision 25342)
261@@ -11,7 +11,7 @@
262 MATLAB_NROPTIONS="'benchmark','slr'"
263 MATLAB_PATH="/Applications/MATLAB_R2018a.app"
264 PACKAGE="ISSM-Solid_Earth" # Name of directory to copy distributable files to
265-PYTHON_NROPTIONS="--benchmark slr"
266+PYTHON_NROPTIONS="--benchmark slr --exclude 2004"
267 TARBALL_NAME="issm-linux-solid_earth"
268 TARBALL="${TARBALL_NAME}.tar.gz"
269
270Index: ../trunk-jpl/jenkins/ross-debian_linux-solid_earth
271===================================================================
272--- ../trunk-jpl/jenkins/ross-debian_linux-solid_earth (revision 25341)
273+++ ../trunk-jpl/jenkins/ross-debian_linux-solid_earth (revision 25342)
274@@ -76,4 +76,4 @@
275 # See documentation in test/NightlyRun/runme.* for more information.
276 #
277 MATLAB_NROPTIONS="'benchmark','slr'"
278-PYTHON_NROPTIONS="--benchmark=slr"
279+PYTHON_NROPTIONS="--benchmark slr --exclude 2004"
280Index: ../trunk-jpl/test/NightlyRun/test2085.m
281===================================================================
282--- ../trunk-jpl/test/NightlyRun/test2085.m (revision 25341)
283+++ ../trunk-jpl/test/NightlyRun/test2085.m (revision 25342)
284@@ -106,12 +106,12 @@
285 'y1_loading_degree200','y2_loading_degree200','y3_loading_degree200','y4_loading_degree200','y5_loading_degree200','y6_loading_degree200',...
286 };
287 field_tolerances={...
288- 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,...
289- 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,...
290- 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,...
291- 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,...
292- 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,...
293- 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,...
294+ 3e-7, 3e-7, 3e-7, 1e-7, 6e-8, 9e-7,...
295+ 2e-7, 7e-8, 3e-7, 9e-8, 9e-10, 8e-10,...
296+ 2e-8, 4e-8, 4e-7, 3e-8, 2e-10, 1e-10,...
297+ 4e-6, 1e-6, 4e-6, 3e-6, 8e-7, 2e-6,...
298+ 2e-6, 1e-7, 5e-6, 3e-7, 2e-7, 2e-7,...
299+ 2e-6, 9e-10, 5e-5, 3e-8, 5e-7, 2e-9...
300 };
301 field_values={...
302 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.