source: issm/oecreview/Archive/20545-21336/ISSM-21263-21264.diff@ 21337

Last change on this file since 21337 was 21337, checked in by Mathieu Morlighem, 8 years ago

CHG: added Archive/20545-21336

File size: 2.5 KB
  • ../trunk-jpl/test/NightlyRun/test2101.m

     
     1%Elastostatic adjustment for an elemental ice unloading
     2
     3%mesh earth:
     4md=model;
     5md.mesh=gmshplanet('radius',6.371012*10^3,'resolution',1000);
     6
     7% define load
     8md.esa.deltathickness=zeros(md.mesh.numberofelements,1);
     9pos=450;    md.esa.deltathickness(pos)=-100;   % this is the only "icy" element
     10
     11%love numbers:
     12nlov=101;
     13md.esa.love_h = love_numbers('h'); md.esa.love_h(nlov+1:end)=[];
     14md.esa.love_l = love_numbers('l'); md.esa.love_l(nlov+1:end)=[];
     15
     16%mask:  {{{
     17        md.mask=maskpsl(); % use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset
     18        md.mask.ocean_levelset=gmtmask(md.mesh.lat,md.mesh.long);
     19
     20        %make sure wherever there is an ice load, that the mask is set to ice:
     21        md.mask.ice_levelset=ones(md.mesh.numberofvertices,1);
     22        pos=find(md.esa.deltathickness); md.mask.ice_levelset(md.mesh.elements(pos,:))=-1;
     23
     24        %is ice grounded?
     25        md.mask.groundedice_levelset=-ones(md.mesh.numberofvertices,1);
     26        pos=find(md.mask.ice_levelset<=0); md.mask.groundedice_levelset(pos)=1;
     27
     28        %make sure ice domain is on the continent:
     29        %pos=find(md.mask.ice_levelset<=0); md.mask.ocean_levelset(pos)=0;
     30
     31        %land mask
     32        md.mask.land_levelset=1-md.mask.ocean_levelset;
     33
     34% }}}
     35%geometry:  {{{
     36        di=md.materials.rho_ice/md.materials.rho_water;
     37        md.geometry.thickness=ones(md.mesh.numberofvertices,1);
     38        md.geometry.surface=(1-di)*zeros(md.mesh.numberofvertices,1);
     39        md.geometry.base=md.geometry.surface-md.geometry.thickness;
     40        md.geometry.bed=md.geometry.base;
     41% }}}
     42%materials:  {{{
     43        md.initialization.temperature=273.25*ones(md.mesh.numberofvertices,1);
     44        md.materials.rheology_B=paterson(md.initialization.temperature);
     45        md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
     46% }}}
     47%Miscellaneous: {{{
     48        md.miscellaneous.name='test2101';
     49% }}}
     50
     51% solve esa
     52md.esa.requested_outputs = {'EsaUmotion','EsaNmotion','EsaEmotion'};
     53md.cluster=generic('name',oshostname(),'np',4);
     54md.verbose=verbose('111111111');
     55md=solve(md,'Esa');
     56
     57%Fields and tolerances to track changes
     58%field_names     ={'EsaUmotion','EsaNmotion','EsaEmotion'};
     59field_tolerances={1e-13,1e-13,1e-13};
     60field_values={...
     61        (md.results.EsaSolution.EsaUmotion),...
     62        (md.results.EsaSolution.EsaNmotion),...
     63        (md.results.EsaSolution.EsaEmotion),...
     64        };
     65
Note: See TracBrowser for help on using the repository browser.