| 1 | %Test Name: PicopMeltRate_HO
|
|---|
| 2 | md=triangle(model(),'../Exp/Square.exp',90000.);
|
|---|
| 3 | md=setmask(md,'../Exp/SquareShelf.exp','');
|
|---|
| 4 | md=parameterize(md,'../Par/SquareSheetShelf.par');
|
|---|
| 5 | md.initialization.vx(:)=1.;
|
|---|
| 6 | md.initialization.vy(:)=1.;
|
|---|
| 7 | md.geometry.thickness(:)=500-md.mesh.x/10000;
|
|---|
| 8 | md.geometry.bed =-100-md.mesh.x/1000;
|
|---|
| 9 | md.geometry.base=-md.geometry.thickness*md.materials.rho_ice/md.materials.rho_water;
|
|---|
| 10 | md.mask.groundedice_levelset=md.geometry.thickness+md.materials.rho_water/md.materials.rho_ice*md.geometry.bed;
|
|---|
| 11 | pos=find(md.mask.groundedice_levelset>=0);
|
|---|
| 12 | md.geometry.base(pos)=md.geometry.bed(pos);
|
|---|
| 13 | md.geometry.surface=md.geometry.base+md.geometry.thickness;
|
|---|
| 14 | md=extrude(md,3,1.1);
|
|---|
| 15 | md=setflowequation(md,'HO','all');
|
|---|
| 16 |
|
|---|
| 17 | %Set Pico Parameters
|
|---|
| 18 | md.basalforcings = basalforcingspico(md.basalforcings);
|
|---|
| 19 | md.basalforcings.basin_id = zeros(md.mesh.numberofelements,1);
|
|---|
| 20 | yE = mean(md.mesh.y(md.mesh.elements),2);
|
|---|
| 21 | pos1 = find(yE>=5e5); md.basalforcings.basin_id(pos1)=1;
|
|---|
| 22 | pos2 = find(yE<5e5); md.basalforcings.basin_id(pos2)=2;
|
|---|
| 23 | md.basalforcings.num_basins = 2;
|
|---|
| 24 | md.basalforcings.farocean_temperature = [271.15 272.15 273.15; 274.15 275.15 276.15; 0.5 1 1.5]; %K
|
|---|
| 25 | md.basalforcings.farocean_salinity = [31 32 33; 34 35 36; 0.5 1 1.5]; %PSU
|
|---|
| 26 | md.basalforcings.maxboxcount=5;
|
|---|
| 27 | md.basalforcings.isplume = 1;
|
|---|
| 28 |
|
|---|
| 29 | %Boundary conditions:
|
|---|
| 30 | md.mask.ice_levelset=-ones(md.mesh.numberofvertices,1);
|
|---|
| 31 | md.mask.ice_levelset(find(md.mesh.x==max(md.mesh.x)))=0;
|
|---|
| 32 |
|
|---|
| 33 | %Model conditions
|
|---|
| 34 | md.transient.isthermal=0;
|
|---|
| 35 | md.transient.isstressbalance=1;
|
|---|
| 36 | md.transient.isgroundingline=1;
|
|---|
| 37 | md.transient.ismasstransport=1;
|
|---|
| 38 | md.transient.issmb=1;
|
|---|
| 39 | md.transient.requested_outputs={'default','BasalforcingsFloatingiceMeltingRate','GroundinglineHeight'};
|
|---|
| 40 | md.groundingline.migration='SubelementMigration';
|
|---|
| 41 | md.groundingline.friction_interpolation='SubelementFriction1';
|
|---|
| 42 | md.groundingline.melt_interpolation='SubelementMelt1';
|
|---|
| 43 | md.timestepping.final_time=1.5;
|
|---|
| 44 | md.timestepping.time_step=0.5;
|
|---|
| 45 |
|
|---|
| 46 | md.cluster=generic('name',oshostname(),'np',3);
|
|---|
| 47 | md=solve(md,'Transient');
|
|---|
| 48 |
|
|---|
| 49 | field_names ={'Bed1','Surface1','Thickness1','Floatingice1','Vx1','Vy1','Pressure1','FloatingiceMeltingrate1',...
|
|---|
| 50 | 'Bed2','Surface2','Thickness2','Floatingice2','Vx2','Vy2','Pressure2','FloatingiceMeltingrate2',...
|
|---|
| 51 | 'Bed3','Surface3','Thickness3','Floatingice3','Vx3','Vy3','Pressure3','FloatingiceMeltingrate3'};
|
|---|
| 52 | field_tolerances={7e-09,8e-09,8e-09,7e-09,6e-08,7e-08,6e-09,8e-7,...
|
|---|
| 53 | 7e-09,8e-09,8e-09,7e-09,6e-08,7e-08,6e-09,8e-7,...
|
|---|
| 54 | 7e-09,8e-09,8e-09,7e-09,6e-08,7e-08,6e-09,8e-7};
|
|---|
| 55 | field_values={...
|
|---|
| 56 | (md.results.TransientSolution(1).Base),...
|
|---|
| 57 | (md.results.TransientSolution(1).Surface),...
|
|---|
| 58 | (md.results.TransientSolution(1).Thickness),...
|
|---|
| 59 | (md.results.TransientSolution(1).MaskGroundediceLevelset),...
|
|---|
| 60 | (md.results.TransientSolution(1).Vx),...
|
|---|
| 61 | (md.results.TransientSolution(1).Vy),...
|
|---|
| 62 | (md.results.TransientSolution(1).Pressure),...
|
|---|
| 63 | (md.results.TransientSolution(1).BasalforcingsFloatingiceMeltingRate),...
|
|---|
| 64 | (md.results.TransientSolution(2).Base),...
|
|---|
| 65 | (md.results.TransientSolution(2).Surface),...
|
|---|
| 66 | (md.results.TransientSolution(2).Thickness),...
|
|---|
| 67 | (md.results.TransientSolution(2).MaskGroundediceLevelset),...
|
|---|
| 68 | (md.results.TransientSolution(2).Vx),...
|
|---|
| 69 | (md.results.TransientSolution(2).Vy),...
|
|---|
| 70 | (md.results.TransientSolution(2).Pressure),...
|
|---|
| 71 | (md.results.TransientSolution(2).BasalforcingsFloatingiceMeltingRate),...
|
|---|
| 72 | (md.results.TransientSolution(3).Base),...
|
|---|
| 73 | (md.results.TransientSolution(3).Surface),...
|
|---|
| 74 | (md.results.TransientSolution(3).Thickness),...
|
|---|
| 75 | (md.results.TransientSolution(3).MaskGroundediceLevelset),...
|
|---|
| 76 | (md.results.TransientSolution(3).Vx),...
|
|---|
| 77 | (md.results.TransientSolution(3).Vy),...
|
|---|
| 78 | (md.results.TransientSolution(3).Pressure),...
|
|---|
| 79 | (md.results.TransientSolution(3).BasalforcingsFloatingiceMeltingRate),...
|
|---|
| 80 | };
|
|---|