Ignore:
Timestamp:
12/22/21 10:39:44 (3 years ago)
Author:
Mathieu Morlighem
Message:

merged trunk-jpl and trunk for revision 26742

Location:
issm/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk

  • issm/trunk/test

  • issm/trunk/test/NightlyRun/test2021.m

    r25836 r26744  
    1 %Test Name: SESAWslr
    2 % SESAW method of solving GRD slr
    3 % reference: Adhikari et al., 2016, GMD, https://doi.org/10.5194/gmd-9-1087-2016 
     1%Test Name: SESAWslc
     2% SESAW method of solving GRD slc
     3% reference: Adhikari et al., 2016, GMD, https://doi.org/10.5194/gmd-9-1087-2016
    44
    55md=model;
    6 md.mesh=gmshplanet('radius',6.371012*10^3,'resolution',500); %500 km resolution mesh
     6md.mesh=gmshplanet('radius',6.371012*10^3,'resolution',700.); %700 km resolution mesh
    77
    8 % read in love numbers. 
     8% read in love numbers.
    99love_numbers = lovenumbers('maxdeg',10000);
    1010
    11 % compute Green's functions 
    12 disp(['Computing Greens functions...']); 
    13 [Grigid,Gelastic,Uelastic]=greensfunctions(md.mesh.elements,md.mesh.lat,md.mesh.long,love_numbers); 
     11% compute Green's functions
     12disp(['Computing Greens functions...']);
     13[Grigid,Gelastic,Uelastic]=greensfunctions(md.mesh.elements,md.mesh.lat,md.mesh.long,love_numbers);
    1414greens.Grigid = Grigid;
    1515greens.Gelast = Gelastic;
     
    1717clearvars Grigid Gelastic Uelastic
    1818
    19 % compute lat,long at elemental centroids. 
    20 [late,longe] = latelonge(md.mesh.elements,md.mesh.lat,md.mesh.long); 
     19% compute lat,long at elemental centroids.
     20[late,longe] = latelonge(md.mesh.elements,md.mesh.lat,md.mesh.long);
    2121
    22 % load GRACE data. Same as used in test2020. 
    23 load('../Data/GRACE_JPL_April2002_WEH.mat'); 
     22% load GRACE data. Same as used in test2020.
     23load('../Data/GRACE_JPL_April2002_WEH.mat');
    2424lat = repmat(lat',720,1);
    2525lon = repmat(lon,1,360);
    26 F = scatteredInterpolant(lat(:),lon(:),weh(:)); 
     26F = scatteredInterpolant(lat(:),lon(:),weh(:));
    2727
    28 % map GRACE data onto elemental centorids. 
     28% map GRACE data onto elemental centorids.
    2929loads_element = F(late,longe);
    3030loads_element(isnan(loads_element))=0;
    3131
    32 % ocean mask mapped onto the elemental centroids. 
    33 ocean_element = gmtmask(late,longe); 
     32% ocean mask mapped onto the elemental centroids.
     33ocean_element = gmtmask(late,longe);
    3434
    3535% Area of individual elements
    36 area_element=GetAreasSphericalTria(md.mesh.elements,md.mesh.lat,md.mesh.long,md.solidearth.planetradius); 
     36area_element=GetAreasSphericalTria(md.mesh.elements,md.mesh.lat,md.mesh.long,md.solidearth.planetradius);
    3737
    38 % Parameters input for SESAWslr solver.
    39 para.ocean_element = ocean_element; 
    40 para.loads_element = loads_element; 
    41 para.area_element = area_element; 
    42 para.earth_density = md.materials.earth_density; 
     38% Parameters input for SESAWslc solver.
     39para.ocean_element = ocean_element;
     40para.loads_element = loads_element;
     41para.area_element = area_element;
     42para.earth_density = md.materials.earth_density;
    4343para.ocean_density = md.materials.rho_water;
    44 para.loads_density = md.materials.rho_freshwater; % if land loads are ice, use ice density. 
     44para.loads_density = md.materials.rho_freshwater; % if land loads are ice, use ice density.
    4545
    46 para.rel_tol = 1e-5; 
     46para.rel_tol = 1e-5;
    4747
    48 % solid earth rheology. 
    49 para.solidearth = 'rigid'; % 'rigid' or 'elastic'; 
     48% solid earth rheology.
     49para.solidearth = 'rigid'; % 'rigid' or 'elastic';
    5050
    51 % rotational feedbacks. 
    52 para.rotational.flag = 0; % Rotational flag on (1) or off (0) 
    53 para.rotational.earth_radius = md.solidearth.planetradius; 
    54 para.rotational.load_love_k2 = love_numbers.k(3); 
    55 para.rotational.tide_love_k2 = love_numbers.tk(3); 
    56 para.rotational.tide_love_h2 = love_numbers.th(3); 
    57 para.rotational.tide_love_k2secular = love_numbers.tk2secular; 
    58 para.rotational.moi_p = md.solidearth.rotational.polarmoi; 
    59 para.rotational.moi_e = md.solidearth.rotational.equatorialmoi; 
     51% rotational feedbacks.
     52para.rotational.flag = 0; % Rotational flag on (1) or off (0)
     53para.rotational.earth_radius = md.solidearth.planetradius;
     54para.rotational.load_love_k2 = love_numbers.k(3);
     55para.rotational.tide_love_k2 = love_numbers.tk(3);
     56para.rotational.tide_love_h2 = love_numbers.th(3);
     57para.rotational.tide_love_k2secular = love_numbers.tk2secular;
     58para.rotational.moi_p = md.solidearth.rotational.polarmoi;
     59para.rotational.moi_e = md.solidearth.rotational.equatorialmoi;
    6060para.rotational.omega = md.solidearth.rotational.angularvelocity;
    6161
    62 % solve: Rigid without rotational feedbacks. 
    63 disp(['Solving sesaw-slr for Rigid Earth WITHOUT rotational feedback...']);
    64 [eus_rigid,rsl_rigid] = SESAWslr(md.mesh.elements,md.mesh.lat,md.mesh.long,greens,para); 
     62% solve: Rigid without rotational feedbacks.
     63disp(['Solving sesaw-slc for Rigid Earth WITHOUT rotational feedback...']);
     64[eus_rigid,rsl_rigid] = SESAWslr(md.mesh.elements,md.mesh.lat,md.mesh.long,greens,para);
    6565
    66 % solve: Rigid with rotational feedbacks. 
    67 para.rotational.flag = 1; 
    68 disp(['Solving sesaw-slr for Rigid Earth WITH rotational feedback...']);
    69 [eus_rigid_rot,rsl_rigid_rot] = SESAWslr(md.mesh.elements,md.mesh.lat,md.mesh.long,greens,para); 
     66% solve: Rigid with rotational feedbacks.
     67para.rotational.flag = 1;
     68disp(['Solving sesaw-slc for Rigid Earth WITH rotational feedback...']);
     69[eus_rigid_rot,rsl_rigid_rot] = SESAWslr(md.mesh.elements,md.mesh.lat,md.mesh.long,greens,para);
    7070
    71 % solve: Elastic with rotational feedbacks. 
    72 para.solidearth = 'elastic'; 
    73 disp(['Solving sesaw-slr for Elastic Earth WITH rotational feedback...']);
    74 [eus_elast_rot,rsl_elast_rot] = SESAWslr(md.mesh.elements,md.mesh.lat,md.mesh.long,greens,para); 
     71% solve: Elastic with rotational feedbacks.
     72para.solidearth = 'elastic';
     73disp(['Solving sesaw-slc for Elastic Earth WITH rotational feedback...']);
     74[eus_elast_rot,rsl_elast_rot] = SESAWslr(md.mesh.elements,md.mesh.lat,md.mesh.long,greens,para);
    7575
    76 % solve: Elastic with rotational feedbacks. 
    77 para.rotational.flag = 0; 
    78 disp(['Solving sesaw-slr for Elastic Earth WITHOUT rotational feedback...']);
    79 [eus_elast,rsl_elast] = SESAWslr(md.mesh.elements,md.mesh.lat,md.mesh.long,greens,para); 
     76% solve: Elastic with rotational feedbacks.
     77para.rotational.flag = 0;
     78disp(['Solving sesaw-slc for Elastic Earth WITHOUT rotational feedback...']);
     79[eus_elast,rsl_elast] = SESAWslr(md.mesh.elements,md.mesh.lat,md.mesh.long,greens,para);
    8080
    8181%Fields and tolerances to track changes
    8282field_names={'eus_rigid','eus_rigid_rot','eus_elast','eus_elast_rot',...
    83                   'rsl_rigid','rsl_rigid_rot','rsl_elast','rsl_elast_rot'};
     83             'rsl_rigid','rsl_rigid_rot','rsl_elast','rsl_elast_rot'};
    8484field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
    8585field_values={eus_rigid,eus_rigid_rot,eus_elast,eus_elast_rot,...
    86                   rsl_rigid,rsl_rigid_rot,rsl_elast,rsl_elast_rot};
     86             rsl_rigid,rsl_rigid_rot,rsl_elast,rsl_elast_rot};
    8787
Note: See TracChangeset for help on using the changeset viewer.