1 | %Geometry specific to Experiments C and D
|
---|
2 | rad=800000;
|
---|
3 | nv=md.mesh.numberofvertices;
|
---|
4 | for i=1:nv,
|
---|
5 | dist=sqrt(md.mesh.x(i).^2+md.mesh.y(i)^2);
|
---|
6 | if (dist <= rad)
|
---|
7 | md.geometry.thickness(i)=3000.0;
|
---|
8 | else
|
---|
9 | md.geometry.thickness(i)=1.0; % non-zero thickness
|
---|
10 | end
|
---|
11 | end
|
---|
12 | md.geometry.thickness=md.geometry.thickness';
|
---|
13 | md.geometry.bed=zeros(md.mesh.numberofvertices,1);
|
---|
14 | md.geometry.surface=md.geometry.thickness+md.geometry.bed;
|
---|
15 |
|
---|
16 | %Ice density used for benchmarking, not 917 kg/m^3
|
---|
17 | md.materials.rho_ice=1000; %kg m^3
|
---|
18 |
|
---|
19 | %GIA parameters specific to Experiments A and B
|
---|
20 | md.gia.mantle_viscosity=10^21*ones(md.mesh.numberofvertices,1); %in Pa.s
|
---|
21 | md.gia.lithosphere_thickness=100*ones(md.mesh.numberofvertices,1); %in km
|
---|
22 | md.materials.lithosphere_shear_modulus=6.7*10^10; %in Pa
|
---|
23 | md.materials.lithosphere_density=3.32; %in g/cm^3
|
---|
24 | md.materials.mantle_shear_modulus=1.45*10^11; %in Pa
|
---|
25 | md.materials.mantle_density=3.34; %in g/cm^3
|
---|
26 |
|
---|
27 | %Initial velocity
|
---|
28 | x = transpose(ncread('../Data/SquareSheetConstrained.nc','x'));
|
---|
29 | y = transpose(ncread('../Data/SquareSheetConstrained.nc','y'));
|
---|
30 | vx = transpose(ncread('../Data/SquareSheetConstrained.nc','vx'));
|
---|
31 | vy = transpose(ncread('../Data/SquareSheetConstrained.nc','vy'));
|
---|
32 | index = transpose(ncread('../Data/SquareSheetConstrained.nc','index'));
|
---|
33 |
|
---|
34 | md.initialization.vx=InterpFromMeshToMesh2d(index,x,y,vx,md.mesh.x,md.mesh.y);
|
---|
35 | md.initialization.vy=InterpFromMeshToMesh2d(index,x,y,vy,md.mesh.x,md.mesh.y);
|
---|
36 | clear vx vy x y index;
|
---|
37 | md.initialization.vz=zeros(md.mesh.numberofvertices,1);
|
---|
38 | md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
|
---|
39 |
|
---|
40 | %Materials
|
---|
41 | md.initialization.temperature=(273.-20.)*ones(md.mesh.numberofvertices,1);
|
---|
42 | md.materials.rheology_B=paterson(md.initialization.temperature);
|
---|
43 | md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1);
|
---|
44 |
|
---|
45 | %Friction
|
---|
46 | pos=find(md.mask.elementonfloatingice);
|
---|
47 | md.friction.coefficient=20.*ones(md.mesh.numberofvertices,1);
|
---|
48 | md.friction.coefficient(md.mesh.elements(pos,:))=0;
|
---|
49 | md.friction.p=ones(md.mesh.numberofelements,1);
|
---|
50 | md.friction.q=ones(md.mesh.numberofelements,1);
|
---|
51 |
|
---|
52 | %Numerical parameters
|
---|
53 | md.stressbalance.viscosity_overshoot=0.0;
|
---|
54 | md.masstransport.stabilization=1.;
|
---|
55 | md.thermal.stabilization=1.;
|
---|
56 | md.verbose=verbose(0);
|
---|
57 | md.settings.waitonlock=30;
|
---|
58 | md.stressbalance.restol=0.05;
|
---|
59 | md.steadystate.reltol=0.05;
|
---|
60 | md.stressbalance.reltol=0.05;
|
---|
61 | md.stressbalance.abstol=NaN;
|
---|
62 | md.timestepping.time_step=1.;
|
---|
63 | md.timestepping.final_time=3.;
|
---|
64 |
|
---|
65 | %Boundary conditions:
|
---|
66 | md=SetIceSheetBC(md);
|
---|
67 |
|
---|
68 | %Change name so that no test have the same name
|
---|
69 | A=dbstack;
|
---|
70 | if (length(A)>2), md.miscellaneous.name=A(3).file(1:end-2); end
|
---|
71 |
|
---|