| 1 | %Ok, start defining model parameters here | 
|---|
| 2 | disp('      creating thickness'); | 
|---|
| 3 | md.thickness=10*ones(md.numberofnodes,1); | 
|---|
| 4 | md.bed=zeros(md.numberofnodes,1); | 
|---|
| 5 | md.surface=md.bed+md.thickness; | 
|---|
| 6 |  | 
|---|
| 7 | disp('      creating drag'); | 
|---|
| 8 | md.drag_type=2; %0 none 1 plastic 2 viscous | 
|---|
| 9 | md.drag_coefficient=20*ones(md.numberofnodes,1); %q=1. %no drag is specified in the analytical solution | 
|---|
| 10 | md.drag_p=ones(md.numberofelements,1); | 
|---|
| 11 | md.drag_q=ones(md.numberofelements,1); | 
|---|
| 12 |  | 
|---|
| 13 | disp('      creating temperatures'); | 
|---|
| 14 | tmin=238.15; %K | 
|---|
| 15 | st=1.67*10^-2/1000; %k/m; | 
|---|
| 16 | radius=sqrt((md.x).^2+(md.y).^2); | 
|---|
| 17 | md.observed_temperature=(tmin+st*radius); | 
|---|
| 18 | md.temperature=md.observed_temperature; | 
|---|
| 19 | md.geothermalflux=4.2*10^-2*ones(md.numberofnodes,1); | 
|---|
| 20 |  | 
|---|
| 21 | disp('      creating flow law paramter'); | 
|---|
| 22 | md.rheology_B=6.81*10^(7)*ones(md.numberofnodes,1); %to have the same B as the analytical solution | 
|---|
| 23 | md.rheology_n=3*ones(md.numberofelements,1); | 
|---|
| 24 |  | 
|---|
| 25 | disp('      creating accumulation rates'); | 
|---|
| 26 | acc_max=0.5; %m/yr | 
|---|
| 27 | sb=10^-2/1000; %m/yr/m | 
|---|
| 28 | rel=450*1000; %m | 
|---|
| 29 | md.accumulation_rate=min(acc_max,sb*(rel-radius)); | 
|---|
| 30 |  | 
|---|
| 31 | disp('      creating velocities'); | 
|---|
| 32 | constant=0.3; | 
|---|
| 33 | md.vx_obs=constant/2*md.x.*(md.thickness).^-1; | 
|---|
| 34 | md.vy_obs=constant/2*md.y.*(md.thickness).^-1; | 
|---|
| 35 | md.vel_obs=(sqrt((md.vx_obs).^2+(md.vy_obs).^2)); | 
|---|
| 36 | md.vx=zeros(md.numberofnodes,1); | 
|---|
| 37 | md.vy=zeros(md.numberofnodes,1); | 
|---|
| 38 | md.vz=zeros(md.numberofnodes,1); | 
|---|
| 39 | md.pressure=zeros(md.numberofnodes,1); | 
|---|
| 40 |  | 
|---|
| 41 | %Deal with boundary conditions: | 
|---|
| 42 | disp('      boundary conditions for diagnostic model: '); | 
|---|
| 43 | md=SetMarineIceSheetBC(md,'../Exp/RoundFrontEISMINT.exp'); | 
|---|
| 44 |  | 
|---|
| 45 | radius=sqrt((md.x).*md.x+(md.y).*md.y); | 
|---|
| 46 | pos=find(radius==min(radius)); | 
|---|
| 47 | md.x(pos)=0; md.y(pos)=0; %the closest node to the center is changed to be exactly at the center | 
|---|
| 48 |  | 
|---|
| 49 | md.spcvelocity(pos,1:3)=1; | 
|---|
| 50 | md.spcvelocity(pos,4:6)=0; | 
|---|
| 51 |  | 
|---|
| 52 | %parallel options | 
|---|
| 53 | md=SetParallel(md,8); | 
|---|
| 54 | md.ndt=50000; | 
|---|
| 55 |  | 
|---|
| 56 | %Constants | 
|---|
| 57 | md.rho_ice=910; | 
|---|
| 58 | md.thermalconductivity=2.1; | 
|---|
| 59 | md.latentheat=3.35*10^5; | 
|---|
| 60 | md.beta=8.66*10^-4/(md.rho_ice*md.g); %conversion from K/m to K/Pa | 
|---|
| 61 | md.yts=31556926; | 
|---|