Index: ../trunk-jpl/test/NightlyRun/test2085.py =================================================================== --- ../trunk-jpl/test/NightlyRun/test2085.py (revision 25341) +++ ../trunk-jpl/test/NightlyRun/test2085.py (revision 25342) @@ -1,6 +1,7 @@ # Test Name: FourierLoveKernels # Homogenous Earth, for which analytic solutions exist. -# Love kernels for degree 2 (tested against analytic solns). +# Love kernels for degree 2, 20, 200 (tested against analytic solns). +# Skip benchmarking for the inner-most interface. from socket import gethostname @@ -12,12 +13,12 @@ from model import * from solve import * -# Fro volumetric potential +# For volumetric potential md = model() md.materials = materials('litho') -md.materials.numlayers = 10 +md.materials.numlayers = 40 md.love.forcing_type = 9 md.materials.density = np.zeros((md.materials.numlayers, 1)) + 5511 @@ -37,7 +38,7 @@ md.love.nfreq = 1 md.love.sh_nmin = 2 -md.love.sh_nmax = 2 +md.love.sh_nmax = 200 md.love.love_kernels = 1 md.miscellaneous.name = 'kernels' @@ -46,49 +47,33 @@ md = solve(md,'lv') +# Save yi's for all layers except for the inner-most one, at select degrees. +degrees = [2, 20, 200] # we archive solutions for degrees 2, 20, 200 + # Extract love kernels #{{{ -y1 = md.results.LoveSolution.LoveKernelsReal[:,0,:,0].squeeze() -y2 = md.results.LoveSolution.LoveKernelsReal[:,0,:,1].squeeze() -y3 = md.results.LoveSolution.LoveKernelsReal[:,0,:,2].squeeze() -y4 = md.results.LoveSolution.LoveKernelsReal[:,0,:,3].squeeze() -y5 = md.results.LoveSolution.LoveKernelsReal[:,0,:,4].squeeze() -y6 = md.results.LoveSolution.LoveKernelsReal[:,0,:,5].squeeze() +# degree 2 +y1_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,0].squeeze() +y2_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,1].squeeze() +y3_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,2].squeeze() +y4_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,3].squeeze() +y5_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,4].squeeze() +y6_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,5].squeeze() -y1_tidal_degree2_interface1 = y1[2, 0] -y1_tidal_degree2_interface2 = y1[2, 1] -y1_tidal_degree2_interface7 = y1[2, 6] -y1_tidal_degree2_interface10 = y1[2, 9] -y1_tidal_degree2_interface11 = y1[2, 10] +# degree 20 +y1_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,0].squeeze() +y2_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,1].squeeze() +y3_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,2].squeeze() +y4_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,3].squeeze() +y5_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,4].squeeze() +y6_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,5].squeeze() -y2_tidal_degree2_interface1 = y2[2, 0] -y2_tidal_degree2_interface2 = y2[2, 1] -y2_tidal_degree2_interface7 = y2[2, 6] -y2_tidal_degree2_interface10 = y2[2, 9] -y2_tidal_degree2_interface11 = y2[2, 10] - -y3_tidal_degree2_interface1 = y3[2, 0] -y3_tidal_degree2_interface2 = y3[2, 1] -y3_tidal_degree2_interface7 = y3[2, 6] -y3_tidal_degree2_interface10 = y3[2, 9] -y3_tidal_degree2_interface11 = y3[2, 10] - -y4_tidal_degree2_interface1 = y4[2, 0] -y4_tidal_degree2_interface2 = y4[2, 1] -y4_tidal_degree2_interface7 = y4[2, 6] -y4_tidal_degree2_interface10 = y4[2, 9] -y4_tidal_degree2_interface11 = y4[2, 10] - -y5_tidal_degree2_interface1 = y5[2, 0] -y5_tidal_degree2_interface2 = y5[2, 1] -y5_tidal_degree2_interface7 = y5[2, 6] -y5_tidal_degree2_interface10 = y5[2, 9] -y5_tidal_degree2_interface11 = y5[2, 10] - -y6_tidal_degree2_interface1 = y6[2, 0] -y6_tidal_degree2_interface2 = y6[2, 1] -y6_tidal_degree2_interface7 = y6[2, 6] -y6_tidal_degree2_interface10 = y6[2, 9] -y6_tidal_degree2_interface11 = y6[2, 10] +# degree 200 +y1_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,0].squeeze() +y2_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,1].squeeze() +y3_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,2].squeeze() +y4_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,3].squeeze() +y5_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,4].squeeze() +y6_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,5].squeeze() #}}} # For surface load @@ -97,92 +82,52 @@ md = solve(md,'lv') # Extract love kernels #{{{ -y1 = md.results.LoveSolution.LoveKernelsReal[:,0,:,0].squeeze() -y2 = md.results.LoveSolution.LoveKernelsReal[:,0,:,1].squeeze() -y3 = md.results.LoveSolution.LoveKernelsReal[:,0,:,2].squeeze() -y4 = md.results.LoveSolution.LoveKernelsReal[:,0,:,3].squeeze() -y5 = md.results.LoveSolution.LoveKernelsReal[:,0,:,4].squeeze() -y6 = md.results.LoveSolution.LoveKernelsReal[:,0,:,5].squeeze() +# degree 2 +y1_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,0].squeeze() +y2_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,1].squeeze() +y3_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,2].squeeze() +y4_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,3].squeeze() +y5_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,4].squeeze() +y6_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,5].squeeze() -y1_load_degree2_interface1 = y1[2, 0] -y1_load_degree2_interface2 = y1[2, 1] -y1_load_degree2_interface7 = y1[2, 6] -y1_load_degree2_interface10 = y1[2, 9] -y1_load_degree2_interface11 = y1[2, 10] +# degree 20 +y1_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,0].squeeze() +y2_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,1].squeeze() +y3_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,2].squeeze() +y4_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,3].squeeze() +y5_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,4].squeeze() +y6_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,5].squeeze() -y2_load_degree2_interface1 = y2[2, 0] -y2_load_degree2_interface2 = y2[2, 1] -y2_load_degree2_interface7 = y2[2, 6] -y2_load_degree2_interface10 = y2[2, 9] -y2_load_degree2_interface11 = y2[2, 10] - -y3_load_degree2_interface1 = y3[2, 0] -y3_load_degree2_interface2 = y3[2, 1] -y3_load_degree2_interface7 = y3[2, 6] -y3_load_degree2_interface10 = y3[2, 9] -y3_load_degree2_interface11 = y3[2, 10] - -y4_load_degree2_interface1 = y4[2, 0] -y4_load_degree2_interface2 = y4[2, 1] -y4_load_degree2_interface7 = y4[2, 6] -y4_load_degree2_interface10 = y4[2, 9] -y4_load_degree2_interface11 = y4[2, 10] - -y5_load_degree2_interface1 = y5[2, 0] -y5_load_degree2_interface2 = y5[2, 1] -y5_load_degree2_interface7 = y5[2, 6] -y5_load_degree2_interface10 = y5[2, 9] -y5_load_degree2_interface11 = y5[2, 10] - -y6_load_degree2_interface1 = y6[2, 0] -y6_load_degree2_interface2 = y6[2, 1] -y6_load_degree2_interface7 = y6[2, 6] -y6_load_degree2_interface10 = y6[2, 9] -y6_load_degree2_interface11 = y6[2, 10] +# degree 200 +y1_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,0].squeeze() +y2_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,1].squeeze() +y3_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,2].squeeze() +y4_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,3].squeeze() +y5_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,4].squeeze() +y6_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,5].squeeze() #}}} - -#Fields and tolerances to track changes -#loading love numbers field_names = [ - 'y1_tidal_degree2_interface1', 'y1_tidal_degree2_interface2', 'y1_tidal_degree2_interface7', 'y1_tidal_degree2_interface10', 'y1_tidal_degree2_interface11', - 'y2_tidal_degree2_interface1', 'y2_tidal_degree2_interface2', 'y2_tidal_degree2_interface7', 'y2_tidal_degree2_interface10', 'y2_tidal_degree2_interface11', - 'y3_tidal_degree2_interface1', 'y3_tidal_degree2_interface2', 'y3_tidal_degree2_interface7', 'y3_tidal_degree2_interface10', 'y3_tidal_degree2_interface11', - 'y4_tidal_degree2_interface1', 'y4_tidal_degree2_interface2', 'y4_tidal_degree2_interface7', 'y4_tidal_degree2_interface10', 'y4_tidal_degree2_interface11', - 'y5_tidal_degree2_interface1', 'y5_tidal_degree2_interface2', 'y5_tidal_degree2_interface7', 'y5_tidal_degree2_interface10', 'y5_tidal_degree2_interface11', - 'y6_tidal_degree2_interface1', 'y6_tidal_degree2_interface2', 'y6_tidal_degree2_interface7', 'y6_tidal_degree2_interface10', 'y6_tidal_degree2_interface11', - 'y1_load_degree2_interface1', 'y1_load_degree2_interface2', 'y1_load_degree2_interface7', 'y1_load_degree2_interface10', 'y1_load_degree2_interface11', - 'y2_load_degree2_interface1', 'y2_load_degree2_interface2', 'y2_load_degree2_interface7', 'y2_load_degree2_interface10', 'y2_load_degree2_interface11', - 'y3_load_degree2_interface1', 'y3_load_degree2_interface2', 'y3_load_degree2_interface7', 'y3_load_degree2_interface10', 'y3_load_degree2_interface11', - 'y4_load_degree2_interface1', 'y4_load_degree2_interface2', 'y4_load_degree2_interface7', 'y4_load_degree2_interface10', 'y4_load_degree2_interface11', - 'y5_load_degree2_interface1', 'y5_load_degree2_interface2', 'y5_load_degree2_interface7', 'y5_load_degree2_interface10', 'y5_load_degree2_interface11', - 'y6_load_degree2_interface1', 'y6_load_degree2_interface2', 'y6_load_degree2_interface7', 'y6_load_degree2_interface10', 'y6_load_degree2_interface11' + 'y1_tidal_degree002', 'y2_tidal_degree002', 'y3_tidal_degree002', 'y4_tidal_degree002', 'y5_tidal_degree002', 'y6_tidal_degree002', + 'y1_tidal_degree020', 'y2_tidal_degree020', 'y3_tidal_degree020', 'y4_tidal_degree020', 'y5_tidal_degree020', 'y6_tidal_degree020', + 'y1_tidal_degree200', 'y2_tidal_degree200', 'y3_tidal_degree200', 'y4_tidal_degree200', 'y5_tidal_degree200', 'y6_tidal_degree200', + 'y1_loading_degree002', 'y2_loading_degree002', 'y3_loading_degree002', 'y4_loading_degree002', 'y5_loading_degree002', 'y6_loading_degree002', + 'y1_loading_degree020', 'y2_loading_degree020', 'y3_loading_degree020', 'y4_loading_degree020', 'y5_loading_degree020', 'y6_loading_degree020', + 'y1_loading_degree200', 'y2_loading_degree200', 'y3_loading_degree200', 'y4_loading_degree200', 'y5_loading_degree200', 'y6_loading_degree200' ] field_tolerances = [ - 9e-8, 1e-7, 3e-7, 3e-7, 3e-7, - 9e-8, 1e-7, 3e-7, 3e-7, 1e-10, - 9e-8, 8e-8, 2e-8, 2e-7, 4e-7, - 9e-8, 9e-8, 2e-7, 4e-7, 1e-10, - 4e-7, 4e-7, 2e-7, 3e-8, 2e-8, - 2e-5, 2e-6, 2e-6, 1e-6, 2e-7, - 3e-6, 3e-6, 3e-6, 4e-6, 4e-6, - 3e-6, 3e-6, 2e-6, 6e-7, 1e-10, - 3e-6, 3e-6, 5e-7, 3e-6, 5e-6, - 3e-6, 3e-6, 9e-7, 7e-7, 1e-10, - 4e-6, 4e-6, 3e-6, 5e-7, 3e-7, - 3e-6, 3e-6, 2e-6, 7e-7, 2e-7 + 3e-7, 3e-7, 3e-7, 1e-7, 6e-8, 9e-7, + 2e-7, 7e-8, 3e-7, 9e-8, 9e-10, 8e-10, + 2e-8, 4e-8, 4e-7, 3e-8, 2e-10, 1e-10, + 4e-6, 1e-6, 4e-6, 3e-6, 8e-7, 2e-6, + 2e-6, 1e-7, 5e-6, 3e-7, 2e-7, 2e-7, + 2e-6, 9e-10, 5e-5, 3e-8, 5e-7, 2e-9 ] field_values = [ - y1_tidal_degree2_interface1, y1_tidal_degree2_interface2, y1_tidal_degree2_interface7, y1_tidal_degree2_interface10,y1_tidal_degree2_interface11, - y2_tidal_degree2_interface1, y2_tidal_degree2_interface2, y2_tidal_degree2_interface7, y2_tidal_degree2_interface10,y2_tidal_degree2_interface11, - y3_tidal_degree2_interface1, y3_tidal_degree2_interface2, y3_tidal_degree2_interface7, y3_tidal_degree2_interface10,y3_tidal_degree2_interface11, - y4_tidal_degree2_interface1, y4_tidal_degree2_interface2, y4_tidal_degree2_interface7, y4_tidal_degree2_interface10,y4_tidal_degree2_interface11, - y5_tidal_degree2_interface1, y5_tidal_degree2_interface2, y5_tidal_degree2_interface7, y5_tidal_degree2_interface10,y5_tidal_degree2_interface11, - y6_tidal_degree2_interface1, y6_tidal_degree2_interface2, y6_tidal_degree2_interface7, y6_tidal_degree2_interface10,y6_tidal_degree2_interface11, - y1_load_degree2_interface1, y1_load_degree2_interface2, y1_load_degree2_interface7, y1_load_degree2_interface10,y1_load_degree2_interface11, - y2_load_degree2_interface1, y2_load_degree2_interface2, y2_load_degree2_interface7, y2_load_degree2_interface10,y2_load_degree2_interface11, - y3_load_degree2_interface1, y3_load_degree2_interface2, y3_load_degree2_interface7, y3_load_degree2_interface10,y3_load_degree2_interface11, - y4_load_degree2_interface1, y4_load_degree2_interface2, y4_load_degree2_interface7, y4_load_degree2_interface10,y4_load_degree2_interface11, - y5_load_degree2_interface1, y5_load_degree2_interface2, y5_load_degree2_interface7, y5_load_degree2_interface10,y5_load_degree2_interface11, - y6_load_degree2_interface1, y6_load_degree2_interface2, y6_load_degree2_interface7, y6_load_degree2_interface10,y6_load_degree2_interface11 + y1_tidal_degree002, y2_tidal_degree002, y3_tidal_degree002, y4_tidal_degree002, y5_tidal_degree002, y6_tidal_degree002, + y1_tidal_degree020, y2_tidal_degree020, y3_tidal_degree020, y4_tidal_degree020, y5_tidal_degree020, y6_tidal_degree020, + y1_tidal_degree200, y2_tidal_degree200, y3_tidal_degree200, y4_tidal_degree200, y5_tidal_degree200, y6_tidal_degree200, + y1_loading_degree002, y2_loading_degree002, y3_loading_degree002, y4_loading_degree002, y5_loading_degree002, y6_loading_degree002, + y1_loading_degree020, y2_loading_degree020, y3_loading_degree020, y4_loading_degree020, y5_loading_degree020, y6_loading_degree020, + y1_loading_degree200, y2_loading_degree200, y3_loading_degree200, y4_loading_degree200, y5_loading_degree200, y6_loading_degree200 ] Index: ../trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh =================================================================== --- ../trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh (revision 25341) +++ ../trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh (revision 25342) @@ -13,7 +13,7 @@ MATLAB_NROPTIONS="'benchmark','slr'" MATLAB_PATH="/usr/local/MATLAB/R2019b" PACKAGE="ISSM-Solid_Earth" # Name of directory to copy distributable files to -PYTHON_NROPTIONS="--benchmark slr" +PYTHON_NROPTIONS="--benchmark slr --exclude 2004" TARBALL_NAME="issm-linux-solid_earth" TARBALL="${TARBALL_NAME}.tar.gz" Index: ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh =================================================================== --- ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh (revision 25341) +++ ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh (revision 25342) @@ -11,7 +11,7 @@ MATLAB_NROPTIONS="'benchmark','slr'" MATLAB_PATH="/Applications/MATLAB_R2018a.app" PACKAGE="ISSM-Solid_Earth" # Name of directory to copy distributable files to -PYTHON_NROPTIONS="--benchmark slr" +PYTHON_NROPTIONS="--benchmark slr --exclude 2004" TARBALL_NAME="issm-linux-solid_earth" TARBALL="${TARBALL_NAME}.tar.gz" Index: ../trunk-jpl/jenkins/ross-debian_linux-solid_earth =================================================================== --- ../trunk-jpl/jenkins/ross-debian_linux-solid_earth (revision 25341) +++ ../trunk-jpl/jenkins/ross-debian_linux-solid_earth (revision 25342) @@ -76,4 +76,4 @@ # See documentation in test/NightlyRun/runme.* for more information. # MATLAB_NROPTIONS="'benchmark','slr'" -PYTHON_NROPTIONS="--benchmark=slr" +PYTHON_NROPTIONS="--benchmark slr --exclude 2004" Index: ../trunk-jpl/test/NightlyRun/test2085.m =================================================================== --- ../trunk-jpl/test/NightlyRun/test2085.m (revision 25341) +++ ../trunk-jpl/test/NightlyRun/test2085.m (revision 25342) @@ -106,12 +106,12 @@ 'y1_loading_degree200','y2_loading_degree200','y3_loading_degree200','y4_loading_degree200','y5_loading_degree200','y6_loading_degree200',... }; field_tolerances={... - 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,... - 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,... - 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,... - 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,... - 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,... - 1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10,... + 3e-7, 3e-7, 3e-7, 1e-7, 6e-8, 9e-7,... + 2e-7, 7e-8, 3e-7, 9e-8, 9e-10, 8e-10,... + 2e-8, 4e-8, 4e-7, 3e-8, 2e-10, 1e-10,... + 4e-6, 1e-6, 4e-6, 3e-6, 8e-7, 2e-6,... + 2e-6, 1e-7, 5e-6, 3e-7, 2e-7, 2e-7,... + 2e-6, 9e-10, 5e-5, 3e-8, 5e-7, 2e-9... }; field_values={... y1_tidal_degree002,y2_tidal_degree002,y3_tidal_degree002,y4_tidal_degree002,y5_tidal_degree002,y6_tidal_degree002,...