Ignore:
Timestamp:
08/07/20 17:58:28 (5 years ago)
Author:
adhikari
Message:

CHG: reworded on analytic solutions for computing love_at_depth for honogeneous planet. Plus a couple of figures that show comparision between ISSM (circles) and analytic (solid lines) for both surface loading and tidal forcing

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/contrib/adhikari/yi_analytic_homogenous.m

    r25354 r25357  
    11
    2 function [yana r] = love_analytic(n,N,source);
    3         % n = SH degree
    4         % N = number of layers
    5         % source = 9 (volumentric potential)
    6         %                       = 11 (surface loads)
     2function yana = love_analytic(param);
     3        % param = required parameters
     4        % param.rho = earth density [kg/m3]
     5        % param.mu = shear modulus [Pa]
     6        % param.G = universal gravitational constant [m3 kg-1 s-2]
     7        % param.radius = radius of the surface and internal layers of the planet. [m]
     8        % param.g0 = acceleration due to gravity on the planetary surface. [m s-2]
     9        % param.source = model forcing type [9 volumentaric potential, 11 surface loads]
     10        % param.degree = SH degree;
    711
    8 rho=5511; %density
    9 mu=.75e11; %shear modulus
    10 G=6.67e-11;
    11 a=6371e3; %surface radius
    12 g0=9.8134357285509388; % surface gravity
     12        %dbstop if naninf
    1313
    14 r=linspace(10e3,a,N+1);
     14        rho = param.rho;
     15        mu = param.mu;
     16        G = param.G;
     17        a = max(param.radius);
     18        g0 = param.g0;
     19        r = param.radius;
     20        source = param.source;
     21        n = param.degree;
    1522
    16 C1=0;
    17 C2=0;
    18 C6=0;
    19 if (source==9)
    20         C3 = -1/2*n*(n+1)*rho/((2*n^2+4*n+3)*mu+n*rho*g0*a)*a^(-n);
    21         C4 = 1/2/(n-1)*n^2*(n+2)*rho/((2*n^2+4*n+3)*mu+n*rho*g0*a)*a^(-n+2);
    22         C5 = (1+3/2/(n-1)*n*rho*g0*a/((2*n^2+4*n+3)*mu+n*rho*g0*a))*a^(-n);
    23 elseif (source==11)
    24         C3=(n*rho*(n^2 - 1)) / (a^n*(4*G*pi*a^2*n*rho^2 + 3*mu*(2*n^2 + 4*n + 3)));
    25         C4=-(a^2*n^2*rho*(n + 2)) / (a^n*(4*G*pi*a^2*n*rho^2 + 3*mu*(2*n^2 + 4*n + 3)));
    26         C5=(3*mu*(2*n^2 + 4*n + 3)) / (a^n*(4*G*pi*a^2*n*rho^2 + 3*mu*(2*n^2 + 4*n + 3)));
    27         %C3 = rho*(n-1)^2*(n+1)*n / (6*mu*a^n*(n-1)*(2*n^2+4*n+3) - 4*pi*G*rho^2*n*(3*a^(-n+2)-(2*n+1)*a^(n+2)));
    28         %C4 = -a^2*(n+2)*n/(n^2-1) * C3;
    29         %C5 = 1/a^n - 4*pi*G*rho*a^2/(n^2-1) * C3;
    30 end
     23        C1=0;
     24        C2=0;
     25        C6=0;
     26        if (source==9)
     27                C3 = -1/2*n*(n+1)*rho/((2*n^2+4*n+3)*mu+n*rho*g0*a)*a^(-n);
     28                C4 = 1/2/(n-1)*n^2*(n+2)*rho/((2*n^2+4*n+3)*mu+n*rho*g0*a)*a^(-n+2);
     29                C5 = (1+3/2/(n-1)*n*rho*g0*a/((2*n^2+4*n+3)*mu+n*rho*g0*a))*a^(-n);
     30        elseif (source==11)
     31                C3=(n*rho*(n^2 - 1)) / (a^n*(4*G*pi*a^2*n*rho^2 + 3*mu*(2*n^2 + 4*n + 3)));
     32                C4=-(a^2*n^2*rho*(n + 2)) / (a^n*(4*G*pi*a^2*n*rho^2 + 3*mu*(2*n^2 + 4*n + 3)));
     33                C5=(3*mu*(2*n^2 + 4*n + 3)) / (a^n*(4*G*pi*a^2*n*rho^2 + 3*mu*(2*n^2 + 4*n + 3)));
     34                %C3 = rho*(n-1)^2*(n+1)*n / (6*mu*a^n*(n-1)*(2*n^2+4*n+3) - 4*pi*G*rho^2*n*(3*a^(-n+2)-(2*n+1)*a^(n+2)));
     35                %C4 = -a^2*(n+2)*n/(n^2-1) * C3;
     36                %C5 = 1/a^n - 4*pi*G*rho*a^2/(n^2-1) * C3;
     37        end
    3138
    32 y1 = C1./r.^n + C2./r.^(n+2) + C3*r.^(n+1) + C4*r.^(n-1);
    33 y2 = 2*mu*( (-n^2-3*n+1)/(n+1)*C1*r.^(-n-1) - (n+2)*C2*r.^(-n-3) +...
    34         (n^2-n-3)/n*C3*r.^n + (n-1)*C4*r.^(n-2) ) + 4/3*pi*G*rho^2*( C1*r.^(-n+1) +...
    35         C2*r.^(-n-1) + C3*r.^(n+2) + C4*r.^n ) - rho*C5*r.^n - rho*C6*r.^(-n-1);
    36 y3 = -(n-2)/(n*(n+1))*C1*r.^(-n) - 1/(n+1)*C2*r.^(-n-2) + (n+3)/(n*(n+1))*C3*r.^(n+1) + C4/n*r.^(n-1);
    37 y4 = 2*mu*( (n-1)/n*C1*r.^(-n-1) + (n+2)/(n+1)*C2*r.^(-n-3) + (n+2)/(n+1)*C3*r.^n + (n-1)/n*C4*r.^(n-2) );
    38 y5 = C5*r.^n + C6*r.^(-n-1);
    39 y6 = n*C5*r.^(n-1) - (n+1)*C6*r.^(-n-2) - 4*pi*G*rho*( C1*r.^(-n) + C2*r.^(-n-2) + C3*r.^(n+1) + C4*r.^(n-1));
     39        y1 = C1./r.^n + C2./r.^(n+2) + C3*r.^(n+1) + C4*r.^(n-1);
     40        y2 = 2*mu*( (-n^2-3*n+1)/(n+1)*C1*r.^(-n-1) - (n+2)*C2*r.^(-n-3) +...
     41                (n^2-n-3)/n*C3*r.^n + (n-1)*C4*r.^(n-2) ) + 4/3*pi*G*rho^2*( C1*r.^(-n+1) +...
     42                C2*r.^(-n-1) + C3*r.^(n+2) + C4*r.^n ) - rho*C5*r.^n - rho*C6*r.^(-n-1);
     43        y3 = -(n-2)/(n*(n+1))*C1*r.^(-n) - 1/(n+1)*C2*r.^(-n-2) + (n+3)/(n*(n+1))*C3*r.^(n+1) + C4/n*r.^(n-1);
     44        y4 = 2*mu*( (n-1)/n*C1*r.^(-n-1) + (n+2)/(n+1)*C2*r.^(-n-3) + (n+2)/(n+1)*C3*r.^n + (n-1)/n*C4*r.^(n-2) );
     45        y5 = C5*r.^n + C6*r.^(-n-1);
     46        y6 = n*C5*r.^(n-1) - (n+1)*C6*r.^(-n-2) - 4*pi*G*rho*( C1*r.^(-n) + C2*r.^(-n-2) + C3*r.^(n+1) + C4*r.^(n-1));
    4047
    41 yana = [y1; y2; y3; y4; y5; y6]';
     48        yana = [y1 y2 y3 y4 y5 y6];
    4249
Note: See TracChangeset for help on using the changeset viewer.