Changeset 22813


Ignore:
Timestamp:
05/29/18 23:51:25 (7 years ago)
Author:
adhikari
Message:

CHG: Farrell solutions recovered

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/examples/SlrFarrell/runme.m

    r22805 r22813  
    11
    22clear all;
    3 steps=[2]; %
     3steps=[5]; %
    44
    55if any(steps==1) % Global mesh creation {{{
     
    7070        % initial sea-level: 1 m RSL everywhere.
    7171        md.slr.sealevel=md.mask.ocean_levelset;
     72       
     73        md.slr.deltathickness=zeros(md.mesh.numberofelements,1);
     74        md.slr.steric_rate=zeros(md.mesh.numberofvertices,1);
    7275
    7376        save ./Models/SlrFarrell.Loads md;
     
    8588        % Love numbers and reference frame: CF or CM (choose one!) 
    8689        nlove=10001;    % up to 10,000 degree
    87         md.slr.love_h = love_numbers('h','CM'); md.slr.love_h(nlov+1:end)=[];
    88         md.slr.love_k = love_numbers('k','CM'); md.slr.love_k(nlov+1:end)=[];
    89         md.slr.love_l = love_numbers('l','CM'); md.slr.love_l(nlov+1:end)=[];
     90        md.slr.love_h = love_numbers('h','CM'); md.slr.love_h(nlove+1:end)=[];
     91        md.slr.love_k = love_numbers('k','CM'); md.slr.love_k(nlove+1:end)=[];
     92        md.slr.love_l = love_numbers('l','CM'); md.slr.love_l(nlove+1:end)=[];
    9093
    9194        % Mask: for computational efficiency only those elements that have loads are convolved!
    92         md.mask.groundedice_levelset = ones(md.mesh.numberofvertices,1); % 1 = ice is grounnded
    93         md.mask.ice_levelset = ones(md.mesh.numberofvertices,1);
    94         pos=find(md.slr.deltathickness~=0);
    95         md.mask.ice_levelset(md.mesh.elements(pos,:))=-1; % -1 = ice loads
    9695        md.mask.land_levelset = 1-md.mask.ocean_levelset;
     96        % fake ice load in one element! 
     97        md.mask.ice_levelset = ones(md.mesh.numberofvertices,1); % no ice
     98        md.mask.groundedice_levelset = -ones(md.mesh.numberofvertices,1); % floated...
     99        pos=find(md.mesh.lat <-80);
     100        md.mask.ice_levelset(pos(1))=-1; % ice yes! 
     101        md.mask.groundedice_levelset(pos(1))=1; % ice grounded! 
    97102
    98103        %% IGNORE BUT DO NOT DELETE %% {{{
     
    119124        md = loadmodel('./Models/SlrFarrell.Parameterization');
    120125
    121         % Request outputs
    122         md.slr.requested_outputs = {'SlrUmotion','SlrNmotion','SlrEmotion'};
    123        
    124126        % Cluster info
    125127        md.cluster=generic('name',oshostname(),'np',3);
     
    137139        md = loadmodel('./Models/SlrFarrell.Solution');
    138140
    139         % loads and solutions.
    140         sol1 = md.slr.deltathickness*100; % WEH cm
    141         sol2 = md.results.SlrSolution.SlrUmotion*1000; % [mm]
    142         sol3 = md.results.SlrSolution.SlrNmotion*1000; % [mm]
    143         sol4 = md.results.SlrSolution.SlrEmotion*1000; % [mm]
    144         sol_name={'Change in water equivalent height [cm]', 'Vertical displacement [mm]',...
    145                 'Horizontal (NS) displacement [mm]', 'Horizontal (EW) displacement [mm]'};
    146 
     141        % solutions.
     142        sol = md.results.SealevelriseSolution.Sealevel*100; % per cent normalized by GMSL (which 1 m) 
     143       
    147144        res = 1.0; % degree
    148145
     
    151148        sol_grid = zeros(size(lat_grid));
    152149
    153         for kk=1:4
    154                 sol=eval(sprintf('sol%d',kk));
     150        % Make a interpolation object
     151        F = scatteredInterpolant(md.mesh.lat,md.mesh.long,sol);
     152        F.Method = 'linear';
     153        F.ExtrapolationMethod = 'linear';
    155154       
    156                 % if data are on elements, map those on to the vertices {{{
    157                 if length(sol)==md.mesh.numberofelements
    158                         % map on to the vertices
    159                         for jj=1:md.mesh.numberofelements
    160                                 ii=(jj-1)*3;
    161                                 pp(ii+1:ii+3)=md.mesh.elements(jj,:);
    162                         end
    163                         for jj=1:md.mesh.numberofvertices
    164                                 pos=ceil(find(pp==jj)/3);
    165                                 temp(jj)=mean(sol(pos));
    166                         end
    167                         sol=temp';
    168                 end % }}}
     155        % Do the interpolation to get gridded solutions...
     156        sol_grid = F(lat_grid, lon_grid);
     157        sol_grid(isnan(sol_grid))=0;
     158        sol_grid(lat_grid>85 & sol_grid==0) =NaN; % set polar unphysical 0s to Nan
    169159
    170                 % Make a interpolation object
    171                 F = scatteredInterpolant(md.mesh.lat,md.mesh.long,sol);
    172                 F.Method = 'linear';
    173                 F.ExtrapolationMethod = 'linear';
     160        set(0,'DefaultAxesFontSize',18,'DefaultAxesLineWidth',1,'DefaultTextFontSize',18,'DefaultLineMarkerSize',8)
     161        figure1=figure('Position', [100, 100, 1000, 500]);
     162        gcf; load coast; cla;
     163        %pcolor(lon_grid,lat_grid,sol_grid); shading flat; hold on;
     164        contourf(lon_grid,lat_grid,sol_grid,[96 98 100 102 104 105]); shading flat; hold on;
     165        geoshow(lat,long,'DisplayType','polygon','FaceColor','white');
     166        plot(long,lat,'k'); hold off;
     167        % define colormap, caxis, xlim etc {{{
     168        c1=colorbar;
     169        %colormap('haxby');
     170        %caxis([96 104]);
     171        xlim([-180 180]);
     172        ylim([-90 90]);
     173        % }}}
     174        grid on;
     175        title('Relative sea-level [mm]');
     176        set(gcf,'color','w');
    174177
    175                 % Do the interpolation to get gridded solutions...
    176                 sol_grid = F(lat_grid, lon_grid);
    177                 sol_grid(isnan(sol_grid))=0;
    178                 sol_grid(lat_grid>85 & sol_grid==0) =NaN; % set polar unphysical 0s to Nan
    179 
    180                 set(0,'DefaultAxesFontSize',18,'DefaultAxesLineWidth',1,'DefaultTextFontSize',18,'DefaultLineMarkerSize',8)
    181                 figure1=figure('Position', [100, 100, 1000, 500]);
    182                 gcf;
    183                 load coast;
    184                 cla;
    185                 pcolor(lon_grid,lat_grid,sol_grid); shading flat; hold on;
    186                 plot(long,lat,'k'); hold off;
    187                 c1=colorbar;
    188                 colormap(jet);
    189                 xlim([-180 180]);
    190                 ylim([-90 90]);
    191                 grid on;
    192                 title(sol_name(kk));
    193                 set(gcf,'color','w');
    194 
    195                 %export_fig('Fig5.pdf');
    196         end
     178        %export_fig('Fig5.pdf');
    197179
    198180end % }}}
    199181
    200 
Note: See TracChangeset for help on using the changeset viewer.