annotate +scheme/Burgers1D.m @ 834:f1f0bf087e1c feature/burgers1d

Add support for artificial viscosity - Add option to use upwind operators for discretizing the scheme - Add option to use dissipation operators constructed from undivided differences when discretizing with narrow stencil operators
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Thu, 13 Sep 2018 14:21:47 +0200
parents 9f4c45a2d271
children 9e4e0576ca0f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
814
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
1 classdef Burgers1D < scheme.Scheme
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
2 properties
832
5573913a0949 Merged with default, and updated +scheme/Burgers1D accordingly
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 831
diff changeset
3 grid % Physical grid
814
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
4 order % Order accuracy for the approximation
832
5573913a0949 Merged with default, and updated +scheme/Burgers1D accordingly
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 831
diff changeset
5
815
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
6 params
814
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
7
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
8 D % Non-stabalized scheme operator
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
9 H % Discrete norm
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
10 Hi % Norm inverse
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
11 e_l
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
12 e_r
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
13 d_l
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
14 d_r
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
15 end
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
16
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
17 methods
834
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
18 function obj = Burgers1D(grid, pde_form, operator_type, order, dissipation, params)
832
5573913a0949 Merged with default, and updated +scheme/Burgers1D accordingly
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 831
diff changeset
19 assert(grid.D == 1);
5573913a0949 Merged with default, and updated +scheme/Burgers1D accordingly
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 831
diff changeset
20 assert(grid.size() == length(params.eps));
5573913a0949 Merged with default, and updated +scheme/Burgers1D accordingly
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 831
diff changeset
21 m = grid.size();
5573913a0949 Merged with default, and updated +scheme/Burgers1D accordingly
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 831
diff changeset
22 lim = grid.lim{1}; % Ugly, and only applicable for cartesian grids.
815
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
23 default_arg('pde_form','skew-symmetric');
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
24 default_arg('operator_type','narrow');
834
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
25 default_arg('dissipation','on');
815
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
26
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
27 switch operator_type
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
28 case 'narrow'
833
9f4c45a2d271 Support narrow stencil operators of order 6
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 832
diff changeset
29 ops = sbp.D4Variable(m, lim, order);
815
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
30 D1 = ops.D1;
834
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
31 D2 = ops.D2;
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
32 DissipationOp = -1*sbp.dissipationOperator(m, order, ops.HI);
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
33 d_l = ops.d1_l';
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
34 d_r = ops.d1_r';
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
35 case 'upwind'
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
36 ops = sbp.D1Upwind(m, lim, order);
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
37 D1 = (ops.Dp + ops.Dm)/2;
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
38 %D2eps = @(eps) ops.Dp*diag(eps)*ops.Dm;
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
39 %D2eps = @(eps) ops.Dm*diag(eps)*ops.Dp;
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
40 D2 = @(eps) (ops.Dp*diag(eps)*ops.Dm + ops.Dm*diag(eps)*ops.Dp)/2;
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
41 DissipationOp = (ops.Dp-ops.Dm)/2;
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
42 d_l = D1;
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
43 d_r = D1;
815
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
44 otherwise
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
45 error('Other operator types not yet supported', operator_type);
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
46 end
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
47
834
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
48 %% TODO: Figure out how to evaluate viscosity as viscosity(v,t) here instead of parametrizing D on the viscosity.
815
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
49 switch pde_form
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
50 case 'skew-symmetric'
834
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
51 if (strcmp(dissipation,'on'))
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
52 D = @(v, viscosity) - 1/3*D1*v.^2 + (-1/3*v.*D1 + D2(params.eps + viscosity) + max(abs(v))*DissipationOp)*v;
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
53 else
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
54 D = @(v, viscosity) - 1/3*D1*v.^2 + (-1/3*v.*D1 + D2(params.eps + viscosity))*v;
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
55 end
815
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
56 case 'conservative'
834
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
57 if (strcmp(dissipation,'on'))
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
58 D = @(v, viscosity) -1/2*D1*v.^2 + (D2(params.eps + viscosity) + max(abs(v))*DissipationOp)*v;
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
59 else
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
60 D = @(v, viscosity) -1/2*D1*v.^2 + D2(params.eps + viscosity)*v;
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
61 end
815
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
62 end
814
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
63
832
5573913a0949 Merged with default, and updated +scheme/Burgers1D accordingly
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 831
diff changeset
64 obj.grid = grid;
814
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
65 obj.order = order;
815
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
66 obj.params = params;
814
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
67
815
fae41958af4f Add support for artificial viscosity to the 1d burgers scheme.
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents: 814
diff changeset
68 obj.D = D;
814
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
69 obj.H = ops.H;
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
70 obj.Hi = ops.HI;
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
71 obj.e_l = ops.e_l;
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
72 obj.e_r = ops.e_r;
834
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
73 obj.d_l = d_l;
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
74 obj.d_r = d_r;
814
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
75 end
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
76
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
77 % Closure functions return the opertors applied to the own doamin to close the boundary
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
78 % Penalty functions return the opertors to force the solution. In the case of an interface it returns the operator applied to the other domain.
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
79 % boundary is a string specifying the boundary e.g. 'l','r' or 'e','w','n','s'.
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
80 % type is a string specifying the type of boundary condition if there are several.
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
81 % data is a function returning the data that should be applied at the boundary.
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
82 % neighbour_scheme is an instance of Scheme that should be interfaced to.
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
83 % neighbour_boundary is a string specifying which boundary to interface to.
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
84 function [closure, penalty] = boundary_condition(obj,boundary,type,data)
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
85 default_arg('type','robin');
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
86 default_arg('data',0);
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
87 [e, s, d] = obj.get_boundary_ops(boundary);
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
88 switch type
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
89 % Stable robin-like boundary conditions ((u+-abs(u))*u/3 - eps*u_x)) with +- at left/right boundary
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
90 case {'R','robin'}
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
91 p = s*obj.Hi*e;
834
f1f0bf087e1c Add support for artificial viscosity
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 833
diff changeset
92 closure = @(v, viscosity) p*(e'*((v-s*abs(v))/3)*(e'*v) - e'*((obj.params.eps + viscosity).*d*v));
814
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
93 switch class(data)
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
94 case 'double'
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
95 penalty = s*p*data;
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
96 case 'function_handle'
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
97 penalty = @(t) s*p*data(t);
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
98 otherwise
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
99 error('Wierd data argument!')
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
100 end
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
101 % Unknown, boundary condition
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
102 otherwise
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
103 error('No such boundary condition: type = %s',type);
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
104 end
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
105 end
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
106
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
107 % Ruturns the boundary ops and sign for the boundary specified by the string boundary.
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
108 % The right boundary is considered the positive boundary
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
109 function [e, s, d] = get_boundary_ops(obj,boundary)
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
110 switch boundary
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
111 case 'l'
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
112 e = obj.e_l;
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
113 s = -1;
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
114 d = obj.d_l;
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
115 case 'r'
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
116 e = obj.e_r;
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
117 s = 1;
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
118 d = obj.d_r;
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
119 otherwise
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
120 error('No such boundary: boundary = %s',boundary);
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
121 end
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
122 end
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
123
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
124 function [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary)
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
125 error('An interface function does not exist yet');
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
126 end
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
127
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
128 function N = size(obj)
832
5573913a0949 Merged with default, and updated +scheme/Burgers1D accordingly
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 831
diff changeset
129 N = obj.grid.m;
814
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
130 end
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
131 end
3a5e635a93fd Add scheme for 1D Burgers equation
Vidar Stiernstrom <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
132 end