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
  • ../trunk-jpl/test/NightlyRun/test2085.py

     
    11# Test Name: FourierLoveKernels
    22# 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.
    45
    56
    67from socket import gethostname
     
    1213from model import *
    1314from solve import *
    1415
    15 # Fro volumetric potential
     16# For volumetric potential
    1617md = model()
    1718
    1819md.materials = materials('litho')
    1920
    20 md.materials.numlayers = 10
     21md.materials.numlayers = 40
    2122md.love.forcing_type = 9
    2223
    2324md.materials.density = np.zeros((md.materials.numlayers, 1)) + 5511
     
    3738md.love.nfreq = 1
    3839
    3940md.love.sh_nmin = 2
    40 md.love.sh_nmax = 2
     41md.love.sh_nmax = 200
    4142md.love.love_kernels = 1
    4243
    4344md.miscellaneous.name = 'kernels'
     
    4647
    4748md = solve(md,'lv')
    4849
     50# Save yi's for all layers except for the inner-most one, at select degrees.
     51degrees = [2, 20, 200] # we archive solutions for degrees 2, 20, 200
     52
    4953# 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
     55y1_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,0].squeeze()
     56y2_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,1].squeeze()
     57y3_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,2].squeeze()
     58y4_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,3].squeeze()
     59y5_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,4].squeeze()
     60y6_tidal_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,5].squeeze()
    5661
    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
     63y1_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,0].squeeze()
     64y2_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,1].squeeze()
     65y3_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,2].squeeze()
     66y4_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,3].squeeze()
     67y5_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,4].squeeze()
     68y6_tidal_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,5].squeeze()
    6269
    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
     71y1_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,0].squeeze()
     72y2_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,1].squeeze()
     73y3_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,2].squeeze()
     74y4_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,3].squeeze()
     75y5_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,4].squeeze()
     76y6_tidal_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,5].squeeze()
    9277#}}}
    9378
    9479# For surface load
     
    9782md = solve(md,'lv')
    9883
    9984# 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
     86y1_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,0].squeeze()
     87y2_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,1].squeeze()
     88y3_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,2].squeeze()
     89y4_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,3].squeeze()
     90y5_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,4].squeeze()
     91y6_loading_degree002 = md.results.LoveSolution.LoveKernelsReal[degrees[0],0,1:,5].squeeze()
    10692
    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
     94y1_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,0].squeeze()
     95y2_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,1].squeeze()
     96y3_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,2].squeeze()
     97y4_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,3].squeeze()
     98y5_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,4].squeeze()
     99y6_loading_degree020 = md.results.LoveSolution.LoveKernelsReal[degrees[1],0,1:,5].squeeze()
    112100
    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
     102y1_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,0].squeeze()
     103y2_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,1].squeeze()
     104y3_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,2].squeeze()
     105y4_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,3].squeeze()
     106y5_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,4].squeeze()
     107y6_loading_degree200 = md.results.LoveSolution.LoveKernelsReal[degrees[2],0,1:,5].squeeze()
    142108#}}}
    143109
    144 
    145 #Fields and tolerances to track changes
    146 #loading love numbers
    147110field_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'
    160117    ]
    161118field_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
    174125    ]
    175126field_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
    188133    ]
  • ../trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh

     
    1313MATLAB_NROPTIONS="'benchmark','slr'"
    1414MATLAB_PATH="/usr/local/MATLAB/R2019b"
    1515PACKAGE="ISSM-Solid_Earth" # Name of directory to copy distributable files to
    16 PYTHON_NROPTIONS="--benchmark slr"
     16PYTHON_NROPTIONS="--benchmark slr --exclude 2004"
    1717TARBALL_NAME="issm-linux-solid_earth"
    1818TARBALL="${TARBALL_NAME}.tar.gz"
    1919
  • ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh

     
    1111MATLAB_NROPTIONS="'benchmark','slr'"
    1212MATLAB_PATH="/Applications/MATLAB_R2018a.app"
    1313PACKAGE="ISSM-Solid_Earth" # Name of directory to copy distributable files to
    14 PYTHON_NROPTIONS="--benchmark slr"
     14PYTHON_NROPTIONS="--benchmark slr --exclude 2004"
    1515TARBALL_NAME="issm-linux-solid_earth"
    1616TARBALL="${TARBALL_NAME}.tar.gz"
    1717
  • ../trunk-jpl/jenkins/ross-debian_linux-solid_earth

     
    7676# See documentation in test/NightlyRun/runme.* for more information.
    7777#
    7878MATLAB_NROPTIONS="'benchmark','slr'"
    79 PYTHON_NROPTIONS="--benchmark=slr"
     79PYTHON_NROPTIONS="--benchmark slr --exclude 2004"
  • ../trunk-jpl/test/NightlyRun/test2085.m

     
    106106        'y1_loading_degree200','y2_loading_degree200','y3_loading_degree200','y4_loading_degree200','y5_loading_degree200','y6_loading_degree200',...
    107107        };
    108108field_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...
    115115        };
    116116field_values={...
    117117        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.