|
1 | 1 | classdef PopovSandu < otp.lorenz96.Lorenz96Problem |
2 | | - % [Name] |
3 | | - % Time-dependent Forcing |
4 | | - % |
5 | | - % [Description] |
6 | | - % Used in (Popov and Sandu, 2019) |
7 | | - % |
8 | | - % [NoVars] |
9 | | - % 40 |
10 | | - % |
11 | | - % [Properties] |
12 | | - % Chaotic |
13 | | - % |
| 2 | + |
| 3 | + % Used in https://doi.org/10.5194/npg-26-109-2019 |
| 4 | + |
14 | 5 | methods |
15 | 6 | function obj = PopovSandu(varargin) |
16 | 7 |
|
17 | 8 | p = inputParser; |
18 | | - p.KeepUnmatched = true; |
19 | | - addParameter(p, 'Size', 40, @isscalar); |
| 9 | + |
| 10 | + p.addParameter('Size', 40, @isscalar); |
| 11 | + p.addParameter('Partitions', 4, @isscalar); |
| 12 | + p.addParameter('ForcingPeriod', 1, @isscalar); % default corresponds to 5 days |
20 | 13 |
|
21 | | - parse(p, varargin{:}); |
| 14 | + p.parse(varargin{:}); |
22 | 15 |
|
23 | 16 | s = p.Results; |
24 | 17 |
|
25 | 18 | N = s.Size; |
26 | | - |
27 | | - pu = p.Unmatched; |
28 | | - |
29 | | - p = inputParser; |
30 | | - p.KeepUnmatched = true; |
31 | | - p.addParameter('Partitions', (mod(N, 4) == 0)*4 + (mod(N, 4) ~= 0)*1, @(x) mod(N, x) == 0); |
32 | | - p.parse(pu); |
33 | | - |
34 | | - s = p.Results; |
35 | | - |
36 | 19 | q = s.Partitions; |
37 | | - |
38 | | - sixHours = 0.05; |
39 | | - day = sixHours * 4; |
40 | | - numDays = 5; |
41 | | - omega = 2 * pi/(day * numDays); |
42 | | - |
43 | | - F = @(t) 8 + 4*cos(omega*(t + mod((1:40) - 1, q)/q)).'; |
| 20 | + omega = s.ForcingPeriod; |
| 21 | + |
| 22 | + F = @(t) 8 + 4*cospi(2*omega*(t + mod((1:N) - 1, q)/q)).'; |
44 | 23 |
|
45 | 24 | params.forcingFunction = F; |
46 | 25 |
|
47 | 26 | % We initialise the Lorenz96 model as in (Lorenz & Emanuel 1998) |
48 | 27 |
|
49 | 28 | y0 = 8*ones(N, 1); |
50 | 29 |
|
51 | | - y0(20) = 8.008; |
| 30 | + y0(floor(N/2)) = 8.008; |
52 | 31 |
|
53 | | - tspan = [0, sixHours]; % 6 hours |
| 32 | + tspan = [0, 720]; % 3600 days |
54 | 33 |
|
55 | 34 | obj = obj@otp.lorenz96.Lorenz96Problem(tspan, y0, params); |
56 | 35 |
|
|
0 commit comments