Changeset 25296


Ignore:
Timestamp:
07/20/20 23:26:08 (5 years ago)
Author:
adhikari
Message:

CHG: Restructuring of Love kerneles by SH degree, frequency, interface, and y.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m

    r25168 r25296  
    222222                field = field*yts;
    223223        elseif (strcmp(fieldname,'LoveKernelsReal') | strcmp(fieldname,'LoveKernelsImag')),
    224                 nlayer = md.materials.numlayers;
    225                 degmax = md.love.sh_nmax;
    226                 nfreq  = md.love.nfreq;
    227                 temp_field = cell(degmax+1,nfreq,nlayer+1,6);
     224                nlayer = md.materials.numlayers;
     225                degmax = md.love.sh_nmax;
     226                nfreq  = md.love.nfreq;
     227                r0 = md.love.r0;
     228                g0 = md.love.g0;
     229                mu0 = md.love.mu0;
     230                rr = md.materials.radius;
     231                rho= md.materials.density;
     232                rho_avg = sum( rho .*  diff(rr.^3)/sum(diff(rr.^3)) );
     233                temp_field = cell(degmax+1,nfreq,nlayer+1,6);
    228234                for ii=1:degmax+1
    229235                        for jj=1:nfreq
    230236                                for kk=1:nlayer+1
    231                                         ll = (ii-1)*(nlayer+1)*6 + ((kk-1)*6+1);
    232                                         for mm=1:6
    233                                                 temp_field{ii,jj,kk,mm} = field(ll+(mm-1),jj);
     237                                        if (kk<nlayer+1)
     238                                                ll = (ii-1)*(nlayer+1)*6 + ((kk-1)*6+1) + 3;
     239                                                temp_field{ii,jj,kk,1} = field(ll+(1-1),jj)*r0;         % mm = 4
     240                                                temp_field{ii,jj,kk,2} = field(ll+(2-1),jj)*mu0;        % mm = 5
     241                                                temp_field{ii,jj,kk,3} = field(ll+(3-1),jj)*r0;         % mm = 6
     242                                                temp_field{ii,jj,kk,4} = field(ll+(4-1),jj)*mu0;        % mm = 1
     243                                                temp_field{ii,jj,kk,5} = field(ll+(5-1),jj)*r0*g0;      % mm = 2
     244                                                temp_field{ii,jj,kk,6} = field(ll+(6-1),jj)*g0;         % mm = 3
     245                                        else % surface 
     246                                                ll = ii*(nlayer+1)*6 - 2;
     247                                                temp_field{ii,jj,kk,1} = field(ll+(1-1),jj)*r0;
     248                                                temp_field{ii,jj,kk,3} = field(ll+(2-1),jj)*r0;
     249                                                temp_field{ii,jj,kk,5} = field(ll+(3-1),jj)*r0*g0;
     250                                                % surface BC
     251                                                temp_field{ii,jj,kk,4} = 0;
     252                                                if (md.love.forcing_type==9)
     253                                                        temp_field{ii,jj,kk,2} = 0;
     254                                                        temp_field{ii,jj,kk,6} = (2*ii-1)/r0 - ii*field(ll+(3-1),jj)*g0;
     255                                                elseif (md.love.forcing_type==11)
     256                                                        temp_field{ii,jj,kk,2} = -(2*(ii-1)+1)*rho_avg/3;
     257                                                        temp_field{ii,jj,kk,6} = (2*ii-1)/r0 - ii*field(ll+(3-1),jj)*g0;
     258                                                end
    234259                                        end
    235260                                end
    236261                        end
    237262                end
    238                 field=temp_field;
     263                field=temp_field; 
    239264        end
    240265
Note: See TracChangeset for help on using the changeset viewer.