| 1 | %Start defining model parameters here
|
|---|
| 2 |
|
|---|
| 3 | %Geometry and observation
|
|---|
| 4 | load('../Data/Pig.data','-mat');
|
|---|
| 5 | md.inversion.vx_obs =InterpFromMeshToMesh2d(index,x,y,vx_obs,md.mesh.x,md.mesh.y);
|
|---|
| 6 | md.inversion.vy_obs =InterpFromMeshToMesh2d(index,x,y,vy_obs,md.mesh.x,md.mesh.y);
|
|---|
| 7 | md.geometry.surface =InterpFromMeshToMesh2d(index,x,y,surface,md.mesh.x,md.mesh.y);
|
|---|
| 8 | md.geometry.thickness=InterpFromMeshToMesh2d(index,x,y,thickness,md.mesh.x,md.mesh.y);
|
|---|
| 9 | md.geometry.bed=md.geometry.surface-md.geometry.thickness;
|
|---|
| 10 | clear surface thickness vx_obs vy_obs x y index;
|
|---|
| 11 | md.initialization.vx=md.inversion.vx_obs;
|
|---|
| 12 | md.initialization.vy=md.inversion.vy_obs;
|
|---|
| 13 | md.initialization.vz=zeros(md.mesh.numberofvertices,1);
|
|---|
| 14 | md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
|
|---|
| 15 |
|
|---|
| 16 | %Materials
|
|---|
| 17 | md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
|
|---|
| 18 | md.materials.rheology_B=paterson(md.initialization.temperature);
|
|---|
| 19 | md.materials.rheology_Z=ones(md.mesh.numberofvertices,1);
|
|---|
| 20 | md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
|
|---|
| 21 | md.initialization.temperature=md.initialization.temperature;
|
|---|
| 22 |
|
|---|
| 23 | %Friction
|
|---|
| 24 | pos=find(md.mask.elementonfloatingice);
|
|---|
| 25 | md.friction.coefficient=50*ones(md.mesh.numberofvertices,1);
|
|---|
| 26 | md.friction.coefficient(md.mesh.elements(pos,:))=0;
|
|---|
| 27 | md.friction.p=ones(md.mesh.numberofelements,1);
|
|---|
| 28 | md.friction.q=ones(md.mesh.numberofelements,1);
|
|---|
| 29 |
|
|---|
| 30 | %Numerical parameters
|
|---|
| 31 | md.diagnostic.viscosity_overshoot=0.3;
|
|---|
| 32 | md.prognostic.stabilization=1;
|
|---|
| 33 | md.verbose=verbose(0);
|
|---|
| 34 | md.settings.waitonlock=30;
|
|---|
| 35 | md.timestepping.time_step=1;
|
|---|
| 36 | md.timestepping.final_time=2;
|
|---|
| 37 | md.diagnostic.restol=0.05;
|
|---|
| 38 | md.diagnostic.reltol=1;
|
|---|
| 39 | md.steadystate.reltol=1;
|
|---|
| 40 | md.diagnostic.abstol=NaN;
|
|---|
| 41 |
|
|---|
| 42 | %Boundary conditions:
|
|---|
| 43 | md=SetMarineIceSheetBC(md);
|
|---|
| 44 |
|
|---|
| 45 | %Change name so that no test have the same name
|
|---|
| 46 | A=dbstack;
|
|---|
| 47 | if (length(A)>2), md.miscellaneous.name=A(3).file(1:end-2); end
|
|---|