source: issm/trunk-jpl/test/NightlyRun/test257.m@ 27318

Last change on this file since 27318 was 27318, checked in by vverjans, 2 years ago

NEW piecewise polynomials implemented in ARMA model schemes

File size: 4.0 KB
RevLine 
[27250]1%Test Name: SquareShelfSMBarma
[26487]2md=triangle(model(),'../Exp/Square.exp',80000.);
3md=setmask(md,'all','');
4md=parameterize(md,'../Par/SquareShelfConstrained.par');
5md=setflowequation(md,'SSA','all');
6md.cluster=generic('name',oshostname(),'np',3);
[26553]7md.transient.requested_outputs={'default','IceVolume','SmbMassBalance'};
[26487]8
9ymax = max(md.mesh.y);
10xmax = max(md.mesh.x);
11%Generate basin IDs for 3 basins
12idbasin = zeros(md.mesh.numberofelements,1);
13iid1 = find(md.mesh.y>=2/3*ymax);
14iid2 = intersect(find(md.mesh.y<2/3*ymax),find(md.mesh.x>=1/3*xmax));
15iid3 = intersect(find(md.mesh.y<2/3*ymax),find(md.mesh.x<1/3*xmax));
16for ii=1:md.mesh.numberofelements
17 for vertex=1:3
18 if any(iid1==md.mesh.elements(ii,vertex)) %one vertex in basin 1
19 idbasin(ii) = 1;
20 end
21 end
22 if idbasin(ii)==0 %no vertex was found in basin 1
23 for vertex=1:3
24 if any(iid2==md.mesh.elements(ii,vertex)) %one vertex in basin 2
25 idbasin(ii) = 2;
26 end
27 end
28 end
29 if idbasin(ii)==0 %no vertex was found in basin 1 and 2
30 idbasin(ii) = 3;
31 end
32end
33
[26495]34%SMB parameters
[27318]35numparams = 2;
36numbreaks = 1;
37intercept = [0.5,1.0;1.0,0.6;,2.0,3.0]; %intercept values of SMB in basins [m ice eq./yr]
38trendlin = [0.0,0.0;0.01,0.001;-0.01,0]; %trend values of SMB in basins [m ice eq./yr^2]
39polynomialparams = cat(3,intercept,trendlin);
40datebreaks = [3;3;3];
41
[26495]42md.timestepping.start_time = 0;
43md.timestepping.time_step = 1;
[27318]44md.timestepping.final_time = 7;
[27250]45md.smb = SMBarma();
46md.smb.num_basins = 3; %number of basins
47md.smb.basin_id = idbasin; %prescribe basin ID number to elements
[27318]48md.smb.num_params = numparams; %number of parameters in the polynomial
49md.smb.num_breaks = numbreaks; %number of breakpoints
50md.smb.polynomialparams = polynomialparams;
51md.smb.datebreaks = datebreaks;
[27250]52md.smb.ar_order = 4;
53md.smb.ma_order = 1;
54md.smb.arma_timestep = 2.0; %timestep of the ARMA model [yr]
55md.smb.arlag_coefs = [[0.2,0.1,0.05,0.01];[0.4,0.2,-0.2,0.1];[0.4,-0.4,0.1,-0.1]];
[27260]56md.smb.malag_coefs = [1.0;0;0.2];
[27250]57md.smb.lapserates = [0.01,0.0;0.01,-0.01;0.0,-0.01];
58md.smb.elevationbins = [100;150;100];
[26495]59
[26526]60%Stochastic forcing
61md.stochasticforcing.isstochasticforcing = 1;
[27250]62md.stochasticforcing.fields = [{'SMBarma'}];
[26526]63md.stochasticforcing.covariance = [[0.15 0.08 -0.02];[0.08 0.12 -0.05];[-0.02 -0.05 0.1]]; %global covariance among- and between-fields
64md.stochasticforcing.randomflag = 0; %fixed random seeds
[26947]65md.stochasticforcing.stochastictimestep = 1.0;
[26526]66
[26487]67md=solve(md,'Transient');
68
69%Fields and tolerances to track changes
70field_names ={'Vx1','Vy1','Vel1','Thickness1','Volume1','SmbMassBalance1','Vx2','Vy2','Vel2','Thickness2','Volume2','SmbMassBalance2','Vx3','Vy3','Vel3','Thickness3','Volume3','SmbMassBalance3'};
71field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
72 1e-13,1e-13,1e-13,1e-13,1e-13,1e-13...
[27318]73 1e-12,1e-12,1e-12,1e-12,1e-12,1e-12};
[26487]74field_values={...
75 (md.results.TransientSolution(1).Vx),...
76 (md.results.TransientSolution(1).Vy),...
77 (md.results.TransientSolution(1).Vel),...
78 (md.results.TransientSolution(1).Thickness),...
79 (md.results.TransientSolution(1).IceVolume),...
[26553]80 (md.results.TransientSolution(1).SmbMassBalance),...
[26487]81 (md.results.TransientSolution(2).Vx),...
82 (md.results.TransientSolution(2).Vy),...
83 (md.results.TransientSolution(2).Vel),...
84 (md.results.TransientSolution(2).Thickness),...
85 (md.results.TransientSolution(2).IceVolume),...
[26553]86 (md.results.TransientSolution(2).SmbMassBalance),...
[27318]87 (md.results.TransientSolution(7).Vx),...
88 (md.results.TransientSolution(7).Vy),...
89 (md.results.TransientSolution(7).Vel),...
90 (md.results.TransientSolution(7).Thickness),...
91 (md.results.TransientSolution(7).IceVolume),...
92 (md.results.TransientSolution(7).SmbMassBalance),...
[26487]93 };
Note: See TracBrowser for help on using the repository browser.