1 | md=mesh(model,'../Exp/79North.exp',10000);
|
---|
2 | md=meshconvert(md);
|
---|
3 | md=geography(md,'../Exp/79NorthShelf.exp','');
|
---|
4 | md=parameterize(md,'../Par/79North.par');
|
---|
5 | md=setelementstype(md,'macayeal','all');
|
---|
6 |
|
---|
7 | %Ice sheet only
|
---|
8 | md=modelextract(md,md.elementonicesheet);
|
---|
9 | pos=find(md.gridonboundary);
|
---|
10 | md.spcthickness(pos,1)=1;
|
---|
11 | md.spcthickness(:,2)=md.thickness;
|
---|
12 |
|
---|
13 | %control parameters
|
---|
14 | md.thickness_obs=md.thickness;
|
---|
15 | md.control_analysis=1;
|
---|
16 | md.thickness_obs=md.thickness;
|
---|
17 | md.nsteps=2;
|
---|
18 | md.control_type=[VxEnum() VyEnum()];
|
---|
19 | md.prognostic_DG=0;
|
---|
20 | md.optscal=[10/md.yts*ones(md.nsteps,1) 10/md.yts*ones(md.nsteps,1)];
|
---|
21 | md.cm_min=[-2000*ones(md.numberofgrids,1) -2000*ones(md.numberofgrids,1)];
|
---|
22 | md.cm_max=[+2000*ones(md.numberofgrids,1) +2000*ones(md.numberofgrids,1)];
|
---|
23 | md.cm_responses=ThicknessAbsMisfitEnum*ones(md.nsteps,1);
|
---|
24 | md.weights=ones(md.numberofgrids,1);
|
---|
25 | md.maxiter=4*ones(md.nsteps,1);
|
---|
26 | md.cm_jump=0.99*ones(md.nsteps,1);
|
---|
27 |
|
---|
28 | md=SetParallel(md,3);
|
---|
29 | md=solve(md,BalancethicknessSolutionEnum);
|
---|
30 |
|
---|
31 | %Fields and tolerances to track changes
|
---|
32 | field_names ={'Gradient1' 'Gradient2' 'Misfits' 'Vx' 'Vy' 'Thickness'};
|
---|
33 | field_tolerances={1e-12,1e-12,1e-12,1e-12,1e-12,1e-12};
|
---|
34 | field_values={...
|
---|
35 | PatchToVec(md.results.BalancethicknessSolution.Gradient1),...
|
---|
36 | PatchToVec(md.results.BalancethicknessSolution.Gradient2),...
|
---|
37 | md.results.BalancethicknessSolution.J,...
|
---|
38 | PatchToVec(md.results.BalancethicknessSolution.Vx),...
|
---|
39 | PatchToVec(md.results.BalancethicknessSolution.Vy),...
|
---|
40 | PatchToVec(md.results.BalancethicknessSolution.Thickness)
|
---|
41 | };
|
---|