[18038] | 1 | %Parameterization for ISMIP F experiment
|
---|
| 2 |
|
---|
| 3 | %Set the Simulation generic name #md.miscellaneous
|
---|
| 4 | %->
|
---|
| 5 |
|
---|
| 6 | %Geometry
|
---|
| 7 | disp(' Constructing Geometry');
|
---|
| 8 |
|
---|
| 9 | %Define the geometry of the simulation #md.geometry
|
---|
| 10 | %surface is [-x*tan(3.0*pi/180)] #md.mesh
|
---|
| 11 | %->
|
---|
| 12 | md.geometry.surface=md.mesh.x*tan(3.0*pi/180.0);
|
---|
| 13 | %base is [surface-1000+100*exp(-((x-L/2).^2+(y-L/2).^2)/(10000.^2))]
|
---|
| 14 | %L is the size of the side of the square #max(md.mesh.x)-min(md.mesh.x)
|
---|
| 15 | %->
|
---|
| 16 | L=max(md.mesh.x)-min(md.mesh.x);
|
---|
| 17 | %->
|
---|
| 18 | md.geometry.base=md.geometry.surface-1000.0+100.0*exp(-((md.mesh.x-L/2.0).^2.0+(md.mesh.y-L/2.0).^2.0)/(10000.^2.0));
|
---|
| 19 | %thickness is the difference between surface and base #md.geometry
|
---|
| 20 | %->
|
---|
| 21 | md.geometry.thickness=md.geometry.surface-md.geometry.base;
|
---|
| 22 | %plot the geometry to check it out
|
---|
| 23 | %->
|
---|
| 24 | plotmodel(md,'data',md.geometry.thickness);
|
---|
| 25 |
|
---|
| 26 | disp(' Defining friction parameters');
|
---|
| 27 |
|
---|
| 28 | %These parameters will not be used but need to be fixed #md.friction
|
---|
| 29 | %one friciton coefficient per node (md.mesh.numberofvertices,1)
|
---|
| 30 | %conversion form year to seconds with #md.constants.yts
|
---|
| 31 | %->
|
---|
| 32 | md.friction.coefficient=sqrt(md.constants.yts/(1000*2.140373*10^-7))*ones(md.mesh.numberofvertices,1);
|
---|
| 33 | %one friciton exponent (p,q) per element
|
---|
| 34 | %->
|
---|
| 35 | md.friction.p=ones(md.mesh.numberofelements,1);
|
---|
| 36 | %->
|
---|
| 37 | md.friction.q=zeros(md.mesh.numberofelements,1);
|
---|
| 38 |
|
---|
| 39 | disp(' Construct ice rheological properties');
|
---|
| 40 |
|
---|
| 41 | %The rheology parameters sit in the material section #md.materials
|
---|
| 42 | %B has one value per vertex
|
---|
| 43 | %->
|
---|
| 44 | md.materials.rheology_B=(1/(2.140373*10^-7/md.constants.yts))*ones(md.mesh.numberofvertices,1);
|
---|
| 45 | %n has one value per element
|
---|
| 46 | %->
|
---|
| 47 | md.materials.rheology_n=1*ones(md.mesh.numberofelements,1);
|
---|
| 48 |
|
---|
| 49 | disp(' Set boundary conditions');
|
---|
| 50 |
|
---|
| 51 | %Set the default boundary conditions for an ice-sheet
|
---|
| 52 | % #help SetIceSheetBC
|
---|
| 53 | %->
|
---|
| 54 | md=SetIceSheetBC(md);
|
---|
| 55 |
|
---|
| 56 | disp(' Initializing velocity and pressure');
|
---|
| 57 |
|
---|
| 58 | %initialize the velocity and pressurefields of #md.initialization
|
---|
| 59 | %->
|
---|
| 60 | md.initialization.vx=zeros(md.mesh.numberofvertices,1);
|
---|
| 61 | %->
|
---|
| 62 | md.initialization.vy=zeros(md.mesh.numberofvertices,1);
|
---|
| 63 | %->
|
---|
| 64 | md.initialization.vz=zeros(md.mesh.numberofvertices,1);
|
---|
| 65 | %->
|
---|
| 66 | md.initialization.pressure=zeros(md.mesh.numberofvertices,1); |
---|