[5176] | 1 | %Ok, start defining model parameters here
|
---|
| 2 | disp(' creating thickness');
|
---|
[14310] | 3 | md.geometry.thickness=10.*ones(md.mesh.numberofvertices,1);
|
---|
[17806] | 4 | md.geometry.base=zeros(md.mesh.numberofvertices,1);
|
---|
| 5 | md.geometry.surface=md.geometry.base+md.geometry.thickness;
|
---|
[5176] | 6 |
|
---|
| 7 | disp(' creating drag');
|
---|
[16137] | 8 | md.friction.coefficient=20.*ones(md.mesh.numberofvertices,1);
|
---|
[9725] | 9 | md.friction.p=ones(md.mesh.numberofelements,1);
|
---|
| 10 | md.friction.q=ones(md.mesh.numberofelements,1);
|
---|
[5176] | 11 |
|
---|
| 12 | disp(' creating temperatures');
|
---|
| 13 | tmin=238.15; %K
|
---|
[14310] | 14 | st=1.67*10^-2/1000.; %k/m
|
---|
[9734] | 15 | radius=sqrt((md.mesh.x).^2+(md.mesh.y).^2);
|
---|
[9684] | 16 | md.initialization.temperature=(tmin+st*radius);
|
---|
[9725] | 17 | md.basalforcings.geothermalflux=4.2*10^-2*ones(md.mesh.numberofvertices,1);
|
---|
[5176] | 18 |
|
---|
[14310] | 19 | disp(' creating flow law parameter');
|
---|
| 20 | md.materials.rheology_B=6.81*10^7*ones(md.mesh.numberofvertices,1); %to have the same B as the analytical solution
|
---|
| 21 | md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1);
|
---|
[5176] | 22 |
|
---|
[8399] | 23 | disp(' creating surface mass balance');
|
---|
| 24 | smb_max=0.5; %m/yr
|
---|
[14310] | 25 | sb=10^-2/1000.; %m/yr/m
|
---|
| 26 | rel=450.*1000.; %m
|
---|
[20500] | 27 | md.smb.mass_balance=min(smb_max,sb*(rel-radius));
|
---|
[5176] | 28 |
|
---|
| 29 | disp(' creating velocities');
|
---|
| 30 | constant=0.3;
|
---|
[14310] | 31 | md.inversion.vx_obs=constant/2.*md.mesh.x.*(md.geometry.thickness).^-1;
|
---|
| 32 | md.inversion.vy_obs=constant/2.*md.mesh.y.*(md.geometry.thickness).^-1;
|
---|
[9681] | 33 | md.inversion.vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2));
|
---|
[9725] | 34 | md.initialization.vx=zeros(md.mesh.numberofvertices,1);
|
---|
| 35 | md.initialization.vy=zeros(md.mesh.numberofvertices,1);
|
---|
| 36 | md.initialization.vz=zeros(md.mesh.numberofvertices,1);
|
---|
| 37 | md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
|
---|
[5176] | 38 |
|
---|
| 39 | %Deal with boundary conditions:
|
---|
[16137] | 40 | disp(' boundary conditions for stressbalance model:');
|
---|
[5176] | 41 | md=SetMarineIceSheetBC(md,'../Exp/RoundFrontEISMINT.exp');
|
---|
| 42 |
|
---|
[14310] | 43 | radius=sqrt((md.mesh.x).^2+(md.mesh.y).^2);
|
---|
[5176] | 44 | pos=find(radius==min(radius));
|
---|
[14310] | 45 | md.mesh.x(pos)=0.; md.mesh.y(pos)=0.; %the closest node to the center is changed to be exactly at the center
|
---|
[5176] | 46 |
|
---|
[16137] | 47 | md.stressbalance.spcvx(pos)=0.;
|
---|
| 48 | md.stressbalance.spcvy(pos)=0.;
|
---|
| 49 | md.stressbalance.spcvz(pos)=0.;
|
---|
[5176] | 50 |
|
---|
| 51 | %parallel options
|
---|
[14310] | 52 | md.timestepping.final_time=50000.;
|
---|
[5176] | 53 |
|
---|
| 54 | %Constants
|
---|
[14310] | 55 | md.materials.rho_ice=910.;
|
---|
[9636] | 56 | md.materials.thermalconductivity=2.1;
|
---|
| 57 | md.materials.latentheat=3.35*10^5;
|
---|
| 58 | md.materials.beta=8.66*10^-4/(md.materials.rho_ice*md.constants.g); %conversion from K/m to K/Pa
|
---|
[14310] | 59 | md.constants.yts=31556926.;
|
---|