source:
issm/oecreview/Archive/20545-21336/ISSM-21331-21332.diff@
21337
Last change on this file since 21337 was 21337, checked in by , 8 years ago | |
---|---|
File size: 4.2 KB |
-
../trunk-jpl/test/NightlyRun/test2003.m
1 %Test Name: EarthSlr_rotationalFeedback 2 3 %mesh earth: 4 md=model; 5 md.mesh=gmshplanet('radius',6.371012*10^3,'resolution',1000.); %500 km resolution mesh 6 7 %parameterize slr solution: 8 %slr loading: {{{ 9 md.slr.deltathickness=zeros(md.mesh.numberofelements,1); 10 md.slr.sealevel=zeros(md.mesh.numberofvertices,1); 11 %antarctica 12 late=sum(md.mesh.lat(md.mesh.elements),2)/3; 13 longe=sum(md.mesh.long(md.mesh.elements),2)/3; 14 pos=find(late <-80); 15 md.slr.deltathickness(pos)=-100; 16 17 %elastic loading from love numbers: 18 nlov=1001; 19 md.slr.love_h = love_numbers('h'); md.slr.love_h(nlov+1:end)=[]; 20 md.slr.love_k = love_numbers('k'); md.slr.love_k(nlov+1:end)=[]; 21 md.slr.love_l = love_numbers('l'); md.slr.love_l(nlov+1:end)=[]; 22 23 %}}} 24 %mask: {{{ 25 md.mask=maskpsl(); % use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset 26 mask=gmtmask(md.mesh.lat,md.mesh.long); 27 28 icemask=ones(md.mesh.numberofvertices,1); 29 pos=find(mask==0); icemask(pos)=-1; 30 pos=find(sum(mask(md.mesh.elements),2)<3); icemask(md.mesh.elements(pos,:))=-1; 31 md.mask.ice_levelset=icemask; 32 md.mask.ocean_levelset=zeros(md.mesh.numberofvertices,1); 33 pos=find(md.mask.ice_levelset==1); md.mask.ocean_levelset(pos)=1; 34 35 %make sure that the ice level set is all inclusive: 36 md.mask.land_levelset=zeros(md.mesh.numberofvertices,1); 37 md.mask.groundedice_levelset=-ones(md.mesh.numberofvertices,1); 38 39 %make sure wherever there is an ice load, that the mask is set to ice: 40 pos=find(md.slr.deltathickness); md.mask.ice_levelset(md.mesh.elements(pos,:))=-1; 41 % }}} 42 43 % use model representation of ocea area (not the ture area) 44 md.slr.ocean_area_scaling = 0; 45 46 %geometry 47 di=md.materials.rho_ice/md.materials.rho_water; 48 md.geometry.thickness=ones(md.mesh.numberofvertices,1); 49 md.geometry.surface=(1-di)*zeros(md.mesh.numberofvertices,1); 50 md.geometry.base=md.geometry.surface-md.geometry.thickness; 51 md.geometry.bed=md.geometry.base; 52 53 %materials 54 md.initialization.temperature=273.25*ones(md.mesh.numberofvertices,1); 55 md.materials.rheology_B=paterson(md.initialization.temperature); 56 md.materials.rheology_n=3*ones(md.mesh.numberofelements,1); 57 58 %Miscellaneous 59 md.miscellaneous.name='test2003'; 60 61 return 62 %Solution parameters 63 md.slr.reltol=NaN; 64 md.slr.abstol=1e-3; 65 66 %eustatic + rigid + elastic run: 67 md.slr.rigid=1; md.slr.elastic=1; md.slr.rotation=0; 68 md=solve(md,'Sealevelrise'); 69 SnoRotation=md.results.SealevelriseSolution.Sealevel; 70 71 %eustatic + rigid + elastic + rotation run: 72 md.slr.rigid=1; md.slr.elastic=1; md.slr.rotation=1; 73 md=solve(md,'Sealevelrise'); 74 Srotation=md.results.SealevelriseSolution.Sealevel; 75 76 %Fields and tolerances to track changes 77 field_names ={'noRotation','Rotation'}; 78 field_tolerances={1e-13,1e-13}; 79 field_values={SnoRotation,Srotation}; -
../trunk-jpl/test/NightlyRun/test2110.m
16 16 17 17 %love numbers: 18 18 nlov=10001; % horizontal displacements do not work for low degree truncation, e.g., 101 19 md.esa.love_h = love_numbers('h','CM'); md.esa.love_h(nlov+1:end)=[]; 20 md.esa.love_l = love_numbers('l','CM'); md.esa.love_l(nlov+1:end)=[]; 19 %md.esa.love_h = love_numbers('h','CM'); md.esa.love_h(nlov+1:end)=[]; 20 %md.esa.love_l = love_numbers('l','CM'); md.esa.love_l(nlov+1:end)=[]; 21 md.esa.love_h = love_numbers('h'); md.esa.love_h(nlov+1:end)=[]; 22 md.esa.love_l = love_numbers('l'); md.esa.love_l(nlov+1:end)=[]; 21 23 22 24 %mask: {{{ 23 25 %make sure wherever there is an ice load, that the mask is set to ice:
Note:
See TracBrowser
for help on using the repository browser.