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