comparison +time/SBPInTimeScaled.m @ 1113:47e86b5270ad feature/timesteppers

Change name of property k to dt in time.Timestepper
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 10 Apr 2019 22:40:55 +0200
parents e95a0f2f7a8d
children
comparison
equal deleted inserted replaced
1112:835c8fa456ec 1113:47e86b5270ad
5 % M*u_next= K*u_prev_end + f 5 % M*u_next= K*u_prev_end + f
6 properties 6 properties
7 A,B 7 A,B
8 f 8 f
9 9
10 k % total time step. 10 dt % total time step.
11 11
12 blockSize % number of points in each block 12 blockSize % number of points in each block
13 N % Number of components 13 N % Number of components
14 14
15 order 15 order
27 vtilde 27 vtilde
28 n 28 n
29 end 29 end
30 30
31 methods 31 methods
32 function obj = SBPInTimeScaled(A, B, f, k, t0, v0, scaling, TYPE, order, blockSize) 32 function obj = SBPInTimeScaled(A, B, f, dt, t0, v0, scaling, TYPE, order, blockSize)
33 default_arg('TYPE','gauss'); 33 default_arg('TYPE','gauss');
34 default_arg('f',[]); 34 default_arg('f',[]);
35 35
36 if(strcmp(TYPE,'gauss')) 36 if(strcmp(TYPE,'gauss'))
37 default_arg('order',4) 37 default_arg('order',4)
49 obj.f = f; 49 obj.f = f;
50 else 50 else
51 obj.f = @(t)sparse(length(v0),1); 51 obj.f = @(t)sparse(length(v0),1);
52 end 52 end
53 53
54 obj.k = k; 54 obj.dt = dt;
55 obj.blockSize = blockSize; 55 obj.blockSize = blockSize;
56 obj.N = length(v0); 56 obj.N = length(v0);
57 57
58 obj.n = 0; 58 obj.n = 0;
59 obj.t = t0; 59 obj.t = t0;
60 60
61 %==== Build the time discretization matrix =====% 61 %==== Build the time discretization matrix =====%
62 switch TYPE 62 switch TYPE
63 case 'equidistant' 63 case 'equidistant'
64 ops = sbp.D2Standard(blockSize,{0,obj.k},order); 64 ops = sbp.D2Standard(blockSize,{0,obj.dt},order);
65 case 'optimal' 65 case 'optimal'
66 ops = sbp.D1Nonequidistant(blockSize,{0,obj.k},order); 66 ops = sbp.D1Nonequidistant(blockSize,{0,obj.dt},order);
67 case 'minimal' 67 case 'minimal'
68 ops = sbp.D1Nonequidistant(blockSize,{0,obj.k},order,'minimal'); 68 ops = sbp.D1Nonequidistant(blockSize,{0,obj.dt},order,'minimal');
69 case 'gauss' 69 case 'gauss'
70 ops = sbp.D1Gauss(blockSize,{0,obj.k}); 70 ops = sbp.D1Gauss(blockSize,{0,obj.dt});
71 end 71 end
72 72
73 I = speye(size(A)); 73 I = speye(size(A));
74 I_t = speye(blockSize,blockSize); 74 I_t = speye(blockSize,blockSize);
75 75
119 w = zeros(size(z)); 119 w = zeros(size(z));
120 w(obj.q) = z; 120 w(obj.q) = z;
121 121
122 obj.vtilde = obj.e_T'*w; 122 obj.vtilde = obj.e_T'*w;
123 123
124 obj.t = obj.t + obj.k; 124 obj.t = obj.t + obj.dt;
125 obj.n = obj.n + 1; 125 obj.n = obj.n + 1;
126 end 126 end
127 end 127 end
128 128
129 methods(Static) 129 methods(Static)