├── README.md └── SASEM_viscoelastic_normal_modes ├── 4_layered_model.csv ├── GetGLL.m ├── GetGRL.m ├── LVL_elastic_model.csv ├── LVL_viscoelastic_model.csv ├── Muller_4_layer_dispersion.mat ├── Muller_4_layer_dispersion_incomplete.mat ├── backpropagation_wave_model.csv ├── gll ├── gll_03.tab ├── gll_04.tab ├── gll_05.tab ├── gll_06.tab ├── gll_07.tab ├── gll_08.tab ├── gll_09.tab ├── gll_10.tab ├── gll_11.tab ├── gll_12.tab ├── gll_13.tab ├── gll_14.tab ├── gll_15.tab ├── gll_16.tab ├── gll_17.tab ├── gll_18.tab ├── gll_19.tab ├── gll_20.tab ├── hgll2_003.mat ├── hgll2_004.mat ├── hgll2_005.mat ├── hgll2_006.mat ├── hgll2_007.mat ├── hgll2_008.mat ├── hgll2_009.mat ├── hgll2_010.mat ├── hgll2_011.mat ├── hgll2_012.mat ├── hgll2_013.mat ├── hgll2_014.mat ├── hgll2_015.mat ├── hgll2_016.mat ├── hgll2_017.mat ├── hgll2_018.mat ├── hgll2_019.mat └── hgll2_020.mat ├── grl ├── gll_003.mat ├── gll_004.mat ├── gll_005.mat ├── gll_006.mat ├── gll_007.mat ├── gll_008.mat ├── gll_009.mat ├── gll_010.mat ├── gll_011.mat ├── gll_012.mat ├── gll_013.mat ├── gll_014.mat ├── gll_015.mat ├── gll_016.mat ├── gll_017.mat ├── gll_018.mat ├── gll_019.mat ├── gll_020.mat ├── grl_003.mat ├── grl_004.mat ├── grl_005.mat ├── grl_006.mat ├── grl_007.mat ├── grl_008.mat ├── grl_009.mat ├── grl_010.mat ├── grl_011.mat ├── grl_012.mat ├── grl_013.mat ├── grl_014.mat ├── grl_015.mat ├── grl_016.mat ├── grl_017.mat ├── grl_018.mat ├── grl_019.mat ├── grl_020.mat └── grl_021.mat ├── load_grad_model.m ├── load_layered_model.m ├── mode_tracing.m ├── offshore_gradient_model.csv ├── psv_discrete_homo.m ├── psv_discrete_inhomo.m ├── readme.txt ├── run_4_layered_model.m ├── run_LVL_model.m ├── run_backpropagation_wave_model.m ├── run_offshore_gradient_model.m └── sasem_psv.m /README.md: -------------------------------------------------------------------------------- 1 | We aim to perform the forward modeling and inversion of the dispersion curves via the semi-analytical spectral element method. 2 | 3 | All codes are developed using MATLAB R2019b. 4 | 5 | 2024.04.09 The forward modeling tool for calculating the normal-mode dispersion curves has been uploaded. (Reference: Shi, C., S. Yuan, and X. Chen (2024). Solutions of Surface-Wave Dispersion and Attenuation in Stratified Viscoelastic Media Using a Spectral-Element 6 | Approach, Bull. Seismol. Soc. Am. Doi: 10.1785/0120230306 ) 7 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/4_layered_model.csv: -------------------------------------------------------------------------------- 1 | thickness(m),vp(m/s),vs(m/s),density(kg/m^3),Qp,Qs 2 | 15,700,300,1800,50,20 3 | 15,900,400,1900,80,30 4 | 15,1100,500,2000,100,50 5 | inf,1300,600,2100,150,80 6 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/GetGLL.m: -------------------------------------------------------------------------------- 1 | function [x,w,h]=GetGLL(ngll,kind) 2 | 3 | if nargin>1, 4 | prefix=kind(1:3); 5 | else 6 | prefix = 'gll'; 7 | end 8 | 9 | name = sprintf('gll/%s_%0.2u.tab',prefix,ngll); 10 | if ~exist(name,'file') 11 | error(sprintf('Data file %s does not exist',name)) 12 | end 13 | 14 | fid=fopen(name); 15 | data=fscanf(fid,'%f',[ngll,ngll+2]); 16 | fclose(fid); 17 | 18 | x=data(:,1); 19 | w=data(:,2); 20 | h=data(:,3:end)'; 21 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/GetGRL.m: -------------------------------------------------------------------------------- 1 | function [x,w,h,h2] = GetGRL(ngrl) 2 | 3 | %% load GRL points 4 | name = sprintf('grl/grl_%0.3d.mat',ngrl); 5 | if ~exist(name,'file') 6 | error(sprintf('Data file %s does not exist',name)) 7 | end 8 | % disp(name) 9 | load(name); 10 | x=real(x); 11 | w=real(w); 12 | h=real(h); 13 | 14 | if nargout>3 15 | h2=real(h2); 16 | end 17 | end 18 | 19 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/LVL_elastic_model.csv: -------------------------------------------------------------------------------- 1 | thickness(m),vp(m/s),vs(m/s),density(kg/m^3),Qp,Qs 2 | 15,700,300,1800,inf,inf 3 | 15,1000,400,2000,inf,inf 4 | 15,850,350,1900,inf,inf 5 | inf,1300,600,2100,inf,inf 6 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/LVL_viscoelastic_model.csv: -------------------------------------------------------------------------------- 1 | thickness(m),vp(m/s),vs(m/s),density(kg/m^3),Qp,Qs 2 | 15,700,300,1800,50,20 3 | 15,1000,400,2000,100,50 4 | 15,850,350,1900,80,30 5 | inf,1300,600,2100,150,80 6 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/Muller_4_layer_dispersion.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/Muller_4_layer_dispersion.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/Muller_4_layer_dispersion_incomplete.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/Muller_4_layer_dispersion_incomplete.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/backpropagation_wave_model.csv: -------------------------------------------------------------------------------- 1 | thickness(m),vp(m/s),vs(m/s),density(kg/m^3),Qp,Qs 2 | 2,532.8,177.6,1800,2000,500 3 | inf,4000,2310,2600,inf,inf 4 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_03.tab: -------------------------------------------------------------------------------- 1 | -1.000000000000000 0.000000000000000E+00 1.000000000000000 2 | 0.3333333333333333 1.333333333333333 0.3333333333333333 3 | -1.500000000000000 -0.5000000000000000 0.5000000000000000 4 | 2.000000000000000 0.000000000000000E+00 -2.000000000000000 5 | -0.5000000000000000 0.5000000000000000 1.500000000000000 6 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_04.tab: -------------------------------------------------------------------------------- 1 | -1.000000000000000 -0.4472135954999580 0.4472135954999580 1.000000000000000 2 | 0.1666666666666667 0.8333333333333335 0.8333333333333335 0.1666666666666667 3 | -3.000000000000000 -0.8090169943749475 0.3090169943749474 -0.5000000000000000 4 | 4.045084971874738 0.000000000000000E+00 -1.118033988749895 1.545084971874737 5 | -1.545084971874737 1.118033988749895 0.000000000000000E+00 -4.045084971874738 6 | 0.5000000000000000 -0.3090169943749474 0.8090169943749475 3.000000000000000 7 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_05.tab: -------------------------------------------------------------------------------- 1 | -1.000000000000000 -0.6546536707079772 0.000000000000000E+00 0.6546536707079771 1.000000000000000 2 | 0.1000000000000000 0.5444444444444444 0.7111111111111110 0.5444444444444444 0.1000000000000000 3 | -5.000000000000000 -1.240990253030983 0.3750000000000000 -0.2590097469690172 0.5000000000000000 4 | 6.756502488724241 0.000000000000000E+00 -1.336584577695453 0.7637626158259734 -1.410164177942427 5 | -2.666666666666667 1.745743121887939 0.000000000000000E+00 -1.745743121887940 2.666666666666667 6 | 1.410164177942427 -0.7637626158259734 1.336584577695453 0.000000000000000E+00 -6.756502488724238 7 | -0.5000000000000000 0.2590097469690171 -0.3750000000000000 1.240990253030982 5.000000000000000 8 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_06.tab: -------------------------------------------------------------------------------- 1 | -1.000000000000000 -0.7650553239294647 -0.2852315164806451 0.2852315164806451 0.7650553239294647 1.000000000000000 2 | 6.666666666666667E-02 0.3784749562978473 0.5548583770354865 0.5548583770354865 0.3784749562978473 6.666666666666667E-02 3 | -7.500000000000000 -1.786364948339096 0.4849510478535692 -0.2697006108320389 0.2377811779842314 -0.5000000000000000 4 | 10.14141593631967 0.000000000000000E+00 -1.721256952830233 0.7863566722232407 -0.6535475074298002 1.349913314190488 5 | -4.036187270305349 2.523426777429455 0.000000000000000E+00 -1.752961966367866 1.152828158535930 -2.244684648176167 6 | 2.244684648176167 -1.152828158535930 1.752961966367866 0.000000000000000E+00 -2.523426777429455 4.036187270305349 7 | -1.349913314190488 0.6535475074298002 -0.7863566722232407 1.721256952830233 0.000000000000000E+00 -10.14141593631967 8 | 0.5000000000000000 -0.2377811779842314 0.2697006108320389 -0.4849510478535692 1.786364948339096 7.500000000000000 9 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_07.tab: -------------------------------------------------------------------------------- 1 | -1.000000000000000 -0.8302238962785670 -0.4688487934707142 0.000000000000000E+00 0.4688487934707142 0.8302238962785670 1.000000000000000 2 | 4.761904761904762E-02 0.2768260473615661 0.4317453812098626 0.4876190476190476 0.4317453812098626 0.2768260473615661 4.761904761904762E-02 3 | -10.50000000000000 -2.442926014244291 0.6252566655153421 -0.3125000000000000 0.2260994009425747 -0.2266118703954454 0.5000000000000000 4 | 14.20157660291981 0.000000000000000E+00 -2.215804283169970 0.9075444712688207 -0.6163908355175793 0.6022471796357857 -1.317373435702434 5 | -5.668985225545507 3.455828214294286 0.000000000000000E+00 -2.006969240588753 1.066441904006375 -0.9613397972887119 2.049964813076742 6 | 3.200000000000000 -1.598606688098367 2.266698087085999 0.000000000000000E+00 -2.266698087085999 1.598606688098367 -3.200000000000000 7 | -2.049964813076742 0.9613397972887119 -1.066441904006375 2.006969240588753 0.000000000000000E+00 -3.455828214294286 5.668985225545507 8 | 1.317373435702434 -0.6022471796357857 0.6163908355175793 -0.9075444712688207 2.215804283169970 0.000000000000000E+00 -14.20157660291981 9 | -0.5000000000000000 0.2266118703954454 -0.2260994009425747 0.3125000000000000 -0.6252566655153421 2.442926014244291 10.50000000000000 10 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_08.tab: -------------------------------------------------------------------------------- 1 | -1.000000000000000 -0.8717401485096066 -0.5917001814331423 -0.2092992179024789 0.2092992179024789 0.5917001814331423 0.8717401485096066 1.000000000000000 2 | 3.571428571428571E-02 0.2107042271435059 0.3411226924835043 0.4124587946587038 0.4124587946587038 0.3411226924835043 0.2107042271435059 3.571428571428571E-02 3 | -14.00000000000000 -3.209915703002988 0.7924766813205144 -0.3721504357285949 0.2433307127237910 -0.2032845689005927 0.2199575147713043 -0.5000000000000000 4 | 18.93759860711737 0.000000000000000E+00 -2.806475794736434 1.078944688790453 -0.6611573509003115 0.5370395861576611 -0.5735654149402641 1.297687388320232 5 | -7.569289819348488 4.543585064566565 0.000000000000000E+00 -2.378187233515506 1.135358016881112 -0.8450225565065105 0.8694480983314928 -1.941659425544123 6 | 4.297908164265174 -2.112061214314542 2.875517405972504 0.000000000000000E+00 -2.388924359158239 1.372785831806028 -1.294232050913501 2.810188989257949 7 | -2.810188989257949 1.294232050913501 -1.372785831806028 2.388924359158239 0.000000000000000E+00 -2.875517405972504 2.112061214314542 -4.297908164265174 8 | 1.941659425544123 -0.8694480983314928 0.8450225565065105 -1.135358016881112 2.378187233515506 0.000000000000000E+00 -4.543585064566565 7.569289819348488 9 | -1.297687388320232 0.5735654149402641 -0.5370395861576611 0.6611573509003115 -1.078944688790453 2.806475794736434 0.000000000000000E+00 -18.93759860711737 10 | 0.5000000000000000 -0.2199575147713043 0.2032845689005927 -0.2433307127237910 0.3721504357285949 -0.7924766813205144 3.209915703002988 14.00000000000000 11 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_09.tab: -------------------------------------------------------------------------------- 1 | -1.000000000000000 -0.8997579954114601 -0.6771862795107377 -0.3631174638261782 0.000000000000000E+00 0.3631174638261782 0.6771862795107377 0.8997579954114601 1.000000000000000 2 | 2.777777777777778E-02 0.1654953615608049 0.2745387125001617 0.3464285109730463 0.3715192743764172 0.3464285109730463 0.2745387125001617 0.1654953615608049 2.777777777777778E-02 3 | -18.00000000000000 -4.087013702033668 0.9853600900745069 -0.4446134492810906 0.2734375000000000 -0.2077345120355971 0.1896555919783565 -0.2156540187024990 0.5000000000000000 4 | 24.34974517159305 0.000000000000000E+00 -3.488358753434457 1.287960750063907 -0.7417823979162546 0.5473001605340515 -0.4923509383155076 0.5557049812837168 -1.284830632699589 5 | -9.738701657211546 5.786805816637314 0.000000000000000E+00 -2.834458912079420 1.269413086358149 -0.8557261850926754 0.7383492771903861 -0.8167563817413857 1.874440873446983 6 | 5.544963906949379 -2.696065440314056 3.576680940125617 0.000000000000000E+00 -2.659310217573918 1.376964893760512 -1.079803811282631 1.145653738455132 -2.590745676559355 7 | -3.657142857142857 1.665221645005385 -1.717832157195063 2.851915968462895 0.000000000000000E+00 -2.851915968462895 1.717832157195063 -1.665221645005385 3.657142857142857 8 | 2.590745676559355 -1.145653738455132 1.079803811282631 -1.376964893760512 2.659310217573918 0.000000000000000E+00 -3.576680940125617 2.696065440314056 -5.544963906949379 9 | -1.874440873446983 0.8167563817413857 -0.7383492771903861 0.8557261850926754 -1.269413086358149 2.834458912079420 0.000000000000000E+00 -5.786805816637314 9.738701657211546 10 | 1.284830632699589 -0.5557049812837168 0.4923509383155076 -0.5473001605340515 0.7417823979162546 -1.287960750063907 3.488358753434457 0.000000000000000E+00 -24.34974517159305 11 | -0.5000000000000000 0.2156540187024990 -0.1896555919783565 0.2077345120355971 -0.2734375000000000 0.4446134492810906 -0.9853600900745069 4.087013702033668 18.00000000000000 12 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_10.tab: -------------------------------------------------------------------------------- 1 | -1.000000000000000 -0.9195339081664589 -0.7387738651055051 -0.4779249498104445 -0.1652789576663870 0.1652789576663870 0.4779249498104445 0.7387738651055050 0.9195339081664589 1.000000000000000 2 | 2.222222222222222E-02 0.1333059908510705 0.2248893420631265 0.2920426836796837 0.3275397611838975 0.3275397611838975 0.2920426836796837 0.2248893420631262 0.1333059908510705 2.222222222222222E-02 3 | -22.50000000000000 -5.074064702978071 1.203351992852207 -0.5283693768202727 0.3120472556084112 -0.2235279447424538 0.1866457893937360 -0.1807865854892499 0.2127027580091888 -0.5000000000000000 4 | 30.43814502928193 0.000000000000000E+00 -4.259297354965221 1.529902638181603 -0.8458135734064248 0.5880821430451694 -0.4834623263339481 0.4642749589081574 -0.5437537382357056 1.275954836092664 5 | -12.17794670742982 7.185502869705824 0.000000000000000E+00 -3.364125868297816 1.444850315601661 -0.9165551803364351 0.7212373127216039 -0.6767970871960859 0.7832392931379083 -1.829563931903246 6 | 6.943788485133955 -3.351663862746773 4.368674557010182 0.000000000000000E+00 -3.020217958199348 1.468055509389994 -1.046189365502494 0.9366032131394474 -1.059154463645441 2.452884175442687 7 | -4.599354761103132 2.078207994036417 -2.104350179413156 3.387318101202446 0.000000000000000E+00 -3.025188487751974 1.646494083987060 -1.334915483878251 1.444948448751455 -3.294643033749184 8 | 3.294643033749184 -1.444948448751455 1.334915483878251 -1.646494083987060 3.025188487751974 0.000000000000000E+00 -3.387318101202446 2.104350179413156 -2.078207994036417 4.599354761103132 9 | -2.452884175442687 1.059154463645441 -0.9366032131394474 1.046189365502494 -1.468055509389994 3.020217958199348 0.000000000000000E+00 -4.368674557010186 3.351663862746773 -6.943788485133955 10 | 1.829563931903247 -0.7832392931379084 0.6767970871960860 -0.7212373127216042 0.9165551803364356 -1.444850315601661 3.364125868297818 0.000000000000000E+00 -7.185502869705821 12.17794670742982 11 | -1.275954836092664 0.5437537382357056 -0.4642749589081575 0.4834623263339481 -0.5880821430451694 0.8458135734064248 -1.529902638181603 4.259297354965214 0.000000000000000E+00 -30.43814502928193 12 | 0.5000000000000000 -0.2127027580091888 0.1807865854892499 -0.1866457893937360 0.2235279447424538 -0.3120472556084112 0.5283693768202727 -1.203351992852206 5.074064702978071 22.50000000000000 13 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_11.tab: -------------------------------------------------------------------------------- 1 | -1.0000000000000000 -0.9340014304080592 -0.7844834736631444 -0.5652353269962049 -0.2957581355869394 0.0000000000000000 0.2957581355869394 0.5652353269962049 0.7844834736631444 0.9340014304080592 1.0000000000000000 2 | 0.0181818181818182 0.1096122732669948 0.1871698817803052 0.2480481042640284 0.2868791247790082 0.3002175954556907 0.2868791247790082 0.2480481042640284 0.1871698817803052 0.1096122732669948 0.0181818181818182 3 | -27.5000000000000071 -6.1709856973178985 1.4461724827922613 -0.6227252147386679 0.3574763731164950 -0.2460937499999998 0.1942876687964179 -0.1729701085118250 0.1746578629476122 -0.2105873463130667 0.5000000000000009 4 | 37.2028673819619016 0.0000000000000181 -5.1182118247757806 1.8026467998794649 -0.9684871388021600 0.6469399638321007 -0.5026433130128493 0.4433956364372600 -0.4453135272909134 0.5353310859294461 -1.2695626762851422 5 | -14.8873962950986538 8.7396700535203280 0.0000000000000011 -3.9619965770457841 1.6527366342270533 -1.0065054085767795 0.7477348246882326 -0.6435862093598285 0.6373620564181567 -0.7604009822439182 1.7979880357947646 6 | 8.4956194946334982 -4.0793161937127458 5.2506617554544404 -0.0000000000000065 -3.4506147161735581 1.6081279037255154 -1.0799872504956856 0.8845873145564306 -0.8529168135584961 1.0033862429739648 -2.3597699130885630 7 | -5.6403879976858811 2.5347411786865033 -2.5331834086094505 3.9907957880288980 0.0000000000000001 -3.3051768533783226 1.6905705704687963 -1.2490552915691857 1.1460685342801618 -1.3155267144392560 3.0655392008818652 8 | 4.0634920634920526 -1.7719070552690330 1.6144191079350483 -1.9463494545710505 3.4588513480770815 0.0000000000000009 -3.4588513480770833 1.9463494545710518 -1.6144191079350450 1.7719070552690281 -4.0634920634920597 9 | -3.0655392008818545 1.3155267144392546 -1.1460685342801626 1.2490552915691866 -1.6905705704687963 3.3051768533783226 0.0000000000000007 -3.9907957880288989 2.5331834086094496 -2.5347411786865015 5.6403879976858740 10 | 2.3597699130885701 -1.0033862429739600 0.8529168135584957 -0.8845873145564329 1.0799872504956867 -1.6081279037255163 3.4506147161735585 0.0000000000000062 -5.2506617554544404 4.0793161937127449 -8.4956194946335017 11 | -1.7979880357947771 0.7604009822439144 -0.6373620564181566 0.6435862093598297 -0.7477348246882324 1.0065054085767793 -1.6527366342270531 3.9619965770457855 -0.0000000000000034 -8.7396700535203227 14.8873962950986645 12 | 1.2695626762851475 -0.5353310859294448 0.4453135272909143 -0.4433956364372607 0.5026433130128490 -0.6469399638321008 0.9684871388021601 -1.8026467998794649 5.1182118247757815 -0.0000000000000163 -37.2028673819619087 13 | -0.4999999999999929 0.2105873463130673 -0.1746578629476110 0.1729701085118249 -0.1942876687964183 0.2460937500000002 -0.3574763731164952 0.6227252147386684 -1.4461724827922622 6.1709856973178985 27.5000000000000071 14 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_12.tab: -------------------------------------------------------------------------------- 1 | -1.0000000000000000 -0.9448992722228823 -0.8192793216440067 -0.6328761530318607 -0.3995309409653490 -0.1365529328549276 0.1365529328549276 0.3995309409653490 0.6328761530318607 0.8192793216440067 0.9448992722228823 1.0000000000000000 2 | 0.0151515151515152 0.0916845174131961 0.1579747055643701 0.2125084177610211 0.2512756031992014 0.2714052409106962 0.2714052409106962 0.2512756031992014 0.2125084177610211 0.1579747055643701 0.0916845174131961 0.0151515151515152 3 | -33.0000000000000355 -7.3777289460344555 1.7136668943256410 -0.7273230777317021 0.4089424891605430 -0.2736422789550999 0.2078879182663048 -0.1754568652095257 0.1635259635519704 -0.1702295188728265 0.2090176288688633 -0.5000000000000027 4 | 44.6439521894873224 0.0000000000000383 -6.0645084594499936 2.1051020723548199 -1.1075999414156217 0.7190207287273479 -0.5374419426650602 0.4492980935903793 -0.4163079892853460 0.4318288724337405 -0.5291569320650947 1.2648029086236914 5 | -17.8672575223890036 10.4492990234832401 -0.0000000000000012 -4.6254332489213574 1.8889896823631604 -1.1174754037877039 0.7981839317491329 -0.6505527436182771 0.5937349194619556 -0.6102924689917407 0.7440518955831431 -1.7748692360717122 6 | 10.2011102456893887 -4.8792524980578760 6.2221575136088854 -0.0000000000000020 -3.9410687647002778 1.7828481722138048 -1.1500331377515818 0.8907625025193575 -0.7900439882348196 0.7986953851476899 -0.9649279354942388 2.2935424893001759 7 | -6.7819798620814549 3.0355489807328406 -3.0046393831034015 4.6600244900098087 -0.0000000000000001 -3.6588669370808846 1.7948712618376386 -1.2514675303792422 1.0532612660054217 -1.0347734625083338 1.2313709301034466 -2.9098099563036577 8 | 4.9016846104485765 -2.1284509054081915 1.9198559674048448 -2.2769655093429231 3.9519780268177453 0.0000000000000010 -3.6615837503189685 1.9386580353228584 -1.4687654451305370 1.3713037255774396 -1.5909399322805184 3.7238434556063176 9 | -3.7238434556062927 1.5909399322805258 -1.3713037255774445 1.4687654451305383 -1.9386580353228584 3.6615837503189699 -0.0000000000000016 -3.9519780268177458 2.2769655093429240 -1.9198559674048439 2.1284509054081879 -4.9016846104486014 10 | 2.9098099563036470 -1.2313709301034506 1.0347734625083360 -1.0532612660054208 1.2514675303792420 -1.7948712618376386 3.6588669370808842 -0.0000000000000002 -4.6600244900098087 3.0046393831034015 -3.0355489807328406 6.7819798620814549 11 | -2.2935424893001652 0.9649279354942362 -0.7986953851476895 0.7900439882348175 -0.8907625025193571 1.1500331377515824 -1.7828481722138052 3.9410687647002787 0.0000000000000004 -6.2221575136088862 4.8792524980578795 -10.2011102456893674 12 | 1.7748692360717069 -0.7440518955831402 0.6102924689917433 -0.5937349194619558 0.6505527436182766 -0.7981839317491323 1.1174754037877035 -1.8889896823631609 4.6254332489213583 0.0000000000000016 -10.4492990234832437 17.8672575223889929 13 | -1.2648029086236807 0.5291569320650934 -0.4318288724337422 0.4163079892853465 -0.4492980935903793 0.5374419426650600 -0.7190207287273481 1.1075999414156217 -2.1051020723548191 6.0645084594499936 -0.0000000000000379 -44.6439521894873081 14 | 0.4999999999999973 -0.2090176288688631 0.1702295188728252 -0.1635259635519703 0.1754568652095272 -0.2078879182663060 0.2736422789551007 -0.4089424891605434 0.7273230777317015 -1.7136668943256386 7.3777289460344537 33.0000000000000284 15 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_13.tab: -------------------------------------------------------------------------------- 1 | -1.0000000000000000 -0.9533098466421639 -0.8463475646518723 -0.6861884690817575 -0.4829098210913362 -0.2492869301062400 0.0000000000000000 0.2492869301062400 0.4829098210913362 0.6861884690817575 0.8463475646518723 0.9533098466421639 1.0000000000000000 2 | 0.0128205128205128 0.0778016867468190 0.1349819266896083 0.1836468652035501 0.2207677935661101 0.2440157903066764 0.2519308493334467 0.2440157903066764 0.2207677935661101 0.1836468652035501 0.1349819266896083 0.0778016867468190 0.0128205128205128 3 | -38.9999999999999929 -8.6942653730764992 2.0057437109865401 -0.8419611281256951 0.4660350178380061 -0.3053301959322752 0.2255859375000000 -0.1834769604930463 0.1625062612197202 -0.1566948863875569 0.1669173300723462 -0.2078198624250458 0.5000000000000284 4 | 52.7614238618854188 -0.0000000000000014 -7.0978372191905041 2.4366553254106518 -1.2619998726206560 0.8020450171514799 -0.5829344906221523 0.4695323345991488 -0.4133384228491517 0.3970011563422655 -0.4218585500750061 0.5244884459770810 -1.2611613952205385 5 | -21.1176537432532108 12.3143826726188426 -0.0000000000000026 -5.3529654960341233 2.1514929403388026 -1.2456912330433414 0.8648651295090918 -0.6788333167741210 0.5882485573596912 -0.5594166098491031 0.5907738391208890 -0.7319028964617775 1.7574041792619788 6 | 12.0606347006751911 -5.7515991079910362 7.2828663584716384 0.0000000000000006 -4.4867527492484713 1.9856340883685184 -1.2442500548652053 0.9273644072345203 -0.7801405924556571 0.7286627836650887 -0.7611026843454750 0.9371007351254138 -2.2445689249231222 7 | -8.0250707637858625 3.5810139729466059 -3.5188440479433885 5.3936695496020670 -0.0000000000000012 -4.0713974423791388 1.9384791997533293 -1.2990656395049711 1.0353900007045651 -0.9378320565227042 0.9621016625090411 -1.1728770342145958 2.7983396009521613 8 | 5.8114203470626897 -2.5155193531810154 2.2519187432266068 -2.6383574301477108 4.5001367659056752 -0.0000000000000001 -3.9479239708828473 2.0057208766898138 -1.4358640069894453 1.2322102992762631 -1.2271720543746818 1.4726326445156968 -3.4921594903866691 9 | -4.4329004329004107 1.8876092211998683 -1.6141880026437749 1.7068898658190650 -2.2121103052236348 4.0759814675861037 -0.0000000000000016 -4.0759814675861028 2.2121103052236353 -1.7068898658190632 1.6141880026437727 -1.8876092211998705 4.4329004329004285 10 | 3.4921594903866513 -1.4726326445156930 1.2271720543746814 -1.2322102992762627 1.4358640069894455 -2.0057208766898147 3.9479239708828469 0.0000000000000006 -4.5001367659056761 2.6383574301477086 -2.2519187432266032 2.5155193531810087 -5.8114203470627004 11 | -2.7983396009521542 1.1728770342146015 -0.9621016625090451 0.9378320565227052 -1.0353900007045647 1.2990656395049704 -1.9384791997533268 4.0713974423791379 0.0000000000000009 -5.3936695496020661 3.5188440479433853 -3.5810139729466033 8.0250707637858838 12 | 2.2445689249231293 -0.9371007351254148 0.7611026843454750 -0.7286627836650880 0.7801405924556555 -0.9273644072345204 1.2442500548652062 -1.9856340883685186 4.4867527492484722 -0.0000000000000030 -7.2828663584716331 5.7515991079910345 -12.0606347006752408 13 | -1.7574041792619965 0.7319028964617793 -0.5907738391208865 0.5594166098491017 -0.5882485573596895 0.6788333167741216 -0.8648651295090932 1.2456912330433414 -2.1514929403388021 5.3529654960341260 -0.0000000000000028 -12.3143826726188355 21.1176537432532605 14 | 1.2611613952205349 -0.5244884459770828 0.4218585500750058 -0.3970011563422655 0.4133384228491512 -0.4695323345991487 0.5829344906221530 -0.8020450171514799 1.2619998726206554 -2.4366553254106527 7.0978372191905059 -0.0000000000000033 -52.7614238618854401 15 | -0.4999999999999982 0.2078198624250502 -0.1669173300723480 0.1566948863875566 -0.1625062612197194 0.1834769604930460 -0.2255859375000002 0.3053301959322756 -0.4660350178380069 0.8419611281256961 -2.0057437109865406 8.6942653730765009 38.9999999999999858 16 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_14.tab: -------------------------------------------------------------------------------- 1 | -1.0000000000000000 -0.9599350452672609 -0.8678010538303472 -0.7288685990913262 -0.5506394029286471 -0.3427240133427129 -0.1163318688837039 0.1163318688837039 0.3427240133427129 0.5506394029286471 0.7288685990913262 0.8678010538303472 0.9599350452672609 1.0000000000000000 2 | 0.0109890109890110 0.0668372844976813 0.1165866558987116 0.1600218517629522 0.1948261493734161 0.2191262530097707 0.2316127944684571 0.2316127944684571 0.2191262530097707 0.1948261493734161 0.1600218517629522 0.1165866558987116 0.0668372844976813 0.0109890109890110 3 | -45.4999999999999787 -10.1205764311033324 2.3223458041907725 -0.9665177627583869 0.5285191068537476 -0.3407095695461010 0.2464954106703681 -0.1951213119926810 0.1667805269449951 -0.1531598261793612 0.1515750330346277 -0.1643706471446394 0.2068846299577670 -0.4999999999999876 4 | 61.5552980047624132 0.0000000000000141 -8.2179801814284055 2.7969381816812224 -1.4310297221351356 0.8948052266632280 -0.6367807393627878 0.4991236349675323 -0.4239663891099915 0.3877427094218838 -0.3826842557888482 0.4142585551810653 -0.5208685759157733 1.2583122252323165 5 | -24.6386623347416034 14.3349155309843059 -0.0000000000000153 -6.1437150940128413 2.4390467767088291 -1.3891661355079667 0.9441303812358730 -0.7209238423952551 0.6025643441499163 -0.5453680474504955 0.5345886155389024 -0.5761689246551056 0.7226059524855212 -1.7438715911435594 6 | 14.0744205564128286 -6.6964304499034881 8.4326002703264589 0.0000000000000072 -5.0849557030655799 2.2130564390481204 -1.3569887173248925 0.9834417553391387 -0.7974670149633368 0.7083094174084423 -0.6859947055249015 0.7337534431406056 -0.9162227896015727 2.2072338895180508 7 | -9.3702101637319153 4.1713545440669533 -4.0758531753467464 6.1909191054119406 0.0000000000000025 -4.5351304202646450 2.1117620792992944 -1.3751029765613878 1.0554757347103323 -0.9080352719777887 0.8623647010599336 -0.9113560712161497 1.1302436894620120 -2.7153980647635585 8 | 6.7939154318680366 -2.9336218244934047 2.6109572123449776 -3.0304534027397843 5.1007841560246776 -0.0000000000000019 -4.2963987320042065 2.1188507980160383 -1.4588998159869722 1.1871221785866115 -1.0920131029770994 1.1325281260796491 -1.3899751754722758 3.3256852669450616 9 | -5.1953256709002602 2.2066510872778240 -1.8756235373162105 1.9640814389985055 -2.5105003512724933 4.5412217970334181 -0.0000000000000026 -4.2980483748597411 2.2395899516811091 -1.6347468966952445 1.4234161812380495 -1.4321980886145951 1.7296247259131969 -4.1125259021188008 10 | 4.1125259021188185 -1.7296247259131943 1.4321980886145911 -1.4234161812380479 1.6347468966952450 -2.2395899516811095 4.2980483748597420 0.0000000000000027 -4.5412217970334181 2.5105003512724942 -1.9640814389985086 1.8756235373162136 -2.2066510872778231 5.1953256709002389 11 | -3.3256852669450936 1.3899751754722749 -1.1325281260796485 1.0920131029770976 -1.1871221785866080 1.4588998159869704 -2.1188507980160378 4.2963987320042065 0.0000000000000019 -5.1007841560246794 3.0304534027397838 -2.6109572123449780 2.9336218244934038 -6.7939154318680188 12 | 2.7153980647636260 -1.1302436894620111 0.9113560712161457 -0.8623647010599271 0.9080352719777846 -1.0554757347103314 1.3751029765613874 -2.1117620792992935 4.5351304202646459 -0.0000000000000051 -6.1909191054119397 4.0758531753467491 -4.1713545440669533 9.3702101637319331 13 | -2.2072338895181041 0.9162227896015687 -0.7337534431406010 0.6859947055248966 -0.7083094174084418 0.7974670149633359 -0.9834417553391372 1.3569887173248918 -2.2130564390481213 5.0849557030655825 -0.0000000000000074 -8.4326002703264606 6.6964304499034801 -14.0744205564128499 14 | 1.7438715911435487 -0.7226059524855238 0.5761689246551057 -0.5345886155389020 0.5453680474504954 -0.6025643441499153 0.7209238423952534 -0.9441303812358731 1.3891661355079681 -2.4390467767088291 6.1437150940128413 0.0000000000000126 -14.3349155309842988 24.6386623347416069 15 | -1.2583122252323129 0.5208685759157717 -0.4142585551810659 0.3826842557888488 -0.3877427094218835 0.4239663891099908 -0.4991236349675314 0.6367807393627880 -0.8948052266632291 1.4310297221351354 -2.7969381816812224 8.2179801814284055 -0.0000000000000146 -61.5552980047624132 16 | 0.5000000000000169 -0.2068846299577623 0.1643706471446396 -0.1515750330346282 0.1531598261793601 -0.1667805269449928 0.1951213119926786 -0.2464954106703667 0.3407095695461007 -0.5285191068537483 0.9665177627583882 -2.3223458041907743 10.1205764311033377 45.5000000000000000 17 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_15.tab: -------------------------------------------------------------------------------- 1 | -1.0000000000000000 -0.9652459265038386 -0.8850820442229763 -0.7635196899518152 -0.6062532054698457 -0.4206380547136725 -0.2153539553637942 0.0000000000000000 0.2153539553637942 0.4206380547136725 0.6062532054698457 0.7635196899518152 0.8850820442229763 0.9652459265038386 1.0000000000000000 2 | 0.0095238095238095 0.0580298930286012 0.1016600703257181 0.1405116998024281 0.1727896472536010 0.1969872359646133 0.2119735859268209 0.2170481163488156 0.2119735859268209 0.1969872359646133 0.1727896472536010 0.1405116998024281 0.1016600703257181 0.0580298930286012 0.0095238095238095 3 | -52.5000000000000568 -11.6566498289210827 2.6634359393255580 -1.1009158403953383 0.5962514664899836 -0.3795214630744722 0.2701411144884149 -0.2094726562500013 0.1744061111098315 -0.1547757308029138 0.1461613292753936 -0.1476280195548957 0.1623677942444749 -0.2061401371756255 0.5000000000000071 4 | 71.0255849776361714 -0.0000000000000165 -9.4247956055456008 3.1857174536369905 -1.6142893556236297 0.9966046918452147 -0.6977282508920307 0.5356855072902413 -0.4431821664710135 0.3916336198395904 -0.3687677050026159 0.3717350614352480 -0.4083212367737014 0.5180027040476843 -1.2560404614662808 5 | -28.4303339144873775 16.5108935078176771 -0.0000000000000176 -6.9971286140124151 2.7509243901299030 -1.5467595736419624 1.0340363728229116 -0.7732388425498720 0.6293171107103195 -0.5501816107288392 0.5143290573702842 -0.5159447608389308 0.5649193803710655 -0.7153203888457919 1.7331637450601178 6 | 16.2426133877035035 -7.7137928598312886 9.6712350497201012 -0.0000000000000137 -5.7340464409861749 2.4631619984964965 -1.4852634222260346 1.0537995090497976 -0.8317421955299917 0.7132267788693254 -0.6583378373483216 0.6548619591350077 -0.7131243871596548 0.9001072142711465 -2.1780637164430487 7 | -10.8177384597708581 4.8067034723977997 -4.6756927618574018 7.0512552567999567 0.0000000000000017 -5.0457577203456623 2.3096870978321946 -1.4717254517469387 1.0988888577920242 -0.9120430918593148 0.8247379073443419 -0.8095693301629908 0.8741951103372945 -1.0980416874888423 2.6517922753993375 8 | 7.8498928200300107 -3.3830564447050602 2.9971639025755596 -3.4531748921915320 5.7523693258033806 0.0000000000000001 -4.6959434483540372 2.2648136419046416 -1.5157462768689502 1.1886703887035377 -1.0397662742045022 0.9998923362464759 -1.0660897088580386 1.3294324744833421 -3.2013285575532535 9 | -6.0125919781595698 2.5486857139498329 -2.1560913466197520 2.2406434061923899 -2.8334605937231583 5.0532003618548282 -0.0000000000000000 -4.5889149646249701 2.3217590740572085 -1.6310608760501497 1.3480866210654860 -1.2547522804225093 1.3122025610936963 -1.6188710359913379 3.8817963218477587 10 | 4.7738927738927757 -2.0036144174072721 1.6508943356566872 -1.6278018041926288 1.8486943064097587 -2.4954588171632062 4.6987710511280092 0.0000000000000002 -4.6987710511280101 2.4954588171632088 -1.8486943064097592 1.6278018041926270 -1.6508943356566823 2.0036144174072668 -4.7738927738927792 11 | -3.8817963218477445 1.6188710359913330 -1.3122025610936976 1.2547522804225071 -1.3480866210654823 1.6310608760501475 -2.3217590740572080 4.5889149646249709 0.0000000000000005 -5.0532003618548273 2.8334605937231561 -2.2406434061923899 2.1560913466197493 -2.5486857139498196 6.0125919781595627 12 | 3.2013285575532322 -1.3294324744833415 1.0660897088580412 -0.9998923362464717 1.0397662742044986 -1.1886703887035368 1.5157462768689522 -2.2648136419046434 4.6959434483540381 -0.0000000000000018 -5.7523693258033779 3.4531748921915306 -2.9971639025755561 3.3830564447050593 -7.8498928200300178 13 | -2.6517922753993304 1.0980416874888366 -0.8741951103372978 0.8095693301629905 -0.8247379073443427 0.9120430918593174 -1.0988888577920264 1.4717254517469387 -2.3096870978321937 5.0457577203456605 -0.0000000000000015 -7.0512552567999531 4.6756927618573965 -4.8067034723978033 10.8177384597708688 14 | 2.1780637164430345 -0.9001072142711438 0.7131243871596555 -0.6548619591350068 0.6583378373483229 -0.7132267788693279 0.8317421955299926 -1.0537995090497967 1.4852634222260335 -2.4631619984964965 5.7340464409861740 0.0000000000000112 -9.6712350497200976 7.7137928598312877 -16.2426133877035390 15 | -1.7331637450601107 0.7153203888457921 -0.5649193803710628 0.5159447608389295 -0.5143290573702851 0.5501816107288394 -0.6293171107103201 0.7732388425498722 -1.0340363728229112 1.5467595736419633 -2.7509243901299039 6.9971286140124196 0.0000000000000127 -16.5108935078176629 28.4303339144874165 16 | 1.2560404614662843 -0.5180027040476837 0.4083212367737015 -0.3717350614352483 0.3687677050026159 -0.3916336198395900 0.4431821664710137 -0.5356855072902414 0.6977282508920303 -0.9966046918452145 1.6142893556236304 -3.1857174536369914 9.4247956055456008 0.0000000000000152 -71.0255849776361714 17 | -0.4999999999999947 0.2061401371756254 -0.1623677942444762 0.1476280195548947 -0.1461613292753930 0.1547757308029137 -0.1744061111098311 0.2094726562500009 -0.2701411144884141 0.3795214630744719 -0.5962514664899836 1.1009158403953383 -2.6634359393255584 11.6566498289210845 52.5000000000000284 18 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_16.tab: -------------------------------------------------------------------------------- 1 | -1.0000000000000000 -0.9695680462702179 -0.8992005330934720 -0.7920082918618151 -0.6523887028824931 -0.4860594218871376 -0.2998304689007632 -0.1013262735219494 0.1013262735219494 0.2998304689007632 0.4860594218871376 0.6523887028824931 0.7920082918618151 0.8992005330934720 0.9695680462702179 1.0000000000000000 2 | 0.0083333333333333 0.0508503610059199 0.0893936973259309 0.1242553821325140 0.1540269808071643 0.1774919133917041 0.1936900238252035 0.2019583081782299 0.2019583081782299 0.1936900238252035 0.1774919133917041 0.1540269808071643 0.1242553821325140 0.0893936973259309 0.0508503610059199 0.0083333333333333 3 | -59.9999999999999574 -13.3024771560273596 3.0289889685455438 -1.2451043509090494 0.6691401562492874 -0.4216063881690200 0.2962460325514836 -0.2260354050209288 0.1844431433534542 -0.1595765376057036 0.1458088604535745 -0.1407663204556334 0.1445146107481471 -0.1607626303673375 0.2055376406366549 -0.4999999999999654 4 | 81.1722918788398431 -0.0000000000001425 -10.7181879178263824 3.6028392047494853 -1.8115224611251668 1.1070150102570615 -0.7650480756894140 0.5779303227523526 -0.4685646741023561 0.4036411250365893 -0.3677117370273140 0.3542495846772394 -0.3631515878821577 0.4035878159912651 -0.5156935626369132 1.2541995872014233 5 | -32.4927027669293835 18.8423135579525400 -0.0000000000000259 -7.9128419979584237 3.0866620062368719 -1.7177729167547824 1.1334562867331257 -0.8338503851077808 0.6649574546252284 -0.5665906604657825 0.5123100607049242 -0.4909963805741528 0.5015319549882165 -0.5560494924084144 0.7094975601639428 -1.7245399104453440 6 | 18.5653100300472715 -8.8037164986111911 10.9986859881823644 0.0000000000000120 -6.4329895837644475 2.7347615524262894 -1.6273536316343455 1.1356606899078923 -0.8780365697792823 0.7335766015910115 -0.6546579634350799 0.6218313696730260 -0.6313065218353049 0.6971189981270708 -0.8873789375668957 2.1548061818690769 7 | -12.3678765604695116 5.4871456137546444 -5.3183752749304798 7.9743343599753471 -0.0000000000000075 -5.6006754343548302 2.5293790256753694 -1.5847718082544633 1.1586716862186774 -0.9365001554132929 0.8182685691305368 -0.7664142524093644 0.7708222114658575 -0.8459957731846165 1.0730306117920221 -2.6018173606938149 8 | 8.9798069441142019 -3.8640082083387592 3.4106521028615520 -3.9064550145002905 6.4538991410478657 -0.0000000000000007 -5.1402998998428968 2.4366817870573332 -1.5960079770852680 1.2180747959793519 -1.0286808103806273 0.9429260590720862 -0.9351425471718342 1.0171957939361385 -1.2834886221155237 3.1055872357642862 9 | -6.8855881323622476 2.9140831466360311 -2.4558686098609686 2.5367284561334742 -3.1807121140638861 5.6094094150195648 0.0000000000000011 -4.9334766192776787 2.4412298315503991 -1.6676090386447284 1.3292376635404943 -1.1776556059447914 1.1435035408626786 -1.2276364196530583 1.5374769731933082 -3.7090060044950661 10 | 5.4779673583689750 -2.2953195988987289 1.8838354166752145 -1.8458444830479768 2.0779335644079504 -2.7725664898139799 5.1440780056144710 -0.0000000000000006 -4.9345543127241278 2.5454416129303481 -1.8160098943762069 1.5192362549500593 -1.4271154867330220 1.5022723812057677 -1.8609608069995722 4.4699790224085802 11 | -4.4699790224085802 1.8609608069995696 -1.5022723812057677 1.4271154867330214 -1.5192362549500593 1.8160098943762084 -2.5454416129303468 4.9345543127241243 0.0000000000000028 -5.1440780056144719 2.7725664898139799 -2.0779335644079486 1.8458444830479748 -1.8838354166752087 2.2953195988987298 -5.4779673583689714 12 | 3.7090060044950448 -1.5374769731933184 1.2276364196530616 -1.1435035408626770 1.1776556059447900 -1.3292376635404939 1.6676090386447275 -2.4412298315503982 4.9334766192776751 -0.0000000000000011 -5.6094094150195621 3.1807121140638857 -2.5367284561334751 2.4558686098609619 -2.9140831466360160 6.8855881323622938 13 | -3.1055872357643146 1.2834886221155291 -1.0171957939361347 0.9351425471718329 -0.9429260590720854 1.0286808103806251 -1.2180747959793528 1.5960079770852684 -2.4366817870573318 5.1402998998428959 0.0000000000000010 -6.4538991410478648 3.9064550145002874 -3.4106521028615511 3.8640082083387610 -8.9798069441142054 14 | 2.6018173606937935 -1.0730306117920319 0.8459957731846157 -0.7708222114658544 0.7664142524093633 -0.8182685691305374 0.9365001554132943 -1.1586716862186783 1.5847718082544646 -2.5293790256753712 5.6006754343548293 0.0000000000000073 -7.9743343599753445 5.3183752749304771 -5.4871456137546426 12.3678765604695258 15 | -2.1548061818690414 0.8873789375669154 -0.6971189981270735 0.6313065218352998 -0.6218313696730230 0.6546579634350798 -0.7335766015910120 0.8780365697792829 -1.1356606899078932 1.6273536316343462 -2.7347615524262885 6.4329895837644449 -0.0000000000000089 -10.9986859881823573 8.8037164986111804 -18.5653100300473142 16 | 1.7245399104452943 -0.7094975601639562 0.5560494924084177 -0.5015319549882158 0.4909963805741535 -0.5123100607049247 0.5665906604657835 -0.6649574546252297 0.8338503851077810 -1.1334562867331257 1.7177729167547828 -3.0866620062368715 7.9128419979584228 0.0000000000000225 -18.8423135579525365 32.4927027669294120 17 | -1.2541995872014020 0.5156935626369126 -0.4035878159912651 0.3631515878821578 -0.3542495846772405 0.3677117370273148 -0.4036411250365904 0.4685646741023571 -0.5779303227523528 0.7650480756894147 -1.1070150102570628 1.8115224611251681 -3.6028392047494862 10.7181879178263824 0.0000000000001423 -81.1722918788398573 18 | 0.5000000000000258 -0.2055376406366478 0.1607626303673297 -0.1445146107481445 0.1407663204556335 -0.1458088604535744 0.1595765376057031 -0.1844431433534541 0.2260354050209288 -0.2962460325514820 0.4216063881690191 -0.6691401562492878 1.2451043509090467 -3.0289889685455402 13.3024771560273596 59.9999999999999218 19 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_17.tab: -------------------------------------------------------------------------------- 1 | -1.0000000000000000 -0.9731321766314183 -0.9108799959155736 -0.8156962512217704 -0.6910289806276847 -0.5413853993301015 -0.3721744335654771 -0.1895119735183174 0.0000000000000000 0.1895119735183174 0.3721744335654771 0.5413853993301015 0.6910289806276847 0.8156962512217704 0.9108799959155736 0.9731321766314183 1.0000000000000000 2 | 0.0073529411764706 0.0449219405432542 0.0791982705036872 0.1105929090070282 0.1379877462019266 0.1603946619976216 0.1770042535156579 0.1872163396776193 0.1906618747534695 0.1872163396776193 0.1770042535156579 0.1603946619976216 0.1379877462019266 0.1105929090070282 0.0791982705036872 0.0449219405432542 0.0073529411764706 3 | -67.9999999999999432 -15.0580524979731543 3.4189873913829367 -1.3990483897791492 0.7471237452751879 -0.4668611263239646 0.3246382564785773 -0.2445186940084455 0.1963806152343744 -0.1666056989393819 0.1485351951430673 -0.1389070696468352 0.1365083554565998 -0.1420115632143515 0.1594554189357394 -0.2050430779964537 0.5000000000000870 4 | 91.9954237055170267 -0.0000000000001429 -12.0980906953316527 4.0481982442230908 -2.0225580130708640 1.2257592929160472 -0.8382884215074676 0.6251032473398006 -0.4987989057515327 0.4213185380789019 -0.3744692206289738 0.3494298335413247 -0.3428574673200466 0.3562844971028607 -0.3997492899763496 0.5138048170709854 -1.2526868823646033 5 | -36.8257928049161833 21.3291734034607074 -0.0000000000000111 -8.8906071670206597 3.4459511192916494 -1.9017560292469975 1.2416938715208581 -0.9016315234013415 0.7075624137968670 -0.5910695161667356 0.5213398433882986 -0.4838568619282827 0.4729331462037958 -0.4901267952467523 0.5489197284406528 -0.7047659121208260 1.7174887026926733 6 | 21.0425770523494862 -9.9662217315544659 12.4148936988942520 0.0000000000000133 -7.1810992462682464 3.0270925321392097 -1.7822014842955933 1.2274098573723751 -0.9336911556183056 0.7646025331553059 -0.6654303804846387 0.6118749972843117 -0.5941680831870191 0.6129732719147435 -0.6844158050914361 0.8771335007393963 -2.1359441768374978 7 | -14.0207733572473714 6.2127374376796665 -6.0039067197928615 8.9599207502710332 -0.0000000000000065 -6.1982232105748718 2.7690818594380180 -1.7118382276223567 1.2310964237727346 -0.9749870014906969 0.8304472411230170 -0.7526075109120335 0.7235586553053601 -0.7413487483079517 0.8239950005702401 -1.0531630782610575 2.5617613217775457 8 | 10.1839564276923724 -4.3765973842649650 3.8514921294753472 -4.3902406391818225 7.2047116081680693 -0.0000000000000012 -5.6256744913992893 2.6304897331423698 -1.6941680481957602 1.2663876877219133 -1.0419961336849755 0.9235564915837952 -0.8748184578140598 0.8874120796295875 -0.9799211186133563 1.2476460136173286 -3.0300735379715178 9 | -7.8148799060837320 3.3030767256565090 -2.7751249544430912 2.8524183528095022 -3.5520492286055823 6.2082384879303270 0.0000000000000001 -5.3231741449034580 2.5888887352997330 -1.7311155696570797 1.3434560649691545 -1.1498995385011386 1.0652590396252537 -1.0650231449905914 1.1651690020506089 -1.4755071588726201 3.5756251418458476 10 | 6.2257937030017985 -2.6051755661549421 2.1313616127677415 -2.0778111620780368 2.3225546899410516 -3.0703681361027728 5.6302894370117933 -0.0000000000000017 -5.2288151784208523 2.6383557234797759 -1.8309905783222649 1.4781568448432310 -1.3228239657254226 1.2943514087008468 -1.3972258561707538 1.7558839529986066 -4.2420180409813213 11 | -5.0921522921523206 2.1170486703261351 -1.7033853828073104 1.6096810163444126 -1.7010434521867956 2.0138653755273914 -2.7886469957442066 5.3250464482630600 -0.0000000000000011 -5.3250464482630600 2.7886469957442093 -2.0138653755273954 1.7010434521867961 -1.6096810163444135 1.7033853828073087 -2.1170486703261404 5.0921522921522850 12 | 4.2420180409813426 -1.7558839529986123 1.3972258561707565 -1.2943514087008459 1.3228239657254242 -1.4781568448432305 1.8309905783222620 -2.6383557234797745 5.2288151784208541 0.0000000000000010 -5.6302894370117933 3.0703681361027741 -2.3225546899410534 2.0778111620780342 -2.1313616127677357 2.6051755661549523 -6.2257937030018056 13 | -3.5756251418458476 1.4755071588726114 -1.1651690020506122 1.0650231449905920 -1.0652590396252526 1.1498995385011392 -1.3434560649691532 1.7311155696570792 -2.5888887352997347 5.3231741449034597 -0.0000000000000004 -6.2082384879303287 3.5520492286055823 -2.8524183528094991 2.7751249544430903 -3.3030767256565290 7.8148799060836964 14 | 3.0300735379715462 -1.2476460136173078 0.9799211186133558 -0.8874120796295855 0.8748184578140573 -0.9235564915837944 1.0419961336849755 -1.2663876877219151 1.6941680481957615 -2.6304897331423720 5.6256744913992911 0.0000000000000013 -7.2047116081680667 4.3902406391818163 -3.8514921294753450 4.3765973842649757 -10.1839564276923724 15 | -2.5617613217775528 1.0531630782610579 -0.8239950005702428 0.7413487483079521 -0.7235586553053601 0.7526075109120347 -0.8304472411230172 0.9749870014906968 -1.2310964237727344 1.7118382276223554 -2.7690818594380162 6.1982232105748709 0.0000000000000070 -8.9599207502710296 6.0039067197928588 -6.2127374376796700 14.0207733572473714 16 | 2.1359441768374658 -0.8771335007394054 0.6844158050914405 -0.6129732719147446 0.5941680831870202 -0.6118749972843133 0.6654303804846398 -0.7646025331553064 0.9336911556183057 -1.2274098573723742 1.7822014842955929 -3.0270925321392088 7.1810992462682428 -0.0000000000000124 -12.4148936988942538 9.9662217315544659 -21.0425770523494649 17 | -1.7174887026926271 0.7047659121208304 -0.5489197284406557 0.4901267952467530 -0.4729331462037956 0.4838568619282836 -0.5213398433883003 0.5910695161667372 -0.7075624137968676 0.9016315234013412 -1.2416938715208579 1.9017560292469973 -3.4459511192916494 8.8906071670206597 0.0000000000000106 -21.3291734034607074 36.8257928049161762 18 | 1.2526868823645998 -0.5138048170709867 0.3997492899763498 -0.3562844971028598 0.3428574673200456 -0.3494298335413247 0.3744692206289747 -0.4213185380789019 0.4987989057515322 -0.6251032473398006 0.8382884215074674 -1.2257592929160466 2.0225580130708658 -4.0481982442230926 12.0980906953316527 0.0000000000001478 -91.9954237055170125 19 | -0.4999999999999964 0.2050430779964642 -0.1594554189357427 0.1420115632143538 -0.1365083554566020 0.1389070696468379 -0.1485351951430706 0.1666056989393832 -0.1963806152343750 0.2445186940084466 -0.3246382564785783 0.4668611263239650 -0.7471237452751889 1.3990483897791506 -3.4189873913829363 15.0580524979731489 67.9999999999999574 20 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_18.tab: -------------------------------------------------------------------------------- 1 | -1.0000000000000000 -0.9761055574121986 -0.9206491853475339 -0.8355935352180902 -0.7236793292832427 -0.5885048343186617 -0.4344150369121240 -0.2663626528782810 -0.0897490934846521 0.0897490934846521 0.2663626528782810 0.4344150369121240 0.5885048343186617 0.7236793292832427 0.8355935352180902 0.9206491853475339 0.9761055574121986 1.0000000000000000 2 | 0.0065359477124183 0.0399706288109141 0.0706371668856337 0.0990162717175028 0.1242105331329671 0.1454119615738022 0.1619395172376025 0.1732621094894562 0.1790158634397031 0.1790158634397031 0.1732621094894562 0.1619395172376025 0.1454119615738022 0.1242105331329671 0.0990162717175028 0.0706371668856337 0.0399706288109141 0.0065359477124183 3 | -76.5000000000001990 -16.9233715963301101 3.8334187142191229 -1.5627233770638354 0.8301597965105014 -0.5152161650495569 0.3552057683584182 -0.2647409079568062 0.2099169007241488 -0.1753404066307110 0.1533714034811259 -0.1400564245464621 0.1334644733956397 -0.1330817791202809 0.1399666216543866 -0.1583760846061306 0.2046320498840702 -0.5000000000000089 4 | 103.4949840588292602 0.0000000000001072 -13.5644565691972456 4.5217205780881757 -2.2472779959139242 1.3526512717955677 -0.9171552039237951 0.6767334318750137 -0.5331093693407218 0.4433296182531885 -0.3865746805883148 0.3522205076564789 -0.3350921186592377 0.3337315871589999 -0.3506962634183626 0.3965908366528735 -0.5122396816647323 1.2514285714360085 5 | -41.4296211311969955 23.9714713252068101 0.0000000000000312 -9.9302500118398438 3.8285793770079803 -2.0984068682830270 1.3582970570342039 -0.9758809857385132 0.7560004784516745 -0.6216962955636709 0.5379102092325209 -0.4873941780766701 0.4618309187650419 -0.4586156124582610 0.4809266172690115 -0.5430950333283081 0.7008659595145684 -1.7116474016094827 6 | 23.6744615059646648 -11.2013227389695356 13.9198155411163214 -0.0000000000000263 -7.9779048870260132 3.3396452152906577 -1.9491228657110256 1.3280457375893351 -0.9971471871590247 0.8037203345698262 -0.6860206015100551 0.6157015011073459 -0.5794463467994755 0.5726008005281304 -0.5983770564590385 0.6741431276368666 -0.8687538210423100 2.1204228752900782 7 | -15.7765324092490147 6.9835178048096012 -6.7322899052561462 10.0078482264894149 0.0000000000000166 -6.8372961416686779 3.0276660179918506 -1.8514431256534436 1.3139897815048798 -1.0240333736948977 0.8552120334615365 -0.7562386052422533 0.7043432457958997 -0.6909137511157295 0.7182965938051084 -0.8064435797485061 1.0370859703115618 -2.5291142864265339 8 | 11.4625447587412665 -4.9209051898474163 4.3197295750975746 -4.9044904770953428 8.0043505067055527 -0.0000000000000096 -6.1496409812894806 2.8438106244698154 -1.8070343165962703 1.3288072539519573 -1.0716413618371521 0.9263647716508639 -0.8496106927972357 0.8245672118869349 -0.8509553879717709 0.9507139481087347 -1.2190551845623248 2.9693216241617932 9 | -8.8008431491399151 3.7158202253455497 -3.1139693079354185 3.1877590464176286 -3.9473204159379240 6.8486105332479985 0.0000000000000019 -5.7528088442586007 2.7595120104346806 -1.8145267013138571 1.3795719459302209 -1.1509730499985955 1.0316555961658243 -0.9859462926406549 1.0069698860835468 -1.1173774569688630 1.4270082975402016 -3.4701424758930344 10 | 7.0180439316546597 -2.9334605298150125 2.3936860105595956 -2.3238605332433950 2.5825904893836071 -3.3884738397816809 6.1550374661386318 -0.0000000000000035 -5.5703437528874673 2.7626110267109163 -1.8771400367020796 1.4760297524762667 -1.2768883725828963 1.1929410271485692 -1.2004226629535608 1.3194110363802978 -1.6756990476881313 4.0657382940822231 11 | -5.7495036507590882 2.3876290391074826 -1.9159329907720306 1.8027861642278959 -1.8937606123567234 2.2246299750689476 -3.0504995546910814 5.7553258442798159 -0.0000000000000005 -5.5710869111508554 2.8543528631388120 -2.0058665711192498 1.6358872773366619 -1.4758669330146346 1.4530812679713483 -1.5755657262951537 1.9855337972145630 -4.8024732861963741 12 | 4.8024732861963457 -1.9855337972145852 1.5755657262951583 -1.4530812679713467 1.4758669330146301 -1.6358872773366584 2.0058665711192472 -2.8543528631388106 5.5710869111508563 0.0000000000000002 -5.7553258442798167 3.0504995546910814 -2.2246299750689524 1.8937606123567285 -1.8027861642278975 1.9159329907720308 -2.3876290391074817 5.7495036507590171 13 | -4.0657382940822373 1.6756990476881299 -1.3194110363802973 1.2004226629535586 -1.1929410271485672 1.2768883725828943 -1.4760297524762649 1.8771400367020807 -2.7626110267109176 5.5703437528874691 0.0000000000000002 -6.1550374661386336 3.3884738397816809 -2.5825904893836031 2.3238605332433919 -2.3936860105595992 2.9334605298150329 -7.0180439316546810 14 | 3.4701424758930699 -1.4270082975401976 1.1173774569688630 -1.0069698860835450 0.9859462926406564 -1.0316555961658240 1.1509730499985944 -1.3795719459302211 1.8145267013138557 -2.7595120104346780 5.7528088442586007 -0.0000000000000005 -6.8486105332479994 3.9473204159379183 -3.1877590464176269 3.1139693079354176 -3.7158202253455532 8.8008431491399435 15 | -2.9693216241617435 1.2190551845623305 -0.9507139481087400 0.8509553879717709 -0.8245672118869404 0.8496106927972379 -0.9263647716508624 1.0716413618371523 -1.3288072539519571 1.8070343165962688 -2.8438106244698154 6.1496409812894806 0.0000000000000089 -8.0043505067055509 4.9044904770953490 -4.3197295750975728 4.9209051898474181 -11.4625447587412665 16 | 2.5291142864264771 -1.0370859703115740 0.8064435797485073 -0.7182965938051054 0.6909137511157306 -0.7043432457959008 0.7562386052422537 -0.8552120334615367 1.0240333736948988 -1.3139897815048815 1.8514431256534434 -3.0276660179918506 6.8372961416686806 -0.0000000000000174 -10.0078482264894184 6.7322899052561453 -6.9835178048096056 15.7765324092489934 17 | -2.1204228752900889 0.8687538210423067 -0.6741431276368666 0.5983770564590337 -0.5726008005281282 0.5794463467994745 -0.6157015011073466 0.6860206015100561 -0.8037203345698265 0.9971471871590259 -1.3280457375893349 1.9491228657110242 -3.3396452152906564 7.9779048870260132 0.0000000000000208 -13.9198155411163178 11.2013227389695391 -23.6744615059646719 18 | 1.7116474016094791 -0.7008659595145666 0.5430950333283163 -0.4809266172690133 0.4586156124582606 -0.4618309187650408 0.4873941780766702 -0.5379102092325218 0.6216962955636716 -0.7560004784516758 0.9758809857385135 -1.3582970570342023 2.0984068682830248 -3.8285793770079808 9.9302500118398456 -0.0000000000000336 -23.9714713252068350 41.4296211311970239 19 | -1.2514285714360014 0.5122396816647350 -0.3965908366528778 0.3506962634183638 -0.3337315871590004 0.3350921186592380 -0.3522205076564786 0.3865746805883146 -0.4433296182531888 0.5331093693407217 -0.6767334318750126 0.9171552039237938 -1.3526512717955672 2.2472779959139246 -4.5217205780881757 13.5644565691972421 -0.0000000000000992 -103.4949840588292602 20 | 0.5000000000000426 -0.2046320498840562 0.1583760846061290 -0.1399666216543872 0.1330817791202812 -0.1334644733956412 0.1400564245464639 -0.1533714034811270 0.1753404066307102 -0.2099169007241466 0.2647409079568040 -0.3552057683584179 0.5152161650495571 -0.8301597965105023 1.5627233770638385 -3.8334187142191229 16.9233715963301066 76.5000000000001990 21 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_19.tab: -------------------------------------------------------------------------------- 1 | -1.0000000000000000 -0.9786117662220801 -0.9289015281525862 -0.8524605777966461 -0.7514942025526130 -0.6289081372652205 -0.4882292856807135 -0.3335048478244986 -0.1691860234092816 0.0000000000000000 0.1691860234092816 0.3335048478244986 0.4882292856807135 0.6289081372652205 0.7514942025526130 0.8524605777966461 0.9289015281525862 0.9786117662220801 1.0000000000000000 2 | 0.0058479532163743 0.0357933651861765 0.0633818917626297 0.0891317570992071 0.1123153414773050 0.1322672804487508 0.1484139425959389 0.1602909240440612 0.1675565845271429 0.1700019192848272 0.1675565845271429 0.1602909240440612 0.1484139425959389 0.1322672804487508 0.1123153414773050 0.0891317570992071 0.0633818917626297 0.0357933651861765 0.0058479532163743 3 | -85.5000000000000711 -18.8984313212658854 4.2722738188112279 -1.7361115742540369 0.9182181625182751 -0.5666231334979628 0.3878726555868784 -0.2865830389547044 0.2248626897522917 -0.1854705810546882 0.1597855787868837 -0.1432362293025365 0.1333812389828229 -0.1290859989387713 0.1302787850366433 -0.1382727932870052 0.1574741558332007 -0.2042866994099458 0.4999999999999769 4 | 115.6709755874781678 0.0000000000001560 -15.1172509985711105 5.0233528562253156 -2.4855986477745611 1.4875614479502939 -1.0014493026142752 0.7325126009039625 -0.5710097233766903 0.4688823880855920 -0.4026754308752853 0.3601424916030970 -0.3347964610857889 0.3236075867651922 -0.3262939492327706 0.3460824116333479 -0.3939590608943194 0.5109278441748603 -1.2503705423266389 5 | -46.3042002466797413 26.7692060122356565 -0.0000000000000787 -11.0316452325995762 4.2343963713097859 -2.3075158867737855 1.4829603931113484 -1.0561405648769420 0.8095633881503513 -0.6573338680009644 0.5600991079222641 -0.4981142350464322 0.4611426662593339 -0.4443671975896202 0.4470452537088059 -0.4733846323289441 0.5382701877931179 -0.6976117061536953 1.7067526929736729 6 | 26.4609974478341314 -12.5090296560773080 15.5134202519407172 0.0000000000000144 -8.8230741280134239 3.6720670834688391 -2.1276570581243575 1.4369162501414241 -1.0674320460116753 0.8494054000963963 -0.7138957392081706 0.6287669989286839 -0.5780302369484626 0.5541493822287793 -0.5553983342478944 0.5865373872095683 -0.6657043974209518 0.8618059042384973 -2.1074889912212456 7 | -17.6352276870376130 7.7995142241653932 -7.5035260256199869 11.1179967255039802 0.0000000000000079 -7.5171328121992333 3.3043740407622857 -2.0026260137563967 1.4060018790032065 -1.0816007858340873 0.8892624941293636 -0.7714996201709423 0.7017095065244257 -0.6675559053397887 0.6653411274520041 -0.6998600229270401 0.7921827343707877 -1.0238717745435935 2.5021243650972167 8 | 12.8157148551185287 -5.4969882322431145 4.8153950986330258 -5.4491725795913686 8.8524924624172385 0.0000000000000099 -6.7105798213397359 3.0750800003258223 -1.9326360109292131 1.4025297618959516 -1.1132464764653831 0.9438658470562312 -0.8450497166613388 0.7950286701237929 -0.7861419729969721 0.8223312782690305 -0.9273191302956011 1.1958276404406334 -2.9196290380427143 9 | -9.8437364169777553 4.1524187105027854 -3.4724744329112331 3.5427773754851897 -4.3664131075121118 7.5297806457559693 0.0000000000000001 -6.2190488955817171 2.9498981679098630 -1.9137562080035864 1.4315838433413295 -1.1709856085260086 1.0241089886750103 -0.9482100162170131 0.9272417556722157 -0.9624823878396236 1.0798036993762230 -1.3882031627498266 3.3850536783269973 10 | 7.8551688821281616 -3.2803599511274970 2.6709481581670995 -2.5840916975611359 2.8580492213928790 -3.7266012659315426 6.7167348074699609 0.0000000000000008 -5.9523217328418463 2.9115577108894168 -1.9456858392537968 1.4992285817179973 -1.2646949602568365 1.1438439520716908 -1.1010462630506339 1.1307489782178481 -1.2597161238751367 1.6128009329753010 -3.9260689513048561 11 | -6.4428053523041839 2.6730216195971970 -2.1401645249830361 2.0066390887533285 -2.0975306630940111 2.4482690505678923 -3.3303802397024751 6.2221283301574184 0.0000000000000018 -5.8679898577667213 2.9553268640308374 -2.0338798078085736 1.6162315686712110 -1.4102639496371223 1.3266378778228849 -1.3420349341600115 1.4806799057311759 -1.8850119154629330 4.5782045183360864 12 | 5.3916906622788687 -2.2269743422780852 1.7630906251518754 -1.6200796771745432 1.6371246089202005 -1.8026586058733383 2.1921271190107485 -3.0879502499073519 5.9536277907517512 -0.0000000000000005 -5.9536277907517530 3.0879502499073506 -2.1921271190107494 1.8026586058733405 -1.6371246089202010 1.6200796771745436 -1.7630906251518674 2.2269743422780790 -5.3916906622788972 13 | -4.5782045183361220 1.8850119154629326 -1.4806799057311772 1.3420349341600084 -1.3266378778228780 1.4102639496371181 -1.6162315686712101 2.0338798078085718 -2.9553268640308370 5.8679898577667222 -0.0000000000000016 -6.2221283301574184 3.3303802397024738 -2.4482690505678906 2.0975306630940076 -2.0066390887533285 2.1401645249830334 -2.6730216195971988 6.4428053523041982 14 | 3.9260689513049201 -1.6128009329752975 1.2597161238751324 -1.1307489782178415 1.1010462630506264 -1.1438439520716899 1.2646949602568387 -1.4992285817179976 1.9456858392537959 -2.9115577108894168 5.9523217328418472 -0.0000000000000001 -6.7167348074699635 3.7266012659315439 -2.8580492213928794 2.5840916975611306 -2.6709481581670933 3.2803599511275094 -7.8551688821281616 15 | -3.3850536783270471 1.3882031627498179 -1.0798036993762177 0.9624823878396200 -0.9272417556722141 0.9482100162170153 -1.0241089886750128 1.1709856085260086 -1.4315838433413290 1.9137562080035873 -2.9498981679098644 6.2190488955817145 0.0000000000000034 -7.5297806457559728 4.3664131075121126 -3.5427773754851875 3.4724744329112314 -4.1524187105027917 9.8437364169777695 16 | 2.9196290380428138 -1.1958276404406090 0.9273191302955935 -0.8223312782690327 0.7861419729969760 -0.7950286701237945 0.8450497166613378 -0.9438658470562276 1.1132464764653842 -1.4025297618959545 1.9326360109292140 -3.0750800003258205 6.7105798213397359 -0.0000000000000106 -8.8524924624172385 5.4491725795913730 -4.8153950986330365 5.4969882322431305 -12.8157148551184790 17 | -2.5021243650973304 1.0238717745435832 -0.7921827343707779 0.6998600229270379 -0.6653411274520026 0.6675559053397871 -0.7017095065244235 0.7714996201709380 -0.8892624941293623 1.0816007858340897 -1.4060018790032089 2.0026260137563989 -3.3043740407622870 7.5171328121992360 -0.0000000000000062 -11.1179967255039784 7.5035260256199825 -7.7995142241653967 17.6352276870376414 18 | 2.1074889912213450 -0.8618059042384905 0.6657043974209380 -0.5865373872095623 0.5553983342478889 -0.5541493822287767 0.5780302369484613 -0.6287669989286816 0.7138957392081701 -0.8494054000963978 1.0674320460116773 -1.4369162501414272 2.1276570581243610 -3.6720670834688418 8.8230741280134204 -0.0000000000000122 -15.5134202519407172 12.5090296560773080 -26.4609974478341385 19 | -1.7067526929737333 0.6976117061536862 -0.5382701877931110 0.4733846323289447 -0.4470452537088039 0.4443671975896181 -0.4611426662593335 0.4981142350464305 -0.5600991079222637 0.6573338680009648 -0.8095633881503519 1.0561405648769433 -1.4829603931113504 2.3075158867737873 -4.2343963713097867 11.0316452325995726 0.0000000000000805 -26.7692060122356565 46.3042002466797413 20 | 1.2503705423266673 -0.5109278441748594 0.3939590608943169 -0.3460824116333456 0.3262939492327683 -0.3236075867651907 0.3347964610857883 -0.3601424916030959 0.4026754308752849 -0.4688823880855922 0.5710097233766904 -0.7325126009039629 1.0014493026142752 -1.4875614479502939 2.4855986477745624 -5.0233528562253174 15.1172509985711141 -0.0000000000001555 -115.6709755874781820 21 | -0.4999999999999716 0.2042866994099454 -0.1574741558331973 0.1382727932870010 -0.1302787850366432 0.1290859989387736 -0.1333812389828240 0.1432362293025361 -0.1597855787868833 0.1854705810546887 -0.2248626897522921 0.2865830389547031 -0.3878726555868778 0.5666231334979634 -0.9182181625182757 1.7361115742540350 -4.2722738188112279 18.8984313212658819 85.5000000000000284 22 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/gll_20.tab: -------------------------------------------------------------------------------- 1 | -1.0000000000000000 -0.9807437048939142 -0.9359344988126654 -0.8668779780899502 -0.7753682609520559 -0.6637764022903113 -0.5349928640318863 -0.3923531837139093 -0.2395517059229865 -0.0805459372388218 0.0805459372388218 0.2395517059229865 0.3923531837139093 0.5349928640318863 0.6637764022903113 0.7753682609520559 0.8668779780899502 0.9359344988126654 0.9807437048939142 1.0000000000000000 2 | 0.0052631578947368 0.0322371231884889 0.0571818021275669 0.0806317639961196 0.1019914996994508 0.1207092276286747 0.1363004823587242 0.1483615540709168 0.1565801026474755 0.1607432863878457 0.1607432863878457 0.1565801026474755 0.1483615540709168 0.1363004823587242 0.1207092276286747 0.1019914996994508 0.0806317639961196 0.0571818021275669 0.0322371231884889 0.0052631578947368 3 | -94.9999999999998437 -20.9832293303798991 4.7355459208359587 -1.9191999063500100 1.0112769099798640 -0.6210474358840152 0.4225857863978124 -0.3099640207592962 0.2410933451676501 -0.1968007466455786 0.1674609471209525 -0.1479075234780483 0.1352736163357822 -0.1280171464234224 0.1255041260074699 -0.1279536735809302 0.1368529571730698 -0.1567124936303757 0.2039937096688182 -0.5000000000000195 4 | 128.5234002749980391 -0.0000000000003895 -16.7564483026487423 5.5530557844861708 -2.7374590756886015 1.6303972715331676 -1.0910314555483334 0.7922309131539602 -0.6121799902899585 0.4974778929033714 -0.4219663236790192 0.3718303836193784 -0.3394816227121351 0.3208527119341388 -0.3142452458151960 0.3201429543653149 -0.3422252178066653 0.3917418916389593 -0.5098171902659135 1.2494723661714637 5 | -51.4495394641376578 29.7223764540194608 0.0000000000000283 -12.1947006851014734 4.6632929462159707 -2.5289335897042360 1.6154706271023880 -1.1420988973365194 0.8677859232901070 -0.6972669157521467 0.5867640172349046 -0.5140946635158625 0.4673864169290020 -0.4403408696661861 0.4302463348413737 -0.4375423344252401 0.4671165810960309 -0.5342254192299841 0.6948668217633076 -1.7026095323210271 6 | 29.4022100429361259 -13.8893498918618441 17.1956844845641577 -0.0000000000000011 -9.7163662929768773 4.0241072969255338 -2.3174832856167513 1.5535795071108500 -1.1439085808893343 0.9007010864340456 -0.7475535629124760 0.6485761509456360 -0.5854461186479398 0.5486512604901773 -0.5339562893285926 0.5414181563887495 -0.5767824453237156 0.6586786796537856 -0.8559765967442511 2.0965921155405169 7 | -19.5969132454518729 8.6607466448819590 -8.3176154550250772 12.2902776863172107 0.0000000000000042 -8.2371930075336266 3.5986803966004621 -2.1647384533763416 1.5062517842464731 -1.1464148525093369 0.9306477605390331 -0.7952101331953602 0.7100387422939733 -0.6601494902653409 0.6387152739706201 -0.6448548711370561 0.6848423871423422 -0.7804160975982113 1.0128651940502713 -2.4795355415089944 8 | 14.2435696982023359 -6.1048870342419423 5.3385099625995087 -6.0242621472372990 9.7489026899077782 -0.0000000000000074 -7.3073714860891661 3.3232464727862863 -2.0696933359131733 1.4858111483936831 -1.1642406535917449 0.9719779767928125 -0.8540677827036295 0.7850294312553303 -0.7532657055520305 0.7559338535351129 -0.7993555898817866 0.9082383002359531 -1.1766651970322137 2.8784061617690995 9 | -10.9437428395529182 4.6129461611784857 -3.8506905609442823 3.9174895107472176 -4.8092426854879218 8.2512188827206074 0.0000000000000042 -6.7196654673398770 3.1579802719376482 -2.0262783488551559 1.4959836269680999 -1.2045754176298400 1.0335849669441288 -0.9345919050804351 0.8864267649450088 -0.8822175790843507 0.9274438229471377 -1.0496114271436399 1.3565844305345198 -3.3152717734631096 10 | 8.7374813269247085 -3.6460018088869477 2.9632428676087121 -2.8585691125247674 3.1489287052979398 -4.0845428385968967 7.3142808764785388 0.0000000000000020 -6.3703727614533712 3.0811160851700636 -2.0315417813665313 1.5404254469188394 -1.2743620308292989 1.1250457027480429 -1.0497194457543857 1.0328552042838537 -1.0772143840431740 1.2126615914015504 -1.5623609101097846 3.8131867494303506 11 | -7.1725799394551117 2.9734416795776348 -2.3762456566455867 2.2213742343972456 -2.3124383863876643 2.6847391980917310 -3.6278439120802530 6.7232621492644791 0.0000000000000048 -6.2071034622764074 3.0833255989407307 -2.0872320573694636 1.6257579405244151 -1.3837995234874048 1.2608183679666809 -1.2208280557591693 1.2594803245859747 -1.4077379898634907 1.8060308698811378 -4.4002812896201462 12 | 6.0105357680845870 -2.4805635088165183 1.9600812034128485 -1.7955907884326903 1.8068024443137001 -1.9785907973763213 2.3896514179186035 -3.3382551724684064 6.3721391965237091 0.0000000000000016 -6.2076377423914089 3.1653056895316660 -2.2010870970991618 1.7642587936584002 -1.5503692011050074 1.4667436005879095 -1.4902838595876065 1.6494474282929703 -2.1040417662759237 5.1144623665502351 13 | -5.1144623665501783 2.1040417662759121 -1.6494474282929714 1.4902838595876067 -1.4667436005879073 1.5503692011050099 -1.7642587936584051 2.2010870970991618 -3.1653056895316642 6.2076377423914080 -0.0000000000000006 -6.3721391965237126 3.3382551724684069 -2.3896514179186039 1.9785907973763233 -1.8068024443137063 1.7955907884326883 -1.9600812034128452 2.4805635088165157 -6.0105357680844875 14 | 4.4002812896201249 -1.8060308698811387 1.4077379898634894 -1.2594803245859714 1.2208280557591700 -1.2608183679666811 1.3837995234874045 -1.6257579405244158 2.0872320573694649 -3.0833255989407338 6.2071034622764083 -0.0000000000000059 -6.7232621492644800 3.6278439120802544 -2.6847391980917310 2.3124383863876639 -2.2213742343972500 2.3762456566455943 -2.9734416795776304 7.1725799394550904 15 | -3.8131867494302796 1.5623609101098044 -1.2126615914015588 1.0772143840431760 -1.0328552042838550 1.0497194457543830 -1.1250457027480407 1.2743620308293016 -1.5404254469188423 2.0315417813665300 -3.0811160851700614 6.3703727614533703 0.0000000000000012 -7.3142808764785423 4.0845428385968958 -3.1489287052979371 2.8585691125247719 -2.9632428676087201 3.6460018088869472 -8.7374813269246800 16 | 3.3152717734629888 -1.3565844305345367 1.0496114271436585 -0.9274438229471434 0.8822175790843485 -0.8864267649450057 0.9345919050804372 -1.0335849669441310 1.2045754176298396 -1.4959836269680968 2.0262783488551523 -3.1579802719376446 6.7196654673398708 -0.0000000000000010 -8.2512188827206039 4.8092426854879236 -3.9174895107472141 3.8506905609442681 -4.6129461611784945 10.9437428395528400 17 | -2.8784061617690497 1.1766651970322080 -0.9082383002359614 0.7993555898817851 -0.7559338535351069 0.7532657055520302 -0.7850294312553338 0.8540677827036327 -0.9719779767928133 1.1642406535917433 -1.4858111483936829 2.0696933359131733 -3.3232464727862836 7.3073714860891688 0.0000000000000025 -9.7489026899077782 6.0242621472372946 -5.3385099625994981 6.1048870342419574 -14.2435696982023501 18 | 2.4795355415089801 -1.0128651940502633 0.7804160975982117 -0.6848423871423396 0.6448548711370532 -0.6387152739706189 0.6601494902653431 -0.7100387422939787 0.7952101331953629 -0.9306477605390313 1.1464148525093369 -1.5062517842464753 2.1647384533763412 -3.5986803966004608 8.2371930075336284 -0.0000000000000086 -12.2902776863172090 8.3176154550250843 -8.6607466448819572 19.5969132454518871 19 | -2.0965921155405240 0.8559765967442333 -0.6586786796537789 0.5767824453237178 -0.5414181563887508 0.5339562893285913 -0.5486512604901798 0.5854461186479449 -0.6485761509456393 0.7475535629124767 -0.9007010864340446 1.1439085808893368 -1.5535795071108516 2.3174832856167495 -4.0241072969255338 9.7163662929768773 0.0000000000000077 -17.1956844845641754 13.8893498918618388 -29.4022100429360904 20 | 1.7026095323210342 -0.6948668217633094 0.5342254192299806 -0.4671165810960300 0.4375423344252401 -0.4302463348413734 0.4403408696661865 -0.4673864169290025 0.5140946635158642 -0.5867640172349051 0.6972669157521459 -0.8677859232901094 1.1420988973365211 -1.6154706271023880 2.5289335897042382 -4.6632929462159689 12.1947006851014663 -0.0000000000000241 -29.7223764540194679 51.4495394641376436 21 | -1.2494723661714460 0.5098171902659189 -0.3917418916389608 0.3422252178066669 -0.3201429543653174 0.3142452458151965 -0.3208527119341378 0.3394816227121342 -0.3718303836193795 0.4219663236790195 -0.4974778929033714 0.6121799902899605 -0.7922309131539609 1.0910314555483327 -1.6303972715331685 2.7374590756886010 -5.5530557844861681 16.7564483026487423 0.0000000000003907 -128.5234002749980391 22 | 0.4999999999999574 -0.2039937096688269 0.1567124936303687 -0.1368529571730692 0.1279536735809327 -0.1255041260074700 0.1280171464234221 -0.1352736163357842 0.1479075234780500 -0.1674609471209518 0.1968007466455774 -0.2410933451676524 0.3099640207592979 -0.4225857863978102 0.6210474358840120 -1.0112769099798600 1.9191999063500051 -4.7355459208359552 20.9832293303799133 94.9999999999997584 23 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_003.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_003.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_004.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_004.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_005.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_005.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_006.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_006.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_007.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_007.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_008.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_008.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_009.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_009.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_010.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_010.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_011.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_011.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_012.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_012.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_013.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_013.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_014.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_014.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_015.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_015.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_016.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_016.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_017.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_017.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_018.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_018.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_019.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_019.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/gll/hgll2_020.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/gll/hgll2_020.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_003.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_003.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_004.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_004.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_005.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_005.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_006.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_006.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_007.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_007.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_008.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_008.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_009.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_009.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_010.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_010.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_011.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_011.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_012.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_012.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_013.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_013.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_014.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_014.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_015.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_015.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_016.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_016.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_017.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_017.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_018.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_018.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_019.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_019.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/gll_020.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/gll_020.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_003.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_003.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_004.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_004.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_005.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_005.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_006.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_006.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_007.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_007.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_008.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_008.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_009.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_009.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_010.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_010.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_011.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_011.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_012.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_012.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_013.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_013.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_014.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_014.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_015.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_015.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_016.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_016.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_017.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_017.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_018.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_018.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_019.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_019.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_020.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_020.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/grl/grl_021.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ShiCaiwang93/DispersionCurves/0fc87c7ce8bc02b7899ac3b8f03f7861911cec03/SASEM_viscoelastic_normal_modes/grl/grl_021.mat -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/load_grad_model.m: -------------------------------------------------------------------------------- 1 | function gmodel = load_grad_model(modelfile,layer_info) 2 | %load_grad_model: This function import model parameters of gradient models 3 | 4 | % Input parameters 5 | % filename: a csv file that contains four columns 6 | % Column 1-depth (m) 7 | % Column 2-vp (m/s) at different depths 8 | % Column 3-vs (m/s) at different depths 9 | % Column 4-density (kg/m^3) at different depths 10 | % Column 5-Qp at different depths 11 | % Column 6-Qs at different depths 12 | 13 | % layer_info: optional input filename that contains prior information of sublayer interfaces 14 | 15 | % We always assume a homogeneous half-space. At the last row, the depth 16 | % should be Inf, and the corrsponding parameters belong to the half-space 17 | % substrate. 18 | 19 | % Output parameter 20 | % structure gmodel: 21 | % vp - P-wave velocities at different depths 22 | % vs - S-wave velocities at different depths 23 | % dns - Densities at different depths 24 | % Qp - P-wave Q values at different depths 25 | % Qs - S-wave Q values at different depths 26 | % depth - Vertical coordinates 27 | % depth_layer - depths of the interfaces between sublayers 28 | % vp_sub - P-wave velocity of halfspace 29 | % vs_sub - S-wave velocity of halfspace 30 | % dns_sub - Density of halfspace 31 | % Qp_sub - P-wave Q value of halfspace 32 | % Qs_sub - S-wave Q value of halfspace 33 | 34 | % Copyright 2022 by Caiwang Shi. 35 | 36 | Para_temp=csvread(modelfile,1,0);%'gradient_model.csv' 37 | % check file 38 | if Para_temp(1,1)~=0 39 | error('Depth of gradient model must starts from zero.'); 40 | elseif ~isinf(Para_temp(end,1)) 41 | error('Depth of gradient model must ends with inf.'); 42 | end 43 | 44 | depth=Para_temp(1:end-1,1).'; 45 | vp=Para_temp(1:end-1,2).'; 46 | vs=Para_temp(1:end-1,3).'; 47 | dns=Para_temp(1:end-1,4).'; 48 | Qp=Para_temp(1:end-1,5).'; 49 | Qs=Para_temp(1:end-1,6).'; 50 | %% 51 | if nargin<2 52 | 53 | % divide solid model into several sublayers 54 | range_sub=[5,10];% min and max number of sublayers 55 | 56 | vs_solid=vs(vs>0);depth_solid=depth(vs>0); 57 | gradient=diff(vs_solid)./diff(depth_solid);% gradients of the model 58 | [B,I] = sort(abs(gradient),'descend');% sort the gradient 59 | [pks1,locs1] = findpeaks(vs_solid);% local maxima 60 | [pks2,locs2] = findpeaks(-vs_solid);% local minima 61 | extremum=[1,sort(union(locs1,locs2),'ascend'),length(vs_solid)]; 62 | if length(extremum)11 68 | [B,I]=sort(abs(diff(vs_solid(extremum))),'descend'); 69 | idx=I(range_sub(2):end);idx=idx(idx>1); 70 | extremum(idx)=[]; 71 | % check extremum 72 | if extremum(1)~=1 73 | extremum=[1,extremum]; 74 | elseif extremum(end)~=length(vs_solid) 75 | extremum(end+1)=length(vs_solid); 76 | end 77 | end 78 | gmodel.depth_layer=depth_solid(extremum); 79 | 80 | % top fluid layer requires no division 81 | if vs(1)==0 82 | gmodel.depth_layer=[0,gmodel.depth_layer]; 83 | end 84 | else 85 | gmodel.depth_layer=load(layer_info); 86 | end 87 | 88 | 89 | gmodel.depth=depth; 90 | gmodel.vp=vp; 91 | gmodel.vs=vs; 92 | gmodel.Qp=Qp; 93 | gmodel.Qs=Qs; 94 | gmodel.dns=dns; 95 | gmodel.vp_sub=Para_temp(end,2); 96 | gmodel.vs_sub=Para_temp(end,3); 97 | gmodel.dns_sub=Para_temp(end,4); 98 | gmodel.Qp_sub=Para_temp(end,5); 99 | gmodel.Qs_sub=Para_temp(end,6); 100 | 101 | % check fluid layers 102 | if std(gmodel.vp(find(gmodel.vs==0)))>1e-6 103 | error('Only homogeneous fluid layers are supported in this version.'); 104 | end 105 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/load_layered_model.m: -------------------------------------------------------------------------------- 1 | function gmodel = load_layered_model(modelfile) 2 | %load_layered_model: This function import model parameters of multilayered models 3 | 4 | % Input parameters 5 | % filename: a csv file that contains four columns 6 | % Column 1-thickness (m) 7 | % Column 2-vp (m/s) of different layers 8 | % Column 3-vs (m/s) of different layers 9 | % Column 4-density (kg/m^3) of different layers 10 | % Column 5-Qp of different layers 11 | % Column 6-Qs of different layers 12 | 13 | % We always assume a homogeneous half-space. At the last row, the depth 14 | % should be Inf, and the corrsponding parameters belong to the half-space 15 | % substrate. 16 | 17 | % Output parameter 18 | % structure gmodel: 19 | % vp - P-wave velocities of different layers 20 | % vs - S-wave velocities of different layers 21 | % dns - Densities of different layers 22 | % thk - thickness 23 | % Qp - P-wave Q values of different layers 24 | % Qs - S-wave Q values of different layers 25 | 26 | % Copyright 2022 by Caiwang Shi. 27 | 28 | Para_temp=csvread(modelfile,1,0);%'layered_model.csv' 29 | % check file 30 | if ~isinf(Para_temp(end,1)) 31 | error('Thickness of layered model must ends with inf.'); 32 | end 33 | 34 | gmodel.thk=Para_temp(1:end-1,1).'; 35 | gmodel.vp=Para_temp(:,2).'; 36 | gmodel.vs=Para_temp(:,3).'; 37 | gmodel.dns=Para_temp(:,4).'; 38 | gmodel.Qp=Para_temp(:,5).'; 39 | gmodel.Qs=Para_temp(:,6).'; 40 | 41 | % check fluid layers 42 | if std(gmodel.vp(find(gmodel.vs==0)))>1e-6 43 | error('Only homogeneous fluid layers are supported in this version.'); 44 | end 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/mode_tracing.m: -------------------------------------------------------------------------------- 1 | function [vc,hw,wavefields] = mode_tracing(vc,hw,wavefields) 2 | % mode tracing 3 | for freno=size(hw,2):-1:2 4 | I=1:size(hw,1); 5 | for id=1:find(~isnan(vc(:,freno-1)),1,'last') 6 | if isnan(real(hw(id,freno))) 7 | continue; 8 | end 9 | cmin=min(abs(hw(:,freno-1)-hw(id,freno))); 10 | I(id)=find(abs(hw(:,freno-1)-hw(id,freno))==cmin,1); 11 | end 12 | 13 | index=find(diff(I)==0); 14 | I(index)=I(index)-1; 15 | 16 | vc(:,1:freno-1)=vc(I,1:freno-1); 17 | hw(:,1:freno-1)=hw(I,1:freno-1); 18 | 19 | for freno2=1:freno-1 20 | tempr=wavefields(freno2).ur; 21 | tempz=wavefields(freno2).uz; 22 | if size(tempr,2)0 && min(fluid_idx) >1) || (nlayer_fluid>1 && max(diff(fluid_idx)) >1) 62 | error('Fluid layers should appear on the top of the model.'); 63 | elseif nlayer_fluid>=length(thk) 64 | error('Pure fluid model is not supported.'); 65 | end 66 | 67 | solid_idx=(nlayer_fluid+1):length(vp); 68 | vp_solid=vp(solid_idx); 69 | vs_solid=vs(solid_idx); 70 | dns_solid=dns(solid_idx); 71 | qp_solid=qp(solid_idx); 72 | qs_solid=qs(solid_idx); 73 | thk_solid=thk(solid_idx(1):end); 74 | 75 | % global parameters 76 | global PPW NGLL NGRL; 77 | 78 | % maximum and minimum wavelength 79 | wlength_finite_min=vs_solid(1:end-1)/freq; 80 | wlength_infinite_max=vp_solid(end)/freq; 81 | wlength_infinite_min=vs_solid(end)/freq; 82 | 83 | % Number of GLL elements used to discretize finite solid layers 84 | NEL_FEM=ceil(thk_solid./wlength_finite_min*(PPW-1)/(NGLL-1)); 85 | NEL_cumsum=cumsum(NEL_FEM); 86 | 87 | % Coordinates of the top/bottom interfaces in GLL elements 88 | Z_FEM=zeros(sum(NEL_FEM)+1,1); 89 | depth=cumsum(thk_solid); 90 | for layer_idx=1:length(solid_idx)-1 91 | if layer_idx==1 92 | Z_FEM(1:(NEL_cumsum(1)+1))=linspace(0,depth(layer_idx),NEL_FEM(layer_idx)+1); 93 | else 94 | Z_FEM((NEL_cumsum(layer_idx-1)+1):(NEL_cumsum(layer_idx)+1))=... 95 | linspace(depth(layer_idx-1),depth(layer_idx),NEL_FEM(layer_idx)+1); 96 | end 97 | end 98 | 99 | % Nodes for wavefields 100 | NEL=sum(NEL_FEM); 101 | nfield = NEL*(NGLL-1)+1; % number of nodes 102 | ifield = zeros(NGLL,NEL+1);% global indexes of these 103 | coor_solid = zeros(nfield,1);% coordinates of GLL nodes 104 | for e=1:NEL 105 | dze = Z_FEM(e+1)-Z_FEM(e); 106 | ifield(:,e) = (e-1)*(NGLL-1)+(1:NGLL)'; 107 | coor_solid(ifield(:,e)) = 0.5*(Z_FEM(e)+Z_FEM(e+1)) + 0.5*dze*zgll; 108 | end 109 | 110 | % parameters at each nodes in finite solid layers 111 | Dns = zeros(NGLL,NEL); 112 | Vs = zeros(NGLL,NEL); 113 | Vp = zeros(NGLL,NEL); 114 | Qs = zeros(NGLL,NEL); 115 | Qp = zeros(NGLL,NEL); 116 | for layer_idx=1:length(solid_idx)-1 117 | if layer_idx==1 118 | Dns(:,1:NEL_cumsum(1))=dns_solid(1); 119 | Vs(:,1:NEL_cumsum(1))=vs_solid(1); 120 | Vp(:,1:NEL_cumsum(1))=vp_solid(1); 121 | Qs(:,1:NEL_cumsum(1))=qs_solid(1); 122 | Qp(:,1:NEL_cumsum(1))=qp_solid(1); 123 | else 124 | Dns(:,(NEL_cumsum(layer_idx-1)+1):(NEL_cumsum(layer_idx)))=dns_solid(layer_idx); 125 | Vs(:,(NEL_cumsum(layer_idx-1)+1):(NEL_cumsum(layer_idx)))=vs_solid(layer_idx); 126 | Vp(:,(NEL_cumsum(layer_idx-1)+1):(NEL_cumsum(layer_idx)))=vp_solid(layer_idx); 127 | Qs(:,(NEL_cumsum(layer_idx-1)+1):(NEL_cumsum(layer_idx)))=qs_solid(layer_idx); 128 | Qp(:,(NEL_cumsum(layer_idx-1)+1):(NEL_cumsum(layer_idx)))=qp_solid(layer_idx); 129 | end 130 | end 131 | 132 | % Discretization of the half-space 133 | 134 | % a buffer layer using GLL element (to model displacements wavefields) 135 | e=NEL+1; 136 | dze=Z_FEM(end)-Z_FEM(end-1);%0.1*wlength_infinite_min; 137 | ifield(:,e) = (e-1)*(NGLL-1)+(1:NGLL)'; 138 | coor_solid(ifield(:,e)) = (Z_FEM(e)+0.5*dze) + 0.5*dze*zgll; 139 | 140 | % semi-infinite element 141 | e=NEL+2; 142 | scale=(10*wlength_infinite_min/max(zgrl)); 143 | ifield_ife = (e-1)*(NGLL-1)+(1:NGRL)'; 144 | coor_p_grl = Z_FEM(NEL+1) + dze + scale*zgrl; 145 | coor_s_grl = Z_FEM(NEL+1) + dze + scale*zgrl; 146 | 147 | Dns_ife=dns_solid(end); 148 | Vs_ife=vs_solid(end); 149 | Vp_ife=vp_solid(end); 150 | Qs_ife=qs_solid(end); 151 | Qp_ife=qp_solid(end); 152 | 153 | % add fluid layers 154 | fluid=[]; 155 | if nlayer_fluid>0 156 | %wavelength of P waves in water 157 | wlength_water=vp(fluid_idx)/freq; 158 | % Number of GLL elements used to discretize finite solid layers 159 | NEL_FEM_fluid=2*ceil(thk(fluid_idx)./wlength_water*(PPW-1)/(NGLL-1)); 160 | NEL_fluid_cumsum=cumsum(NEL_FEM_fluid); 161 | 162 | % Coordinates of the top/bottom interfaces in GLL elements 163 | Z_FEM_fluid=zeros(sum(NEL_FEM_fluid)+1,1); 164 | depth_fluid=cumsum(thk(fluid_idx)); 165 | for layer_idx=1:length(fluid_idx) 166 | if layer_idx==1 167 | Z_FEM_fluid(1:(NEL_fluid_cumsum(1)+1))=linspace(0,depth_fluid(layer_idx),NEL_FEM_fluid(layer_idx)+1); 168 | else 169 | Z_FEM_fluid((NEL_fluid_cumsum(layer_idx-1)+1):(NEL_fluid_cumsum(layer_idx)+1))=... 170 | linspace(depth_fluid(layer_idx-1),depth_fluid(layer_idx),NEL_FEM_fluid(layer_idx)+1); 171 | end 172 | end 173 | 174 | % Nodes for wavefields 175 | NEL_fluid=sum(NEL_FEM_fluid); 176 | nfluid = NEL_fluid*(NGLL-1)+1; % number of nodes 177 | ifluid = zeros(NGLL,NEL_fluid);% global indexes of these 178 | coor_fluid = zeros(nfluid,1);% coordinates of GLL nodes 179 | for e=1:NEL_fluid 180 | dze = Z_FEM_fluid(e+1)-Z_FEM_fluid(e); 181 | ifluid(:,e) = (e-1)*(NGLL-1)+(1:NGLL)'; 182 | coor_fluid(ifluid(:,e)) = 0.5*(Z_FEM_fluid(e)+Z_FEM_fluid(e+1)) + 0.5*dze*zgll; 183 | end 184 | 185 | % parameters at each nodes in finite solid layers 186 | Dns_fluid = zeros(NGLL,NEL_fluid); 187 | Vp_fluid = zeros(NGLL,NEL_fluid); 188 | Qp_fluid = zeros(NGLL,NEL_fluid); 189 | for layer_idx=1:length(fluid_idx) 190 | if layer_idx==1 191 | Dns_fluid(:,1:NEL_fluid_cumsum(1))=dns(1); 192 | Vp_fluid(:,1:NEL_fluid_cumsum(1))=vp(1); 193 | Qp_fluid(:,1:NEL_fluid_cumsum(1))=qp(1); 194 | else 195 | Dns_fluid(:,(NEL_fluid_cumsum(layer_idx-1)+1):(NEL_fluid_cumsum(layer_idx)))=dns(layer_idx); 196 | Vp_fluid(:,(NEL_fluid_cumsum(layer_idx-1)+1):(NEL_fluid_cumsum(layer_idx)))=vp(layer_idx); 197 | Qp_fluid(:,(NEL_fluid_cumsum(layer_idx-1)+1):(NEL_fluid_cumsum(layer_idx)))=qp(layer_idx); 198 | end 199 | end 200 | 201 | % generate fluid-related structural variable 202 | fluid.e=NEL_FEM_fluid; 203 | fluid.idx=ifluid; 204 | fluid.n=nfluid; 205 | fluid.coor=coor_fluid; 206 | fluid.Vp=Vp_fluid; 207 | fluid.Dns=Dns_fluid; 208 | fluid.Qp=Qp_fluid; 209 | 210 | % modify the solid informations 211 | coor_solid=coor_solid+coor_fluid(end); 212 | coor_p_grl=coor_p_grl+coor_fluid(end); 213 | coor_s_grl=coor_s_grl+coor_fluid(end); 214 | end 215 | 216 | % generate solid-related structural variable 217 | solid.e=NEL_FEM; 218 | solid.idx=ifield; 219 | solid.n=nfield; 220 | solid.coor=coor_solid; 221 | solid.Vp=Vp; 222 | solid.Vs=Vs; 223 | solid.Dns=Dns; 224 | solid.Qp=Qp; 225 | solid.Qs=Qs; 226 | solid.grl_idx=ifield_ife; 227 | solid.Vp_ife=Vp_ife; 228 | solid.Vs_ife=Vs_ife; 229 | solid.Dns_ife=Dns_ife; 230 | solid.Qp_ife=Qp_ife; 231 | solid.Qs_ife=Qs_ife; 232 | solid.coor_p_grl=coor_p_grl; 233 | solid.coor_s_grl=coor_s_grl; 234 | solid.scale=scale; 235 | return; -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/psv_discrete_inhomo.m: -------------------------------------------------------------------------------- 1 | function [fluid,solid] = psv_discrete_inhomo(gmodel,freq,zgll,zgrl) 2 | % This function discretize the multi-layered homogeneous model into 3 | % numerous element controlled by Gauss-Lobatto-Legendre and Gauss-Radau-Laguerre nodes. 4 | 5 | % Input parameters 6 | % structure gmodel: 7 | % vp - P-wave velocities according to depth (km/s) 8 | % vs - S-wave velocities according to depth (km/s);for fluid layer, vs=0 9 | % dns - Densities according to depth (g/cm^3) 10 | % Qp - P-wave Q values at different depths 11 | % Qs - S-wave Q values at different depths 12 | % depth - Vertical coordinate(km) 13 | % depth_layer - number of nodes in sublayers 14 | % vp_sub - P-wave velocity of halfspace 15 | % vs_sub - S-wave velocity of halfspace 16 | % dns_sub - Density of halfspace 17 | % Qp_sub - P-wave Q value of halfspace 18 | % Qs_sub - S-wave Q value of halfspace 19 | % freq: frequency (Hz) 20 | % zgll coordinates of standard GLL nodes in the range of [-1,1] 21 | % zgrl coordinates of standard GRL nodes in the range of [0,inf] 22 | 23 | % Output parameters: two structure variables: fluid and solid. 24 | % fluid: element information for fluid layers ,including 25 | % efluid - number of fluid elements in fluid layers 26 | % idx - indexes of fluid nodes 27 | % nfluid - number of fluid nodes 28 | % coor - coordinates of fluid nodes 29 | % Vp - P-wave velocities of fluid nodes 30 | % Dns - densities of fluid nodes 31 | % Qp - P-wave Q values velocities of fluid nodes 32 | 33 | % solid: element information for solid layers ,including 34 | % esolid - number of solid elements in finite layers 35 | % idx - indexes of solid nodes in finite layers (including the buffer layer) 36 | % nsolid - number of solid nodes in finite layers 37 | % coor - coordinates of solid nodes in finite layers 38 | % vp - P-wave velocities of solid nodes in finite layers 39 | % vs - S-wave velocities of solid nodes in finite layers 40 | % Dns - Density of solid nodes in finite layers 41 | % Qp - P-wave Q values of solid nodes in finite layers 42 | % Qs - S-wave Q values of solid nodes in finite layers 43 | % grl_idx - indexes of grl nodes 44 | % vp_ife - P-wave velocities of solid nodes in infinite layers 45 | % vs_ife - S-wave velocities of solid nodes in infinite layers 46 | % Dns_ife - Dns of solid nodes in infinite layers 47 | % Qp_ife - Qp of solid nodes in infinite layers 48 | % Qs_ife - Qs of solid nodes in infinite layers 49 | % coor_p_grl - P-wave grl-node coordinates of solid nodes in infinite layers 50 | % coor_s_grl - S-wave grl-node coordinates of solid nodes in infinite layers 51 | % scale factor from stand grl scale to physical scale 52 | 53 | % Copyright 2022 by Caiwang Shi . 54 | 55 | vp=gmodel.vp; 56 | vs=gmodel.vs; 57 | dns=gmodel.dns; 58 | depth=gmodel.depth; 59 | qp=gmodel.Qp; 60 | qs=gmodel.Qs; 61 | depth_layer=gmodel.depth_layer; 62 | vp_sub=gmodel.vp_sub; 63 | vs_sub=gmodel.vs_sub; 64 | dns_sub=gmodel.dns_sub; 65 | qp_sub=gmodel.Qp_sub; 66 | qs_sub=gmodel.Qs_sub; 67 | 68 | % check fluid layers 69 | fluid_idx=find(vs==0); 70 | n_fluid=length(fluid_idx); 71 | if (n_fluid>0 && min(fluid_idx) >1) || (n_fluid>1 && max(diff(fluid_idx)) >1) 72 | error('Fluid layers should appear on the top of the model.'); 73 | elseif n_fluid>=length(depth) 74 | error('Pure fluid model is not supported.'); 75 | end 76 | fluid_idx=1; 77 | 78 | if vs(1)==0 79 | solid_idx=2:length(depth_layer); 80 | sea_depth=depth_layer(2); 81 | else 82 | solid_idx=1:length(depth_layer); 83 | sea_depth=0; 84 | end 85 | thk=diff(depth_layer); 86 | thk_solid=thk(solid_idx(1):end); 87 | % global parameters 88 | global PPW NGLL NGRL; 89 | 90 | % maximum and minimum velocity in solid sublayers 91 | vs_solid_min=zeros(1,length(depth_layer)); 92 | vp_solid_max=zeros(1,length(depth_layer)); 93 | 94 | for no_layer=1:length(depth_layer) 95 | if no_layer==length(depth_layer) 96 | vs_solid_min(no_layer)=vs_sub; 97 | vp_solid_max(no_layer)=vp_sub; 98 | else 99 | vs_solid_min(no_layer)=min(vs(find(depth>=depth_layer(no_layer) & depth=depth_layer(no_layer) & depth0 182 | %wavelength of P waves in water 183 | wlength_water=vp(fluid_idx(1))/real(freq); 184 | % Number of GLL elements used to discretize finite solid layers 185 | NEL_FEM_fluid=2*ceil(thk(1)./wlength_water*(PPW-1)/(NGLL-1)); 186 | NEL_fluid_cumsum=cumsum(NEL_FEM_fluid); 187 | 188 | % Coordinates of the top/bottom interfaces in GLL elements 189 | Z_FEM_fluid=zeros(sum(NEL_FEM_fluid)+1,1); 190 | depth_fluid=cumsum(thk(fluid_idx)); 191 | for layer_idx=1:length(fluid_idx) 192 | if layer_idx==1 193 | Z_FEM_fluid(1:(NEL_fluid_cumsum(1)+1))=linspace(0,depth_fluid(layer_idx),NEL_FEM_fluid(layer_idx)+1); 194 | else 195 | Z_FEM_fluid((NEL_fluid_cumsum(layer_idx-1)+1):(NEL_fluid_cumsum(layer_idx)+1))=... 196 | linspace(depth_fluid(layer_idx-1),depth_fluid(layer_idx),NEL_FEM_fluid(layer_idx)+1); 197 | end 198 | end 199 | 200 | % Nodes for wavefields 201 | NEL_fluid=sum(NEL_FEM_fluid); 202 | nfluid = NEL_fluid*(NGLL-1)+1; % number of nodes 203 | ifluid = zeros(NGLL,NEL_fluid);% global indexes of these 204 | coor_fluid = zeros(nfluid,1);% coordinates of GLL nodes 205 | for e=1:NEL_fluid 206 | dze = Z_FEM_fluid(e+1)-Z_FEM_fluid(e); 207 | ifluid(:,e) = (e-1)*(NGLL-1)+(1:NGLL)'; 208 | coor_fluid(ifluid(:,e)) = 0.5*(Z_FEM_fluid(e)+Z_FEM_fluid(e+1)) + 0.5*dze*zgll; 209 | end 210 | 211 | % parameters at each nodes in finite solid layers 212 | Dns_fluid = zeros(NGLL,NEL_fluid); 213 | Vp_fluid = zeros(NGLL,NEL_fluid); 214 | for layer_idx=1:length(fluid_idx) 215 | if layer_idx==1 216 | Dns_fluid(:,1:NEL_fluid_cumsum(1))=dns(1); 217 | Vp_fluid(:,1:NEL_fluid_cumsum(1))=vp(1); 218 | Qp_fluid(:,1:NEL_fluid_cumsum(1))=qp(1); 219 | else 220 | Dns_fluid(:,(NEL_fluid_cumsum(layer_idx-1)+1):(NEL_fluid_cumsum(layer_idx)))=dns(layer_idx); 221 | Vp_fluid(:,(NEL_fluid_cumsum(layer_idx-1)+1):(NEL_fluid_cumsum(layer_idx)))=vp(layer_idx); 222 | Qp_fluid(:,(NEL_fluid_cumsum(layer_idx-1)+1):(NEL_fluid_cumsum(layer_idx)))=qp(layer_idx); 223 | end 224 | end 225 | 226 | % generate fluid-related structural variable 227 | fluid.e=NEL_FEM_fluid; 228 | fluid.idx=ifluid; 229 | fluid.n=nfluid; 230 | fluid.coor=coor_fluid; 231 | fluid.Vp=Vp_fluid; 232 | fluid.Dns=Dns_fluid; 233 | fluid.Qp=Qp_fluid; 234 | 235 | % modify the solid informations 236 | coor_solid=coor_solid+coor_fluid(end); 237 | coor_p_grl=coor_p_grl+coor_fluid(end); 238 | coor_s_grl=coor_s_grl+coor_fluid(end); 239 | end 240 | 241 | % generate solid-related structural variable 242 | solid.e=NEL_FEM; 243 | solid.idx=ifield; 244 | solid.n=nfield; 245 | solid.coor=coor_solid; 246 | solid.Vp=Vp; 247 | solid.Vs=Vs; 248 | solid.Dns=Dns; 249 | solid.Qp=Qp; 250 | solid.Qs=Qs; 251 | solid.grl_idx=ifield_ife; 252 | solid.Vp_ife=Vp_ife; 253 | solid.Vs_ife=Vs_ife; 254 | solid.Dns_ife=Dns_ife; 255 | solid.Qp_ife=Qp_ife; 256 | solid.Qs_ife=Qs_ife; 257 | solid.coor_p_grl=coor_p_grl; 258 | solid.coor_s_grl=coor_s_grl; 259 | solid.scale=scale; 260 | return; -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/readme.txt: -------------------------------------------------------------------------------- 1 | For details of the codes, please refer to 2 | "Solutions of Rayleigh wave dispersion and attenuation in stratified viscoelastic media using a spectral-element approach" (Shi et al., 2024) 3 | 4 | 1. "run_4_layered_model.m" calculates the normal modes of the 4-layered model. 5 | 6 | 2. "run_offshore_gradient_model.m" calculates the normal modes of the offshore model. 7 | 8 | 3. "run_LVL_model.m" calculates the normal modes of the model with a low-velocity layer. 9 | 10 | 4. "run_backpropagation_wave_model.m" calculated the normal modes of the 2-layered model with a strong interface. 11 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/run_4_layered_model.m: -------------------------------------------------------------------------------- 1 | % Modal analysis for viscoelastic medal via the semi-analytical spectral 2 | % element method 3 | 4 | clear; 5 | %frequency parameters 6 | fmin=1; % minimum frequency 7 | fmax=100; % maximum frequency 8 | df=1;% interval 9 | freqs=fmin:df:fmax;% frequency array 10 | 11 | % model/grid parameters 12 | modelfile='4_layered_model.csv'; 13 | model_type=1;% 1 for multilayered models and 2 for gradient models 14 | mode_type = 2;% 1 for fundamental mode only and 2 for multi modes 15 | output_v=0; % whether to output the eigenwavefields (0 or 1) 16 | 17 | global FC PPW NGLL NGRL; 18 | 19 | FC=15.0; 20 | PPW = 8; % polynomial degree of GLL elements (should be greater than 5; ... 21 | % higher degree results in higher accuracy and more calculation) 22 | NGLL = 8; % number of GLL nodes per finite element 23 | NGRL = 20; % number of GRL nodes in the infinite element (between 10 to 20) 24 | 25 | % forward modeling 26 | if model_type==1 27 | gmodel=load_layered_model(modelfile); 28 | elseif model_type==2 29 | gmodel=load_grad_model(modelfile); 30 | end 31 | tic; 32 | [vc,hw,wavefields]=sasem_psv(gmodel,freqs,model_type,mode_type,output_v); 33 | toc; 34 | %% plot 35 | load Muller_4_layer_dispersion.mat 36 | figure(); 37 | set(gcf,'unit','centimeters','position',[10,10,7,6]); 38 | set(gca,'position',[0.18 0.18 0.61 0.73],'color',[255 255 255]/255); 39 | 40 | hold on;h1=plot(freq,cr_real,'r.','markersize',6); 41 | hold on;h2=plot(freqs,vc,'k.','markersize',3); 42 | axis([-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]) 43 | box on; 44 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 45 | xlabel('Frequency (Hz)');ylabel('Phase Velocity (m/s)'); 46 | set(gca,'fontname','times new roman','fontsize',8);box on; 47 | 48 | legend([h1(1),h2(1)],{'Muller','SASEM'}) 49 | 50 | load Muller_4_layer_dispersion_incomplete.mat 51 | figure(); 52 | set(gcf,'unit','centimeters','position',[10,10,7,6]); 53 | set(gca,'position',[0.18 0.18 0.61 0.73],'color',[255 255 255]/255); 54 | 55 | hold on;h1=plot(freq,cr_real,'r.','markersize',6); 56 | axis([-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]) 57 | box on; 58 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 59 | xlabel('Frequency (Hz)');ylabel('Phase Velocity (m/s)'); 60 | set(gca,'fontname','times new roman','fontsize',8);box on; 61 | 62 | legend(h1(1),'Muller') -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/run_LVL_model.m: -------------------------------------------------------------------------------- 1 | % Modal analysis for viscoelastic medal via the semi-analytical spectral 2 | % element method 3 | 4 | clear; 5 | %frequency parameters 6 | fmin=1; % minimum frequency 7 | fmax=60; % maximum frequency 8 | df=0.5;% interval 9 | freqs=fmin:df:fmax;% frequency array 10 | 11 | % model/grid parameters 12 | modelfile='LVL_viscoelastic_model.csv'; 13 | model_type=1;% 1 for multilayered models and 2 for gradient models 14 | mode_type = 2;% 1 for fundamental mode only and 2 for multi modes 15 | output_v=1; % whether to output the eigenwavefields (0 or 1) 16 | 17 | global FC PPW NGLL NGRL; 18 | 19 | FC=15.0; 20 | PPW = 8; % polynomial degree of GLL elements (should be greater than 5; ... 21 | % higher degree results in higher accuracy and more calculation) 22 | NGLL = 8; % number of GLL nodes per finite element 23 | NGRL = 20; % number of GRL nodes in the infinite element (between 10 to 20) 24 | 25 | % forward modeling 26 | if model_type==1 27 | gmodel=load_layered_model(modelfile); 28 | elseif model_type==2 29 | gmodel=load_grad_model(modelfile); 30 | end 31 | tic; 32 | [vc,hw,wavefields]=sasem_psv(gmodel,freqs,model_type,mode_type,output_v); 33 | toc; 34 | %% plot 35 | figure(); 36 | set(gcf,'unit','centimeters','position',[10,10,14,6]); 37 | subplot(1,2,1);set(gca,'position',[0.1 0.18 0.35 0.73]) 38 | hold on;plot3(freqs,-imag(hw),vc,'k.','markersize',3);axis([-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]) 39 | axis([-inf,inf,-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]); 40 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 41 | xlabel('Frequency (Hz)');zlabel('Phase Velocity (m/s)');ylabel('Attenuation (m^{-1})') 42 | set(gca,'fontname','times new roman','fontsize',8);box on;grid on; 43 | view(-12,12);title('(a)') 44 | 45 | subplot(1,2,2);set(gca,'position',[0.565 0.18 0.305 0.73]) 46 | % hold on;plot(freqs,vc,'k.','markersize',3);axis([-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]) 47 | hold on;scatter(reshape(repmat(freqs,size(vc,1),1),[],1),reshape(vc,[],1),3,reshape(-imag(hw),[],1),'filled'); 48 | axis([-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]);colormap(jet); 49 | % hold on;scatter3(reshape(repmat(freqs,size(hw,1),1),[],1),... 50 | % reshape(-imag(hw),[],1),reshape(vc,[],1),3,reshape(-imag(hw),[],1),'filled'); 51 | % axis([-inf,inf,-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]);colormap(jet);view(3) 52 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 53 | xlabel('Frequency (Hz)');ylabel('Phase Velocity (m/s)'); 54 | set(gca,'fontname','times new roman','fontsize',8);box on; 55 | title('(b)') 56 | 57 | co=colorbar; 58 | set(get(co,'XLabel'),'string','-Im (k) (m^{-1})','Fontsize',8,'FontName','times new roman'); 59 | set(co,'Fontsize',8,'FontName','times new roman'); 60 | set(co,'Location','EastOutside'); 61 | Po=get(co,'Position');Po(1)=0.89;Po(2)=0.18;Po(3)=0.02;Po(4)=0.73; 62 | set(co,'Position',Po); 63 | %% model tracing 64 | %frequency parameters 65 | fmin=1; % minimum frequency 66 | fmax=60; % maximum frequency 67 | df=0.125;% interval 68 | freqs=fmin:df:fmax;% frequency array 69 | [vc,hw,wavefields]=sasem_psv(gmodel,freqs,model_type,mode_type,output_v); 70 | [vc,hw,wavefields] = mode_tracing(vc,hw,wavefields); 71 | 72 | figure; 73 | set(gcf,'unit','centimeters','position',[10,10,7,6]); 74 | set(gca,'position',[0.12 0.18 0.7 0.73]) 75 | for no=1:size(vc,1) 76 | hold on;plot3(freqs,-imag(hw(no,:)),real(vc(no,:)),'-','LineWidth',1.5) 77 | end 78 | axis([-inf,inf,-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]);view(3) 79 | box on; 80 | set(gca,'TickDir','in','TickLength',[0.01 0.01]) 81 | xlabel('Frequency (Hz)');zlabel('Phase Velocity (m/s)'); 82 | set(gca,'fontname','times new roman','fontsize',8); 83 | 84 | %% plot eigen wavefields (uz) 85 | plot_wavefields=1; 86 | if plot_wavefields==1 87 | title_array={'(a)','(b)','(c)','(d)'}; 88 | for modeno=0:3 89 | figure(modeno+15); 90 | set(gcf,'unit','centimeters','position',[10,10,5,6]); 91 | set(gca,'position',[0.18 0.18 0.71 0.73]) 92 | count=0; 93 | scale=3; 94 | for freno=1:8:length(freqs) 95 | if find(~isnan(vc(:,freno)),1,'last')>modeno 96 | if count==0 97 | uz=scale*real(wavefields(freno).uz(:,modeno+1))./max(abs(wavefields(freno).uz(:,modeno+1))); 98 | hold on;plot(freqs(freno)+uz,wavefields(freno).solid_coor,'k-'); 99 | uz_old=uz;coor_old=wavefields(freno).solid_coor; 100 | count=1; 101 | else 102 | uz_new=scale*real(wavefields(freno).uz(:,modeno+1))./max(abs(wavefields(freno).uz(:,modeno+1))); 103 | coor_new=wavefields(freno).solid_coor; 104 | 105 | coor=linspace(0,60,100); 106 | coef=corrcoef(interp1(coor_old,uz_old,coor),interp1(coor_new,uz_new,coor)); 107 | if coef(2,1)<0 108 | uz_new=uz_new*-1;%disp(freno) 109 | end 110 | uz_old=uz_new;coor_old=coor_new; 111 | if mod(freno,2)==1 112 | hold on;plot(freqs(freno)+uz_new,wavefields(freno).solid_coor,'k-'); 113 | end 114 | end 115 | end 116 | end 117 | axis([min(freqs)-scale,max(freqs)+scale,0,60]);set(gca,'ydir','reverse') 118 | title(sprintf('Uz of Mode %d',modeno)); 119 | for layerno=1:length(gmodel.thk) 120 | hold on;plot([min(freqs)-scale,max(freqs)+scale],ones(1,2)*sum(gmodel.thk(1:layerno)),'r--') 121 | end 122 | box on; 123 | 124 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 125 | xlabel('Frequency (Hz)');ylabel('Depth (m)'); 126 | set(gca,'fontname','times new roman','fontsize',8);box on; 127 | text(-1.7,-3.7,title_array(modeno+1),'fontname','times new roman','fontsize',9) 128 | end 129 | 130 | % plot eigen wavefields (ur) 131 | for modeno=0:3 132 | figure(modeno+10); 133 | set(gcf,'unit','centimeters','position',[10,10,5,6]); 134 | set(gca,'position',[0.18 0.18 0.71 0.73]) 135 | count=0; 136 | scale=2; 137 | for freno=1:8:length(freqs) 138 | if find(~isnan(vc(:,freno)),1,'last')>modeno 139 | if count==0 140 | ur=scale*real(wavefields(freno).ur(:,modeno+1))./max(abs(wavefields(freno).ur(:,modeno+1))); 141 | hold on;plot(freqs(freno)+ur,wavefields(freno).solid_coor,'k-'); 142 | ur_old=ur;coor_old=wavefields(freno).solid_coor; 143 | count=1; 144 | else 145 | ur_new=scale*real(wavefields(freno).ur(:,modeno+1))./max(abs(wavefields(freno).ur(:,modeno+1))); 146 | coor_new=wavefields(freno).solid_coor; 147 | 148 | coor=linspace(0,60,100); 149 | coef=corrcoef(interp1(coor_old,ur_old,coor),interp1(coor_new,ur_new,coor)); 150 | if coef(2,1)<0 151 | ur_new=ur_new*-1;%disp(freno) 152 | end 153 | ur_old=ur_new;coor_old=coor_new; 154 | if mod(freno,2)==1 155 | hold on;plot(freqs(freno)+ur_new,wavefields(freno).solid_coor,'k-'); 156 | end 157 | end 158 | end 159 | end 160 | axis([min(freqs)-scale,max(freqs)+scale,0,60]);set(gca,'ydir','reverse') 161 | title(sprintf('Ur of Mode %d',modeno)); 162 | for layerno=1:length(gmodel.thk) 163 | hold on;plot([min(freqs)-scale,max(freqs)+scale],ones(1,2)*sum(gmodel.thk(1:layerno)),'r--') 164 | end 165 | box on; 166 | 167 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 168 | xlabel('Frequency (Hz)');ylabel('Depth (m)'); 169 | set(gca,'fontname','times new roman','fontsize',8);box on; 170 | text(-1.7,-3.7,title_array(modeno+1),'fontname','times new roman','fontsize',9) 171 | end 172 | end 173 | 174 | %% elastic model 175 | clear; 176 | %frequency parameters 177 | fmin=1; % minimum frequency 178 | fmax=60; % maximum frequency 179 | df=0.5;% interval 180 | freqs=fmin:df:fmax;% frequency array 181 | 182 | % model/grid parameters 183 | modelfile='LVL_elastic_model.csv'; 184 | model_type=1;% 1 for multilayered models and 2 for gradient models 185 | mode_type = 2;% 1 for fundamental mode only and 2 for multi modes 186 | output_v=1; % whether to output the eigenwavefields (0 or 1) 187 | 188 | global FC PPW NGLL NGRL; 189 | 190 | FC=15.0; 191 | PPW = 8; % polynomial degree of GLL elements (should be greater than 5; ... 192 | % higher degree results in higher accuracy and more calculation) 193 | NGLL = 8; % number of GLL nodes per finite element 194 | NGRL = 20; % number of GRL nodes in the infinite element (between 10 to 20) 195 | 196 | % forward modeling 197 | if model_type==1 198 | gmodel=load_layered_model(modelfile); 199 | elseif model_type==2 200 | gmodel=load_grad_model(modelfile); 201 | end 202 | tic; 203 | [vc,hw,wavefields]=sasem_psv(gmodel,freqs,model_type,mode_type,output_v); 204 | toc; 205 | 206 | figure(); 207 | set(gcf,'unit','centimeters','position',[10,10,14,6]); 208 | subplot(1,2,1);set(gca,'position',[0.1 0.18 0.305 0.73]) 209 | % hold on;plot(freqs,vc,'k.','markersize',3);axis([-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]) 210 | hold on;scatter(reshape(repmat(freqs,size(vc,1),1),[],1),reshape(vc,[],1),3,reshape(-imag(hw),[],1),'filled'); 211 | axis([-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]);colormap(jet);caxis([0,0.0331]) 212 | % hold on;scatter3(reshape(repmat(freqs,size(hw,1),1),[],1),... 213 | % reshape(-imag(hw),[],1),reshape(vc,[],1),3,reshape(-imag(hw),[],1),'filled'); 214 | % axis([-inf,inf,-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]);colormap(jet);view(3) 215 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 216 | xlabel('Frequency (Hz)');ylabel('Phase Velocity (m/s)'); 217 | set(gca,'fontname','times new roman','fontsize',8);box on; 218 | title('(a)') 219 | co=colorbar; 220 | set(get(co,'XLabel'),'string','-Im (k) (m^{-1})','Fontsize',8,'FontName','times new roman'); 221 | set(co,'Fontsize',8,'FontName','times new roman'); 222 | set(co,'Location','EastOutside'); 223 | Po=get(co,'Position');Po(1)=0.89;Po(2)=0.18;Po(3)=0.02;Po(4)=0.73; 224 | set(co,'Position',Po); 225 | 226 | subplot(1,2,2);set(gca,'position',[0.565 0.18 0.305 0.73]) 227 | fmin=35; % minimum frequency 228 | fmax=60; % maximum frequency 229 | df=0.05;% interval 230 | freqs=fmin:df:fmax;% frequency array 231 | tic; 232 | [vc,hw,wavefields]=sasem_psv(gmodel,freqs,model_type,mode_type,output_v); 233 | toc; 234 | hold on;scatter(reshape(repmat(freqs,size(vc,1),1),[],1),reshape(vc,[],1),3,reshape(-imag(hw),[],1),'filled'); 235 | axis([-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]);colormap(jet);caxis([0,0.0331]) 236 | % hold on;scatter3(reshape(repmat(freqs,size(hw,1),1),[],1),... 237 | % reshape(-imag(hw),[],1),reshape(vc,[],1),3,reshape(-imag(hw),[],1),'filled'); 238 | % axis([-inf,inf,-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]);colormap(jet);view(3) 239 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 240 | xlabel('Frequency (Hz)');ylabel('Phase Velocity (m/s)'); 241 | set(gca,'fontname','times new roman','fontsize',8);box on; 242 | title('(b)') 243 | axis([38,45,360,370]) 244 | 245 | 246 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/run_backpropagation_wave_model.m: -------------------------------------------------------------------------------- 1 | % Modal analysis for viscoelastic medal via the semi-analytical spectral 2 | % element method 3 | 4 | clear; 5 | %frequency parameters 6 | fmin=1; % minimum frequency 7 | fmax=100; % maximum frequency 8 | df=0.5;% interval 9 | freqs=fmin:df:fmax;% frequency array 10 | 11 | % model/grid parameters 12 | modelfile='backpropagation_wave_model.csv'; 13 | model_type=1;% 1 for multilayered models and 2 for gradient models 14 | mode_type = 2;% 1 for fundamental mode only and 2 for multi modes 15 | output_v=0; % whether to output the eigenwavefields (0 or 1) 16 | 17 | global FC PPW NGLL NGRL; 18 | 19 | FC=15.0; 20 | PPW = 8; % polynomial degree of GLL elements (should be greater than 5; ... 21 | % higher degree results in higher accuracy and more calculation) 22 | NGLL = 8; % number of GLL nodes per finite element 23 | NGRL = 20; % number of GRL nodes in the infinite element (between 10 to 20) 24 | 25 | % forward modeling 26 | if model_type==1 27 | gmodel=load_layered_model(modelfile); 28 | elseif model_type==2 29 | gmodel=load_grad_model(modelfile); 30 | end 31 | tic; 32 | [vc,hw,wavefields]=sasem_psv(gmodel,freqs,model_type,mode_type,output_v); 33 | toc; 34 | %% plot 3D complete modes 35 | [vc,hw,wavefields]=sasem_psv(gmodel,freqs,model_type,mode_type,output_v); 36 | figure(); 37 | set(gcf,'unit','centimeters','position',[10,10,7,6]); 38 | set(gca,'position',[0.18 0.18 0.61 0.73],'color',[255 255 255]/255); 39 | % plot positive-propagating modes 40 | index=find(imag(hw)>0); 41 | vc1=vc;vc1(index)=NaN;hw1=hw;hw1(index)=NaN; 42 | hold on;scatter3(reshape(repmat(freqs,size(hw1,1),1),[],1),... 43 | reshape(-imag(hw1),[],1),reshape(vc1,[],1),2,reshape(-imag(hw1),[],1),'filled'); 44 | 45 | % plot negative-propagating modes 46 | index=find(imag(hw)<0); 47 | vc1=vc;vc1(index)=NaN;hw1=-hw;hw1(index)=NaN; 48 | hold on;scatter3(reshape(repmat(freqs,size(hw1,1),1),[],1),... 49 | reshape(-imag(hw1),[],1),reshape(vc1,[],1),3,reshape(-imag(hw1),[],1)); 50 | axis([-inf,inf,-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]);colormap(jet);view(3) 51 | box on; 52 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 53 | xlabel('Frequency (Hz)');zlabel('Absolute Phase Velocity (m/s)'); 54 | set(gca,'fontname','times new roman','fontsize',8);box on; 55 | 56 | co=colorbar; 57 | set(get(co,'XLabel'),'string','-Im (k) (m^{-1})','Fontsize',8,'FontName','times new roman'); 58 | set(co,'Fontsize',8,'FontName','times new roman'); 59 | set(co,'Location','EastOutside'); 60 | Po=get(co,'Position');Po(1)=0.81;Po(2)=0.18;Po(3)=0.04;Po(4)=0.73; 61 | set(co,'Position',Po); 62 | %% plot 3D positive-propagating modes 63 | [vc,hw,wavefields]=sasem_psv(gmodel,freqs,model_type,mode_type,output_v); 64 | figure(); 65 | vc(imag(hw)>0)=NaN; 66 | hw(imag(hw)>0)=NaN; 67 | set(gcf,'unit','centimeters','position',[10,10,7,6]); 68 | set(gca,'position',[0.18 0.18 0.61 0.73],'color',[255 255 255]/255); 69 | 70 | hold on;scatter3(reshape(repmat(freqs,size(hw,1),1),[],1),... 71 | reshape(-imag(hw),[],1),reshape(vc,[],1),2,reshape(-imag(hw),[],1),'filled'); 72 | axis([-inf,inf,-inf,inf,0.8*min(gmodel.vs),1.05*max(gmodel.vs)]);colormap(jet);view(3) 73 | box on; 74 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 75 | xlabel('Frequency (Hz)');zlabel('Phase Velocity (m/s)'); 76 | set(gca,'fontname','times new roman','fontsize',8);box on; 77 | 78 | co=colorbar; 79 | set(get(co,'XLabel'),'string','-Im (k) (m^{-1})','Fontsize',8,'FontName','times new roman'); 80 | set(co,'Fontsize',8,'FontName','times new roman'); 81 | set(co,'Location','EastOutside'); 82 | Po=get(co,'Position');Po(1)=0.81;Po(2)=0.18;Po(3)=0.04;Po(4)=0.73; 83 | set(co,'Position',Po); 84 | %% plot 2D 85 | [vc,hw,wavefields]=sasem_psv(gmodel,freqs,model_type,mode_type,output_v); 86 | figure(); 87 | vc(imag(hw)<0)=NaN; 88 | hw(imag(hw)<0)=NaN; 89 | set(gcf,'unit','centimeters','position',[10,10,7,6]); 90 | set(gca,'position',[0.18 0.18 0.61 0.73],'color',[255 255 255]/255); 91 | 92 | hold on;plot(freqs,vc,'r.','MarkerSize',2); 93 | axis([-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]); 94 | box on; 95 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 96 | xlabel('Frequency (Hz)');zlabel('Phase Velocity (m/s)'); 97 | set(gca,'fontname','times new roman','fontsize',8);box on; 98 | 99 | %% plot frequency-wavenumber 100 | [vc,hw,wavefields]=sasem_psv(gmodel,freqs,model_type,mode_type,output_v); 101 | figure(); 102 | set(gcf,'unit','centimeters','position',[10,10,7,6]); 103 | set(gca,'position',[0.18 0.18 0.61 0.73],'color',[255 255 255]/255); 104 | 105 | hold on;plot(2*pi*freqs./vc,freqs,'r.'); 106 | box on; 107 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 108 | xlabel('Frequency (Hz)');zlabel('Phase Velocity (m/s)'); 109 | set(gca,'fontname','times new roman','fontsize',8);box on; 110 | -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/run_offshore_gradient_model.m: -------------------------------------------------------------------------------- 1 | % Modal analysis for viscoelastic medal via the semi-analytical spectral 2 | % element method 3 | 4 | clear; 5 | %frequency parameters 6 | fmin=0.51; % minimum frequency 7 | fmax=3; % maximum frequency 8 | df=0.03;% interval 9 | freqs=fmin:df:fmax;% frequency array 10 | 11 | % model/grid parameters 12 | modelfile='offshore_gradient_model.csv'; 13 | model_type= 2;% 1 for multilayered models and 2 for gradient models 14 | mode_type = 2;% 1 for fundamental mode only and 2 for multi modes 15 | output_v=0; % whether to output the eigenwavefields (0 or 1) 16 | 17 | global FC PPW NGLL NGRL; 18 | 19 | FC=1.0; 20 | PPW = 8; % polynomial degree of GLL elements (should be greater than 5; ... 21 | % higher degree results in higher accuracy and more calculation) 22 | NGLL = 8; % number of GLL nodes per finite element 23 | NGRL = 20; % number of GRL nodes in the infinite element (between 10 to 20) 24 | 25 | % forward modeling 26 | if model_type==1 27 | gmodel=load_layered_model(modelfile); 28 | elseif model_type==2 29 | gmodel=load_grad_model(modelfile); 30 | end 31 | tic; 32 | [vc,hw,wavefields]=sasem_psv(gmodel,freqs,model_type,mode_type,output_v); 33 | toc; 34 | %% plot 35 | figure(); 36 | set(gcf,'unit','centimeters','position',[10,10,14,6]); 37 | subplot(1,4,1);set(gca,'position',[0.06 0.18 0.13 0.73]) 38 | h1=plot(gmodel.vp,[gmodel.depth(1:end-1),800],'b'); 39 | hold on;h2=plot(gmodel.vs,[gmodel.depth(1:end-1),800],'r'); 40 | hold on;plot([0,1e4],[50,50],'k:');hold on;plot([0,1e4],[730,730],'k:') 41 | legend([h1,h2],'\alpha','\beta'); 42 | axis([0,3500,0,inf]);box on; 43 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 44 | set(gca,'ytick',[0:200:800],'ydir','reverse','xminortick','on') 45 | ylabel('Depth (m)');xlabel('Velocity (m/s)'); 46 | set(gca,'fontname','times new roman','fontsize',8); 47 | set(gca,'ydir','reverse','xminortick','on') 48 | title ('(a)') 49 | 50 | subplot(1,4,2);set(gca,'position',[0.21 0.18 0.13 0.73]) 51 | h1=plot(gmodel.Qp,[gmodel.depth(1:end-1),800],'b'); 52 | hold on;h2=plot(gmodel.Qs,[gmodel.depth(1:end-1),800],'r'); 53 | hold on;plot([0,1e4],[50,50],'k:');hold on;plot([0,1e4],[730,730],'k:'); 54 | legend([h1,h2],'Qp','Qs'); 55 | axis([0,400,0,inf]); 56 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 57 | xlabel('Q'); 58 | set(gca,'fontname','times new roman','fontsize',8); 59 | set(gca,'xtick',[100,300],'ytick',[0:200:800],'YTickLabel',[],'ydir','reverse','xminortick','on') 60 | 61 | subplot(1,4,3);set(gca,'position',[0.36 0.18 0.13 0.73]) 62 | plot(gmodel.dns,[gmodel.depth(1:end-1),800],'b') 63 | hold on;plot([0,1e4],[50,50],'k:');hold on;plot([0,1e4],[730,730],'k:') 64 | axis([900,2500,0,inf]); 65 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 66 | xlabel('Density (kg/m^3)'); 67 | set(gca,'fontname','times new roman','fontsize',8); 68 | set(gca,'xtick',[1000,2000],'ytick',[0:200:800],'YTickLabel',[],'ydir','reverse','xminortick','on') 69 | 70 | subplot(1,4,4);set(gca,'position',[0.59 0.18 0.305 0.73]) 71 | % hold on;plot(freqs,vc,'k.','markersize',3);axis([-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]) 72 | hold on;scatter(reshape(repmat(freqs,size(vc,1),1),[],1),reshape(vc,[],1),3,reshape(-imag(hw),[],1),'filled'); 73 | axis([-inf,inf,0.9*min(gmodel.vs(find(gmodel.vs,1,'first'))),1.05*max(gmodel.vs)]);colormap(jet); 74 | % hold on;scatter3(reshape(repmat(freqs,size(hw,1),1),[],1),... 75 | % reshape(-imag(hw),[],1),reshape(vc,[],1),3,reshape(-imag(hw),[],1),'filled'); 76 | % axis([-inf,inf,-inf,inf,0.9*min(gmodel.vs),1.05*max(gmodel.vs)]);colormap(jet);view(3) 77 | box on; 78 | set(gca,'TickDir','in','TickLength',[0.02 0.02]) 79 | xlabel('Frequency (Hz)');ylabel('Phase Velocity (m/s)'); 80 | set(gca,'fontname','times new roman','fontsize',8);box on; 81 | 82 | co=colorbar; 83 | set(get(co,'XLabel'),'string','-Im (k) (m^{-1})','Fontsize',8,'FontName','times new roman'); 84 | set(co,'Fontsize',8,'FontName','times new roman'); 85 | set(co,'Location','EastOutside'); 86 | Po=get(co,'Position');Po(1)=0.91;Po(2)=0.18;Po(3)=0.02;Po(4)=0.73; 87 | set(co,'Position',Po); 88 | title('(b)') -------------------------------------------------------------------------------- /SASEM_viscoelastic_normal_modes/sasem_psv.m: -------------------------------------------------------------------------------- 1 | function [vc,hw,wavefields] = sasem_psv(gmodel,freqs,model_type,mode_type,output_v) 2 | % This function calculates the PSV normal modes of the stratified model 3 | 4 | % Input parameters 5 | % structure 'gmodel' for multilayered models: 6 | % vp - P-wave velocities in all layers (m/s) 7 | % vs - S-wave velocities in all layers (m/s);for fluid layer, vs=0 8 | % dns - Densities in all layers (kg/m^3) 9 | % thk - thicknesses of all finite layers (m) 10 | % Qp - Q values for P waves 11 | % Qs - Q value for S waves 12 | % structure 'gmodel' for gradient models: 13 | % vp - P-wave velocities according to depth (m/s) 14 | % vs - S-wave velocities according to depth (m/s);for fluid layer, vs=0 15 | % dns - Densities according to depth (kg/m^3) 16 | % Qp - Q values for P waves 17 | % Qs - Q value for S waves 18 | % depth - Vertical coordinate(m) 19 | % depth_layer - number of nodes in sublayers 20 | % vp_sub - P-wave velocity of halfspace 21 | % vs_sub - S-wave velocity of halfspace 22 | % dns_sub - Density of halfspace 23 | % Qp - Qp values of halfspace 24 | % Qs - Qs value of halfspace 25 | % freqs: frequencies (Hz) 26 | % model_type: 1 for multilayered models and 2 for gradient models 27 | % mode_type : 1 for fundamental mode only and 2 for multi modes 28 | % output_v : whether to output the eigenwavefields (0 or 1) 29 | 30 | % Output parameters 31 | % vc: multi-mode phase velocities 32 | % hw: complex horizontal wavenumber 33 | 34 | % Copyright 2022 by Caiwang Shi. 35 | %% 36 | global FC NGLL NGRL; 37 | [zgll,wgll,hgll] = GetGLL(NGLL); 38 | [zgrl,wgrl,hgrl] = GetGRL(NGRL); 39 | 40 | vc=ones(1,length(freqs))*nan; 41 | hw=ones(1,length(freqs))*nan; 42 | wavefields=struct([]); 43 | 44 | for freno=1:length(freqs) 45 | omega=2*pi*freqs(freno); 46 | % Discretization of the model 47 | if model_type==1 48 | [fluid,solid] = psv_discrete_homo(gmodel,freqs(freno),zgll,zgrl); 49 | elseif model_type==2 50 | [fluid,solid] = psv_discrete_inhomo(gmodel,freqs(freno),zgll,zgrl); 51 | end 52 | if isempty(fluid) 53 | nwater=0; 54 | else 55 | nwater=fluid.n; 56 | end 57 | % Complex wave velocities 58 | % cVs=solid.Vs.*(1+log(freqs(freno)/FC)./(pi*solid.Qs)+1i./(2*solid.Qs)); 59 | % cVp=solid.Vp.*(1+log(freqs(freno)/FC)./(pi*solid.Qp)+1i./(2*solid.Qp)); 60 | cVs=solid.Vs./(1+log(FC/freqs(freno))/pi./solid.Qs)... 61 | .*(1+sqrt(1+1./solid.Qs.^2)+1i./solid.Qs)./sqrt(1+1./solid.Qs.^2)/2; 62 | cVp=solid.Vp./(1+log(FC/freqs(freno))/pi./solid.Qp)... 63 | .*(1+sqrt(1+1./solid.Qp.^2)+1i./solid.Qp)./sqrt(1+1./solid.Qp.^2)/2; 64 | 65 | % cVs_ife=solid.Vs_ife.*(1+log(freqs(freno)/FC)./(pi*solid.Qs_ife)+1i./(2*solid.Qs_ife)); 66 | % cVp_ife=solid.Vp_ife.*(1+log(freqs(freno)/FC)./(pi*solid.Qp_ife)+1i./(2*solid.Qp_ife)); 67 | cVs_ife=solid.Vs_ife./(1+log(FC/freqs(freno))/pi./solid.Qs_ife)... 68 | .*(1+sqrt(1+1./solid.Qs_ife.^2)+1i./solid.Qs_ife)./sqrt(1+1./solid.Qs_ife.^2)/2; 69 | cVp_ife=solid.Vp_ife./(1+log(FC/freqs(freno))/pi./solid.Qp_ife)... 70 | .*(1+sqrt(1+1./solid.Qp_ife.^2)+1i./solid.Qp_ife)./sqrt(1+1./solid.Qp_ife.^2)/2; 71 | 72 | % Matrices for solid layers (to model displacements) 73 | Mu=solid.Dns.*cVs.^2; 74 | Lamda=solid.Dns.*(cVp.^2-2*cVs.^2); 75 | 76 | ndisp=solid.n+NGRL-1+NGLL-1; 77 | NES=sum(solid.e); 78 | MS_1 = zeros(ndisp,1);MS_2 = zeros(ndisp,1); 79 | KS2_1= zeros(ndisp,1); KS2_2= zeros(ndisp,1); 80 | KS1_1 = zeros(NGLL,NGLL,NES+1);KS1_2 = zeros(NGLL,NGLL,NES+1); 81 | ES_1 = zeros(NGLL,NGLL,NES+1);ES_2 = zeros(NGLL,NGLL,NES+1); 82 | 83 | for eid=1:NES 84 | dze = solid.coor(solid.idx(end,eid))-solid.coor(solid.idx(1,eid)); 85 | dz_dzi = 0.5*dze; 86 | 87 | MS_1(solid.idx(:,eid)) = MS_1(solid.idx(:,eid)) + wgll.*solid.Dns(:,eid)*omega^2*dz_dzi; 88 | MS_2(solid.idx(:,eid)) = MS_2(solid.idx(:,eid)) + wgll.*solid.Dns(:,eid)*omega^2*dz_dzi; 89 | KS2_1(solid.idx(:,eid)) = KS2_1(solid.idx(:,eid)) + wgll.*(Lamda(:,eid)+2*Mu(:,eid))*dz_dzi; 90 | KS2_2(solid.idx(:,eid)) = KS2_2(solid.idx(:,eid)) + wgll.*(Mu(:,eid))*dz_dzi; 91 | 92 | W1 = Lamda(:,eid).*wgll;W2 = Mu(:,eid).*wgll; 93 | KS1_1(:,:,eid) = repmat(W1,1,NGLL).* hgll'; 94 | KS1_2(:,:,eid) = repmat(W2,1,NGLL).* hgll'; 95 | 96 | W1 = (Lamda(:,eid)+2*Mu(:,eid)).*wgll/dz_dzi;W2 = Mu(:,eid).*wgll/dz_dzi; 97 | ES_1(:,:,eid) = hgll * ( repmat(W2,1,NGLL).* hgll'); 98 | ES_2(:,:,eid) = hgll * ( repmat(W1,1,NGLL).* hgll'); 99 | end 100 | 101 | % Matrices for buffer layer (to model displacements) 102 | eid=NES+1; 103 | dze = solid.coor(solid.idx(end,eid))-solid.coor(solid.idx(1,eid)); 104 | dz_dzi = 0.5*dze; 105 | 106 | Mu_IFE=solid.Dns_ife.*cVs_ife.^2; 107 | Lamda_IFE=solid.Dns_ife.*(cVp_ife.^2-2*cVs_ife.^2); 108 | 109 | MS_1(solid.idx(:,eid)) = MS_1(solid.idx(:,eid)) + wgll.*solid.Dns_ife*omega^2*dz_dzi; 110 | MS_2(solid.idx(:,eid)) = MS_2(solid.idx(:,eid)) + wgll.*solid.Dns_ife*omega^2*dz_dzi; 111 | KS2_1(solid.idx(:,eid)) = KS2_1(solid.idx(:,eid)) + wgll.*(Lamda_IFE+2*Mu_IFE)*dz_dzi; 112 | KS2_2(solid.idx(:,eid)) = KS2_2(solid.idx(:,eid)) + wgll.*(Mu_IFE)*dz_dzi; 113 | 114 | W1 = Lamda_IFE.*wgll;W2 = Mu_IFE.*wgll; 115 | KS1_1(:,:,eid) = repmat(W1,1,NGLL).* hgll'; 116 | KS1_2(:,:,eid) = repmat(W2,1,NGLL).* hgll'; 117 | 118 | W1 = (Lamda_IFE+2*Mu_IFE).*wgll/dz_dzi;W2 = Mu_IFE.*wgll/dz_dzi; 119 | ES_1(:,:,eid) = hgll * ( repmat(W2,1,NGLL).* hgll'); 120 | ES_2(:,:,eid) = hgll * ( repmat(W1,1,NGLL).* hgll'); 121 | 122 | % Matrices for semi-infinite element (to model displacements) 123 | dz_dzi=solid.scale; 124 | MS_1(solid.grl_idx) = MS_1(solid.grl_idx) + wgrl.*solid.Dns_ife*omega^2*dz_dzi; 125 | MS_2(solid.grl_idx) = MS_2(solid.grl_idx) + wgrl.*solid.Dns_ife*omega^2*dz_dzi; 126 | KS2_1(solid.grl_idx) = KS2_1(solid.grl_idx) + wgrl.*(Lamda_IFE+2*Mu_IFE)*dz_dzi; 127 | KS2_2(solid.grl_idx) = KS2_2(solid.grl_idx) + wgrl.*Mu_IFE*dz_dzi; 128 | 129 | W1 = Lamda_IFE.*wgrl;W2 = Mu_IFE.*wgrl; 130 | K1_1_IFE=repmat(W1,1,NGRL).* hgrl'; 131 | K1_2_IFE=repmat(W2,1,NGRL).* hgrl'; 132 | 133 | W1 = (Lamda_IFE+2*Mu_IFE).*wgrl/dz_dzi;W2 = Mu_IFE.*wgrl/dz_dzi; 134 | E_1_IFE = hgrl * ( repmat(W2,1,NGRL).* hgrl'); 135 | E_2_IFE = hgrl * ( repmat(W1,1,NGRL).* hgrl'); 136 | 137 | if isempty(fluid) 138 | M=diag([MS_1;MS_2]);K2=diag([KS2_1;KS2_2]); 139 | E = zeros(2*ndisp,2*ndisp); 140 | 141 | for eid=1:NES+1 142 | idx1 = solid.idx(:,eid);idx2=solid.idx(:,eid)+ndisp; 143 | K2(idx1,idx2)=K2(idx1,idx2)+KS1_1(:,:,eid)-KS1_2(:,:,eid).'; 144 | E(idx1,idx1)=E(idx1,idx1)+ES_1(:,:,eid); 145 | E(idx2,idx2)=E(idx2,idx2)+ES_2(:,:,eid); 146 | E(idx2,idx1)=E(idx2,idx1)+KS1_1(:,:,eid).'-KS1_2(:,:,eid); 147 | end 148 | 149 | idx1 = solid.grl_idx;idx2=solid.grl_idx+ndisp; 150 | K2(idx1,idx2)=K2(idx1,idx2)+K1_1_IFE-K1_2_IFE.'; 151 | E(idx1,idx1)=E(idx1,idx1)+E_1_IFE; 152 | E(idx2,idx2)=E(idx2,idx2)+E_2_IFE; 153 | E(idx2,idx1)=E(idx2,idx1)+K1_1_IFE.'-K1_2_IFE; 154 | 155 | else 156 | % Add matrices for fluid layers 157 | MW = zeros(fluid.n,1); 158 | KW = zeros(fluid.n,1); 159 | EW=zeros(NGLL,NGLL,fluid.e); 160 | 161 | for eid=1:sum(fluid.e) 162 | dze = fluid.coor(fluid.idx(end,eid))-fluid.coor(fluid.idx(1,eid)); 163 | dz_dzi = 0.5*dze; 164 | MW(fluid.idx(:,eid)) = MW(fluid.idx(:,eid)) ... 165 | + fluid.Dns(:,eid).*wgll.*omega^2*dz_dzi; 166 | KW(fluid.idx(:,eid)) = KW(fluid.idx(:,eid))... 167 | + fluid.Dns(:,eid).*fluid.Vp(:,eid).^2.*wgll*dz_dzi; 168 | W = fluid.Dns(:,eid).*fluid.Vp(:,eid).^2.*wgll/dz_dzi; 169 | EW(:,:,eid) = hgll * ( repmat(W,1,NGLL).* hgll'); 170 | end 171 | 172 | M=diag([MW;MS_1;MS_2]);K2=diag([KW;KS2_1;KS2_2]); 173 | E = zeros(fluid.n+2*ndisp,fluid.n+2*ndisp); 174 | 175 | for eid=1:sum(fluid.e) 176 | idx = fluid.idx(:,eid); 177 | E(idx,idx)=E(idx,idx)+EW(:,:,eid); 178 | end 179 | 180 | for eid=1:NES+1 181 | idx1 = fluid.n+solid.idx(:,eid);idx2=fluid.n+solid.idx(:,eid)+ndisp; 182 | K2(idx1,idx2)=K2(idx1,idx2)+KS1_1(:,:,eid)-KS1_2(:,:,eid).'; 183 | E(idx1,idx1)=E(idx1,idx1)+ES_1(:,:,eid); 184 | E(idx2,idx2)=E(idx2,idx2)+ES_2(:,:,eid); 185 | E(idx2,idx1)=E(idx2,idx1)+KS1_1(:,:,eid).'-KS1_2(:,:,eid); 186 | end 187 | 188 | idx1 = fluid.n+solid.grl_idx;idx2=fluid.n+solid.grl_idx+ndisp; 189 | K2(idx1,idx2)=K2(idx1,idx2)+K1_1_IFE-K1_2_IFE.'; 190 | E(idx1,idx1)=E(idx1,idx1)+E_1_IFE; 191 | E(idx2,idx2)=E(idx2,idx2)+E_2_IFE; 192 | E(idx2,idx1)=E(idx2,idx1)+K1_1_IFE.'-K1_2_IFE; 193 | 194 | 195 | % add free sea surface condition 196 | M(1,1)=0;E(1,:)=0;E(:,1)=0; 197 | % conective condition between water and solid layers 198 | idx_water_edge=fluid.n;idx_solid_edge=fluid.n+ndisp+1; 199 | M(idx_water_edge,idx_solid_edge)=-fluid.Vp(end).^2*fluid.Dns(end); 200 | M(idx_solid_edge,idx_water_edge)=-fluid.Dns(end)*omega^2; 201 | end 202 | 203 | % eigenvalue decomposition 204 | [eig_U,D]=eig(K2\(M-E)); 205 | K=sqrt(diag(D)); 206 | 207 | % mode filter 208 | 209 | vs_range0=[min(min(cVs.*conj(cVs)./real(cVs))),max(max(cVs.*conj(cVs)./real(cVs)))]; 210 | vs_range1=[min(min(cVs_ife.*conj(cVs_ife)./real(cVs_ife))),max(max(cVs_ife.*conj(cVs_ife)./real(cVs_ife)))]; 211 | vr_range(1)=0.85*min(vs_range0(1),vs_range1(1)); 212 | vr_range(2)=max(vs_range0(2),vs_range1(2)); 213 | 214 | flag=ones(length(D),1); 215 | tol=1e0; 216 | for index=1:length(D) 217 | if tol*abs(real(K(index)))vr_range(2)... 219 | %|| abs(imag(K(index)))>tol*abs(real(K(index))) 220 | flag(index)=0; continue; 221 | end 222 | end 223 | 224 | index=find(flag); 225 | hw_freq=K(index); 226 | eig_U=eig_U(:,index); 227 | vc_freq=real(omega)./real(hw_freq); 228 | 229 | % sorting using real-domain phase velocity and wavenumber 230 | [~,I] = sort(real(hw_freq),'descend'); 231 | hw_freq=hw_freq(I); 232 | vc_freq=real(omega)./real(hw_freq); 233 | eig_U=eig_U(:,I); 234 | 235 | % ur=V(1:ndisp,index)./hw_freq.'; 236 | % uz=V(ndisp+1:end,index); 237 | 238 | if length(vc_freq)>size(vc,1) 239 | vc(length(vc_freq),:)=nan; 240 | hw(length(vc_freq),:)=nan; 241 | end 242 | 243 | vc(1:length(vc_freq),freno)=vc_freq; 244 | hw(1:length(hw_freq),freno)=hw_freq; 245 | 246 | if output_v==0 247 | wavefields=[];continue; 248 | end 249 | 250 | % output wavefields 251 | wavefields(freno).ur=eig_U(nwater+(1:ndisp),:)./hw_freq.'; 252 | wavefields(freno).uz=eig_U(nwater+ndisp+(1:ndisp),:); 253 | wavefields(freno).solid_coor=[solid.coor(1:end-1);solid.coor_s_grl]; 254 | if ~isempty(fluid) 255 | wavefields(freno).p=eig_U(1:nwater,:); 256 | wavefields(freno).fluid_coor=fluid.coor; 257 | end 258 | end 259 | return; 260 | 261 | --------------------------------------------------------------------------------