Changeset 26259


Ignore:
Timestamp:
05/12/21 11:41:59 (4 years ago)
Author:
adhikari
Message:

CHG: steps 6 and 7 are updated. some aspects are still unclear, e.g., whether GRACE monthly solutions should be cumsum'ed

File:
1 edited

Legend:

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

    r26258 r26259  
    22addpath('../Data','../Functions');
    33
    4 steps=[1:7];
     4steps=[6:7];
    55
    66if any(steps==1) % {{{
     
    142142        sol2 = (md.results.TransientSolution.Sealevel-md.results.TransientSolution.Bed)*1000;   % [mm]
    143143
    144         sol_name={'Change in water equivalent height [cm]', 'Relative sea-level [mm]'};
     144        sol_name={'Change in water equivalent height [cm]', 'Relative sea level [mm]'};
    145145        fig_name={'Fig_dH.pdf','Fig_slr.pdf'};
    146146
     
    200200        disp('Projecting  loads onto the mesh...');
    201201        time_range = 2007 + [15 350]/365;
    202         water_load = grace(md.mesh.elements,md.mesh.lat,md.mesh.long,time_range(1),time_range(2));
    203 
    204         [ne,nt]=size(water_load);
    205         md.solidearth.surfaceload.icethicknesschange = zeros(ne+1,nt);
    206         md.solidearth.surfaceload.icethicknesschange(1:ne,:) = water_load*md.materials.rho_freshwater/md.materials.rho_ice;
    207         md.solidearth.surfaceload.icethicknesschange(ne+1,:)=[1:nt]; % times
    208 
     202        onvertex = 1; % map data on vertex. If 0, it maps on the elemental centroid.
     203        water_load = grace(md.mesh.elements,md.mesh.lat,md.mesh.long,time_range(1),time_range(2),onvertex);
     204        rho_water2ice = md.materials.rho_freshwater/md.materials.rho_ice;
     205        ice_load = water_load*rho_water2ice; % ice height equivalent.
     206
     207        % masstransport evalulates diff between the successive times, so we should cumsum.
     208        num_time = size(ice_load,2);
     209        md.masstransport.spcthickness = [md.geometry.thickness + ice_load];
     210        md.masstransport.spcthickness(md.mesh.numberofvertices+1,:)=[0:num_time-1];
     211
     212        %Physics
    209213        md.transient.issmb=0;
    210         md.transient.ismasstransport=0;
    211214        md.transient.isstressbalance=0;
    212215        md.transient.isthermal=0;
    213         md.transient.isgia=1;   md.transient.isslr=1;
    214 
    215         md.timestepping.start_time=-1;
    216         md.timestepping.final_time=nt;
     216        md.transient.ismasstransport=1;
     217        md.transient.isslc=1;
     218
     219        md.solidearth.settings.rigid=1;
     220        md.solidearth.settings.elastic=1;
     221        md.solidearth.settings.rotation=1;
     222       
     223        %time stepping:
     224        md.timestepping.start_time=0;
    217225        md.timestepping.time_step=1;
    218         md.timestepping.interp_forcing=0;
    219         md.settings.output_frequency=1;
     226        md.timestepping.final_time=num_time;
    220227
    221228        md.cluster=generic('name',oshostname(),'np',3);
    222229        md.verbose=verbose('111111111');
    223230
    224         md.solidearth.requested_outputs = {'Sealevel','SealevelRSL'};
     231        md.solidearth.requested_outputs = {'Sealevel','Bed'};
    225232
    226233        md=solve(md,'tr');
     
    232239        md = loadmodel('./Models/SlrGRACE_Transient');
    233240
    234         time = md.solidearth.surfaceload.icethicknesschange(end,:);
     241        time = md.masstransport.spcthickness(end,:);
    235242
    236243        for tt=1:length(time)
    237                 gmsl(tt) = md.results.TransientSolution(tt).Bslr*1000; % GMSL rate mm/yr
    238                 sol1(:,tt) = md.solidearth.surfaceload.icethicknesschange(1:end-1,tt)*100;      % ice equivalent height [cm/yr]
    239                 sol2(:,tt) = md.results.TransientSolution(tt+1).SealevelRSL*1000;       % mm/yr
     244                gmsl(tt) = md.results.TransientSolution(tt).Bslc*1000; % [mm]
     245                sol1(:,tt) = (md.masstransport.spcthickness(1:end-1,tt)-md.geometry.thickness)*100; % [cm]
     246                sol2(:,tt) = (md.results.TransientSolution(tt).Sealevel-md.results.TransientSolution(tt).Bed)*1000;     % [mm]
    240247        end
    241         sol_name = {'Change in water equivalent height [cm]', 'Relative sea-level [mm]'};
     248        sol_name = {'Change in water equivalent height [cm]', 'Relative sea level [mm]'};
    242249        movie_name = {'Movie_dH.mp4','Movie_slr.mp4'};
    243 
     250       
    244251        res = 1.0;
    245252
     
    284291                                geoshow(flipud(coastlat),flipud(coastlon),'DisplayType','polygon','FaceColor','white');
    285292                        else
    286                                 geoshow(coastlat,coastlon,'DisplayType','polygon','FaceColor','white');
     293                                geoshow(coastlat,coastlon,'DisplayType','polygon','FaceColor','none');
    287294                        end
    288295                        plot(coastlon,coastlat,'k'); hold off;
Note: See TracChangeset for help on using the changeset viewer.