1 | radius=1e6;
|
---|
2 | shelfextent=2e5;
|
---|
3 |
|
---|
4 | md=roundmesh(model,radius,50000);
|
---|
5 | %fix center node to 0,0
|
---|
6 | rad=sqrt(md.mesh.x.^2+md.mesh.y.^2);
|
---|
7 | pos=find(rad==min(rad));
|
---|
8 | md.mesh.x(pos)=0; md.mesh.y(pos)=0; %the closest node to the center is changed to be exactly at the center
|
---|
9 | xelem=md.mesh.x(md.mesh.elements)*[1;1;1]/3;
|
---|
10 | yelem=md.mesh.y(md.mesh.elements)*[1;1;1]/3;
|
---|
11 | rad=sqrt(xelem.^2+yelem.^2);
|
---|
12 | flags=zeros(md.mesh.numberofelements,1);
|
---|
13 | pos=find(rad>=(radius-shelfextent));
|
---|
14 | flags(pos)=1;
|
---|
15 | md=setmask(md,flags,'');
|
---|
16 | md=parameterize(md,'../Par/RoundSheetShelf.par');
|
---|
17 | md=setflowequation(md,'macayeal','all');
|
---|
18 | md.cluster=generic('name',oshostname(),'np',3);
|
---|
19 |
|
---|
20 | md.transient.isthermal=0;
|
---|
21 | md.transient.isprognostic=0;
|
---|
22 | md.transient.isdiagnostic=0;
|
---|
23 | md.transient.isgroundingline=1;
|
---|
24 |
|
---|
25 | %test different grounding line dynamics.
|
---|
26 | md.groundingline.migration='AgressiveMigration';
|
---|
27 | md=solve(md,TransientSolutionEnum);
|
---|
28 | element_on_iceshelf_agressive=(md.results.TransientSolution.MaskElementonfloatingice);
|
---|
29 |
|
---|
30 | md.groundingline.migration='SoftMigration';
|
---|
31 | md=solve(md,TransientSolutionEnum);
|
---|
32 | element_on_iceshelf_soft=(md.results.TransientSolution.MaskElementonfloatingice);
|
---|
33 |
|
---|
34 | %Fields and tolerances to track changes
|
---|
35 | field_names ={'ElementOnIceShelfAgressive','ElementOnIceShelfSoft'};
|
---|
36 | field_tolerances={1e-13,1e-13};
|
---|
37 | field_values={element_on_iceshelf_agressive,element_on_iceshelf_soft};
|
---|