Changeset 26744 for issm/trunk/test/NightlyRun/test2021.m
- Timestamp:
- 12/22/21 10:39:44 (3 years ago)
- Location:
- issm/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk
- Property svn:mergeinfo changed
/issm/trunk-jpl merged: 25837-25866,25868-25993,25995-26330,26332-26733,26736-26739,26741
- Property svn:mergeinfo changed
-
issm/trunk/test
- Property svn:mergeinfo changed
-
issm/trunk/test/NightlyRun/test2021.m
r25836 r26744 1 %Test Name: SESAWsl r2 % SESAW method of solving GRD sl r3 % 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 4 4 5 5 md=model; 6 md.mesh=gmshplanet('radius',6.371012*10^3,'resolution', 500); %500 km resolution mesh6 md.mesh=gmshplanet('radius',6.371012*10^3,'resolution',700.); %700 km resolution mesh 7 7 8 % read in love numbers. 8 % read in love numbers. 9 9 love_numbers = lovenumbers('maxdeg',10000); 10 10 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 12 disp(['Computing Greens functions...']); 13 [Grigid,Gelastic,Uelastic]=greensfunctions(md.mesh.elements,md.mesh.lat,md.mesh.long,love_numbers); 14 14 greens.Grigid = Grigid; 15 15 greens.Gelast = Gelastic; … … 17 17 clearvars Grigid Gelastic Uelastic 18 18 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); 21 21 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. 23 load('../Data/GRACE_JPL_April2002_WEH.mat'); 24 24 lat = repmat(lat',720,1); 25 25 lon = repmat(lon,1,360); 26 F = scatteredInterpolant(lat(:),lon(:),weh(:)); 26 F = scatteredInterpolant(lat(:),lon(:),weh(:)); 27 27 28 % map GRACE data onto elemental centorids. 28 % map GRACE data onto elemental centorids. 29 29 loads_element = F(late,longe); 30 30 loads_element(isnan(loads_element))=0; 31 31 32 % ocean mask mapped onto the elemental centroids. 33 ocean_element = gmtmask(late,longe); 32 % ocean mask mapped onto the elemental centroids. 33 ocean_element = gmtmask(late,longe); 34 34 35 35 % Area of individual elements 36 area_element=GetAreasSphericalTria(md.mesh.elements,md.mesh.lat,md.mesh.long,md.solidearth.planetradius); 36 area_element=GetAreasSphericalTria(md.mesh.elements,md.mesh.lat,md.mesh.long,md.solidearth.planetradius); 37 37 38 % Parameters input for SESAWsl r 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. 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; 43 43 para.ocean_density = md.materials.rho_water; 44 para.loads_density = md.materials.rho_freshwater; % if land loads are ice, use ice density. 44 para.loads_density = md.materials.rho_freshwater; % if land loads are ice, use ice density. 45 45 46 para.rel_tol = 1e-5; 46 para.rel_tol = 1e-5; 47 47 48 % solid earth rheology. 49 para.solidearth = 'rigid'; % 'rigid' or 'elastic'; 48 % solid earth rheology. 49 para.solidearth = 'rigid'; % 'rigid' or 'elastic'; 50 50 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. 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; 60 60 para.rotational.omega = md.solidearth.rotational.angularvelocity; 61 61 62 % solve: Rigid without rotational feedbacks. 63 disp(['Solving sesaw-sl r 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. 63 disp(['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); 65 65 66 % solve: Rigid with rotational feedbacks. 67 para.rotational.flag = 1; 68 disp(['Solving sesaw-sl r 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. 67 para.rotational.flag = 1; 68 disp(['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); 70 70 71 % solve: Elastic with rotational feedbacks. 72 para.solidearth = 'elastic'; 73 disp(['Solving sesaw-sl r 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. 72 para.solidearth = 'elastic'; 73 disp(['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); 75 75 76 % solve: Elastic with rotational feedbacks. 77 para.rotational.flag = 0; 78 disp(['Solving sesaw-sl r 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. 77 para.rotational.flag = 0; 78 disp(['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); 80 80 81 81 %Fields and tolerances to track changes 82 82 field_names={'eus_rigid','eus_rigid_rot','eus_elast','eus_elast_rot',... 83 83 'rsl_rigid','rsl_rigid_rot','rsl_elast','rsl_elast_rot'}; 84 84 field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13}; 85 85 field_values={eus_rigid,eus_rigid_rot,eus_elast,eus_elast_rot,... 86 86 rsl_rigid,rsl_rigid_rot,rsl_elast,rsl_elast_rot}; 87 87
Note:
See TracChangeset
for help on using the changeset viewer.