[11027] | 1 | md=triangle(model,'../Exp/Square.exp',150000);
|
---|
[9641] | 2 | md=setmask(md,'all','');
|
---|
[5337] | 3 | md=parameterize(md,'../Par/SquareShelf.par');
|
---|
[9664] | 4 | md=setflowequation(md,'macayeal','all');
|
---|
[5955] | 5 | md.cluster=none;
|
---|
[5337] | 6 |
|
---|
| 7 | %redo the parameter file for this special shelf.
|
---|
| 8 | %constant thickness, constrained (vy=0) flow into an icefront,
|
---|
| 9 | %from 0 m/yr at the grounding line.
|
---|
| 10 |
|
---|
| 11 | %tighten
|
---|
[9679] | 12 | md.diagnostic.restol=10^-4;
|
---|
[5337] | 13 |
|
---|
| 14 | %needed later
|
---|
[9734] | 15 | ymin=min(md.mesh.y);
|
---|
| 16 | ymax=max(md.mesh.y);
|
---|
| 17 | xmin=min(md.mesh.x);
|
---|
| 18 | xmax=max(md.mesh.x);
|
---|
[5337] | 19 |
|
---|
[9636] | 20 | di=md.materials.rho_ice/md.materials.rho_water;
|
---|
[5337] | 21 |
|
---|
| 22 | h=1000;
|
---|
[9725] | 23 | md.geometry.thickness=h*ones(md.mesh.numberofvertices,1);
|
---|
[9691] | 24 | md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness;
|
---|
| 25 | md.geometry.surface=md.geometry.bed+md.geometry.thickness;
|
---|
[5337] | 26 |
|
---|
| 27 | %Initial velocity and pressure
|
---|
[9725] | 28 | md.initialization.vx=zeros(md.mesh.numberofvertices,1);
|
---|
| 29 | md.initialization.vy=zeros(md.mesh.numberofvertices,1);
|
---|
| 30 | md.initialization.vz=zeros(md.mesh.numberofvertices,1);
|
---|
| 31 | md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
|
---|
[5337] | 32 |
|
---|
| 33 | %Materials
|
---|
[9725] | 34 | md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
|
---|
[9684] | 35 | md.materials.rheology_B=paterson(md.initialization.temperature);
|
---|
[9725] | 36 | md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
|
---|
[5337] | 37 |
|
---|
| 38 | %Boundary conditions:
|
---|
[9725] | 39 | md.diagnostic.spcvx=NaN*ones(md.mesh.numberofvertices,1);
|
---|
| 40 | md.diagnostic.spcvy=NaN*ones(md.mesh.numberofvertices,1);
|
---|
| 41 | md.diagnostic.spcvz=NaN*ones(md.mesh.numberofvertices,1);
|
---|
[5337] | 42 |
|
---|
| 43 | %constrain flanks to 0 normal velocity
|
---|
[9734] | 44 | pos=find(md.mesh.x==xmin | md.mesh.x==xmax);
|
---|
[9679] | 45 | md.diagnostic.spcvx(pos)=0;
|
---|
| 46 | md.diagnostic.spcvz(pos)=NaN;
|
---|
[5337] | 47 |
|
---|
| 48 | %constrain grounding line to 0 velocity
|
---|
[9734] | 49 | pos=find(md.mesh.y==ymin);
|
---|
[9679] | 50 | md.diagnostic.spcvx(pos)=0;
|
---|
| 51 | md.diagnostic.spcvy(pos)=0;
|
---|
[5337] | 52 |
|
---|
| 53 | %icefront
|
---|
[9725] | 54 | nodeonicefront=zeros(md.mesh.numberofvertices,1);
|
---|
[9734] | 55 | pos=find(md.mesh.y==ymax); nodeonicefront(pos)=1;
|
---|
[9714] | 56 | pos=find(nodeonicefront(md.mesh.segments(:,1)) | nodeonicefront(md.mesh.segments(:,2))); diagnostic.icefront=md.mesh.segments(pos,:);
|
---|
[9679] | 57 | diagnostic.icefront=[diagnostic.icefront 1*md.mask.elementonfloatingice(diagnostic.icefront(:,end))];
|
---|
| 58 | md.diagnostic.icefront=diagnostic.icefront;
|
---|
[5337] | 59 |
|
---|
[8295] | 60 | md=solve(md,DiagnosticSolutionEnum);
|
---|
[5337] | 61 |
|
---|
| 62 | %create analytical solution: strain rate is constant = ((rho_ice*g*h)/4B)^3 (Paterson, 4th Edition, page 292.
|
---|
[9691] | 63 | %ey_c=(md.materials.rho_ice*md.constants.g*(1-di)*md.geometry.thickness./(4*md.materials.rheology_B)).^3;
|
---|
[9734] | 64 | %vy_c=ey_c.*md.mesh.y*md.constants.yts;
|
---|
[5337] | 65 |
|
---|
| 66 | %Fields and tolerances to track changes
|
---|
| 67 | field_names ={'Vy'};
|
---|
| 68 | field_tolerances={1e-13};
|
---|
[10981] | 69 | field_values={(md.results.DiagnosticSolution.Vy)};
|
---|