annotate +scheme/Laplace1d.m @ 1298:0ffb5bfa65e4 feature/boundary_optimized_grids

Improve comments
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Tue, 07 Jul 2020 16:23:44 +0200
parents 33c378e508d2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
950
cab047de7f5d Rename *2D schemes to *2d
Jonatan Werpers <jonatan@werpers.com>
parents: 946
diff changeset
1 classdef Laplace1d < scheme.Scheme
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 properties
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
3 grid
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 order % Order accuracy for the approximation
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 D % non-stabalized scheme operator
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 H % Discrete norm
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 M % Derivative norm
896
09c5fbc783d3 Rename and mordernize scheme.Wave to scheme.Laplace1d. Not fully converted
Jonatan Werpers <jonatan@werpers.com>
parents: 141
diff changeset
9 a
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 D2
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 Hi
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 e_l
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 e_r
896
09c5fbc783d3 Rename and mordernize scheme.Wave to scheme.Laplace1d. Not fully converted
Jonatan Werpers <jonatan@werpers.com>
parents: 141
diff changeset
15 d_l
09c5fbc783d3 Rename and mordernize scheme.Wave to scheme.Laplace1d. Not fully converted
Jonatan Werpers <jonatan@werpers.com>
parents: 141
diff changeset
16 d_r
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 gamm
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 methods
950
cab047de7f5d Rename *2D schemes to *2d
Jonatan Werpers <jonatan@werpers.com>
parents: 946
diff changeset
21 function obj = Laplace1d(grid, order, a)
896
09c5fbc783d3 Rename and mordernize scheme.Wave to scheme.Laplace1d. Not fully converted
Jonatan Werpers <jonatan@werpers.com>
parents: 141
diff changeset
22 default_arg('a', 1);
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
24 assertType(grid, 'grid.Cartesian');
896
09c5fbc783d3 Rename and mordernize scheme.Wave to scheme.Laplace1d. Not fully converted
Jonatan Werpers <jonatan@werpers.com>
parents: 141
diff changeset
25
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
26 ops = sbp.D2Standard(grid.size(), grid.lim{1}, order);
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
28 obj.D2 = sparse(ops.D2);
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
29 obj.H = sparse(ops.H);
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
30 obj.Hi = sparse(ops.HI);
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
31 obj.M = sparse(ops.M);
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
32 obj.e_l = sparse(ops.e_l);
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
33 obj.e_r = sparse(ops.e_r);
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
34 obj.d_l = -sparse(ops.d1_l);
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
35 obj.d_r = sparse(ops.d1_r);
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
38 obj.grid = grid;
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 obj.order = order;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40
896
09c5fbc783d3 Rename and mordernize scheme.Wave to scheme.Laplace1d. Not fully converted
Jonatan Werpers <jonatan@werpers.com>
parents: 141
diff changeset
41 obj.a = a;
09c5fbc783d3 Rename and mordernize scheme.Wave to scheme.Laplace1d. Not fully converted
Jonatan Werpers <jonatan@werpers.com>
parents: 141
diff changeset
42 obj.D = a*obj.D2;
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
44 obj.gamm = grid.h*ops.borrowing.M.S;
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 % Closure functions return the opertors applied to the own doamin to close the boundary
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 % Penalty functions return the opertors to force the solution. In the case of an interface it returns the operator applied to the other doamin.
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50 % boundary is a string specifying the boundary e.g. 'l','r' or 'e','w','n','s'.
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 % type is a string specifying the type of boundary condition if there are several.
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 % data is a function returning the data that should be applied at the boundary.
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 % neighbour_scheme is an instance of Scheme that should be interfaced to.
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 % neighbour_boundary is a string specifying which boundary to interface to.
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55 function [closure, penalty] = boundary_condition(obj,boundary,type,data)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 default_arg('type','neumann');
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57 default_arg('data',0);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58
1045
dc1bcbef2a86 Remove ability to get several boundary ops at the same time from a few of the schemes
Jonatan Werpers <jonatan@werpers.com>
parents: 1044
diff changeset
59 e = obj.getBoundaryOperator('e', boundary);
dc1bcbef2a86 Remove ability to get several boundary ops at the same time from a few of the schemes
Jonatan Werpers <jonatan@werpers.com>
parents: 1044
diff changeset
60 d = obj.getBoundaryOperator('d', boundary);
998
2b1b944deae1 Add getBoundaryOperator to all 1d schemes. Did not add getBoundaryQuadrature because it doesnt make sense in 1d (?)
Martin Almquist <malmquist@stanford.edu>
parents: 950
diff changeset
61 s = obj.getBoundarySign(boundary);
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63 switch type
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 % Dirichlet boundary condition
1082
a20fc67e9ac0 Add d and n as acceptable boundary condition identifiers, which is consistent with eg LaplaceCurvilinear.
Martin Almquist <malmquist@stanford.edu>
parents: 1079
diff changeset
65 case {'D','d','dirichlet'}
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
66 tuning = 1.1;
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
67 tau1 = -tuning/obj.gamm;
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
68 tau2 = 1;
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
70 tau = tau1*e + tau2*d;
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
72 closure = obj.a*obj.Hi*tau*e';
1116
33c378e508d2 Bugfix minus sign in Laplace1d Dirichlet penalty.
Martin Almquist <malmquist@stanford.edu>
parents: 1083
diff changeset
73 penalty = -obj.a*obj.Hi*tau;
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
74
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
75 % Neumann boundary condition
1082
a20fc67e9ac0 Add d and n as acceptable boundary condition identifiers, which is consistent with eg LaplaceCurvilinear.
Martin Almquist <malmquist@stanford.edu>
parents: 1079
diff changeset
76 case {'N','n','neumann'}
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
77 tau = -e;
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
78
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
79 closure = obj.a*obj.Hi*tau*d';
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
80 penalty = -obj.a*obj.Hi*tau;
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
81
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
82 % Unknown, boundary condition
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
83 otherwise
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
84 error('No such boundary condition: type = %s',type);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
85 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
86 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
87
946
706d1c2b4199 Raname opts to type in a bunch of interface methods
Jonatan Werpers <jonatan@werpers.com>
parents: 943
diff changeset
88 function [closure, penalty] = interface(obj, boundary, neighbour_scheme, neighbour_boundary, type)
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
89 % u denotes the solution in the own domain
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
90 % v denotes the solution in the neighbour domain
1047
6bc55a773e7c Fix some mistakes from dc1bcbef2a86
Jonatan Werpers <jonatan@werpers.com>
parents: 1046
diff changeset
91 e_u = obj.getBoundaryOperator('e', boundary);
6bc55a773e7c Fix some mistakes from dc1bcbef2a86
Jonatan Werpers <jonatan@werpers.com>
parents: 1046
diff changeset
92 d_u = obj.getBoundaryOperator('d', boundary);
998
2b1b944deae1 Add getBoundaryOperator to all 1d schemes. Did not add getBoundaryQuadrature because it doesnt make sense in 1d (?)
Martin Almquist <malmquist@stanford.edu>
parents: 950
diff changeset
93 s_u = obj.getBoundarySign(boundary);
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
94
1047
6bc55a773e7c Fix some mistakes from dc1bcbef2a86
Jonatan Werpers <jonatan@werpers.com>
parents: 1046
diff changeset
95 e_v = neighbour_scheme.getBoundaryOperator('e', neighbour_boundary);
6bc55a773e7c Fix some mistakes from dc1bcbef2a86
Jonatan Werpers <jonatan@werpers.com>
parents: 1046
diff changeset
96 d_v = neighbour_scheme.getBoundaryOperator('d', neighbour_boundary);
998
2b1b944deae1 Add getBoundaryOperator to all 1d schemes. Did not add getBoundaryQuadrature because it doesnt make sense in 1d (?)
Martin Almquist <malmquist@stanford.edu>
parents: 950
diff changeset
97 s_v = neighbour_scheme.getBoundarySign(neighbour_boundary);
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
98
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
99 a_u = obj.a;
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
100 a_v = neighbour_scheme.a;
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
101
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
102 gamm_u = obj.gamm;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
103 gamm_v = neighbour_scheme.gamm;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
104
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
105 tuning = 1.1;
946
706d1c2b4199 Raname opts to type in a bunch of interface methods
Jonatan Werpers <jonatan@werpers.com>
parents: 943
diff changeset
106
1083
a22b23098021 Divide interface penalty strength by 4, to make it sharp. Stability verified by eigenvalue computations.
Martin Almquist <malmquist@stanford.edu>
parents: 1082
diff changeset
107 tau1 = -1/4*(a_u/gamm_u + a_v/gamm_v) * tuning;
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
108 tau2 = 1/2*a_u;
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
109 sig1 = -1/2;
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
110 sig2 = 0;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
111
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
112 tau = tau1*e_u + tau2*d_u;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
113 sig = sig1*e_u + sig2*d_u;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
114
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
115 closure = obj.Hi*( tau*e_u' + sig*a_u*d_u');
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
116 penalty = obj.Hi*(-tau*e_v' + sig*a_v*d_v');
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
117 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
118
998
2b1b944deae1 Add getBoundaryOperator to all 1d schemes. Did not add getBoundaryQuadrature because it doesnt make sense in 1d (?)
Martin Almquist <malmquist@stanford.edu>
parents: 950
diff changeset
119 % Returns the boundary operator op for the boundary specified by the string boundary.
1045
dc1bcbef2a86 Remove ability to get several boundary ops at the same time from a few of the schemes
Jonatan Werpers <jonatan@werpers.com>
parents: 1044
diff changeset
120 % op -- string
998
2b1b944deae1 Add getBoundaryOperator to all 1d schemes. Did not add getBoundaryQuadrature because it doesnt make sense in 1d (?)
Martin Almquist <malmquist@stanford.edu>
parents: 950
diff changeset
121 % boundary -- string
1045
dc1bcbef2a86 Remove ability to get several boundary ops at the same time from a few of the schemes
Jonatan Werpers <jonatan@werpers.com>
parents: 1044
diff changeset
122 function o = getBoundaryOperator(obj, op, boundary)
1046
19ed046aec52 Clean up getBoundaryOps for a few schemes
Jonatan Werpers <jonatan@werpers.com>
parents: 1045
diff changeset
123 assertIsMember(op, {'e', 'd'})
1042
8d73fcdb07a5 Add asserts to boundary identifier inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 998
diff changeset
124 assertIsMember(boundary, {'l', 'r'})
998
2b1b944deae1 Add getBoundaryOperator to all 1d schemes. Did not add getBoundaryQuadrature because it doesnt make sense in 1d (?)
Martin Almquist <malmquist@stanford.edu>
parents: 950
diff changeset
125
1079
ae4b090b5299 Bugfix missing semi-colon in Laplace1d.
Martin Almquist <malmquist@stanford.edu>
parents: 1049
diff changeset
126 o = obj.([op, '_', boundary]);
998
2b1b944deae1 Add getBoundaryOperator to all 1d schemes. Did not add getBoundaryQuadrature because it doesnt make sense in 1d (?)
Martin Almquist <malmquist@stanford.edu>
parents: 950
diff changeset
127 end
2b1b944deae1 Add getBoundaryOperator to all 1d schemes. Did not add getBoundaryQuadrature because it doesnt make sense in 1d (?)
Martin Almquist <malmquist@stanford.edu>
parents: 950
diff changeset
128
1049
0c504a21432d Add getBoundaryQuadrature to all 1d diffOps
Martin Almquist <malmquist@stanford.edu>
parents: 1047
diff changeset
129 % Returns square boundary quadrature matrix, of dimension
0c504a21432d Add getBoundaryQuadrature to all 1d diffOps
Martin Almquist <malmquist@stanford.edu>
parents: 1047
diff changeset
130 % corresponding to the number of boundary points
0c504a21432d Add getBoundaryQuadrature to all 1d diffOps
Martin Almquist <malmquist@stanford.edu>
parents: 1047
diff changeset
131 %
0c504a21432d Add getBoundaryQuadrature to all 1d diffOps
Martin Almquist <malmquist@stanford.edu>
parents: 1047
diff changeset
132 % boundary -- string
0c504a21432d Add getBoundaryQuadrature to all 1d diffOps
Martin Almquist <malmquist@stanford.edu>
parents: 1047
diff changeset
133 % Note: for 1d diffOps, the boundary quadrature is the scalar 1.
0c504a21432d Add getBoundaryQuadrature to all 1d diffOps
Martin Almquist <malmquist@stanford.edu>
parents: 1047
diff changeset
134 function H_b = getBoundaryQuadrature(obj, boundary)
0c504a21432d Add getBoundaryQuadrature to all 1d diffOps
Martin Almquist <malmquist@stanford.edu>
parents: 1047
diff changeset
135 assertIsMember(boundary, {'l', 'r'})
0c504a21432d Add getBoundaryQuadrature to all 1d diffOps
Martin Almquist <malmquist@stanford.edu>
parents: 1047
diff changeset
136
0c504a21432d Add getBoundaryQuadrature to all 1d diffOps
Martin Almquist <malmquist@stanford.edu>
parents: 1047
diff changeset
137 H_b = 1;
0c504a21432d Add getBoundaryQuadrature to all 1d diffOps
Martin Almquist <malmquist@stanford.edu>
parents: 1047
diff changeset
138 end
0c504a21432d Add getBoundaryQuadrature to all 1d diffOps
Martin Almquist <malmquist@stanford.edu>
parents: 1047
diff changeset
139
998
2b1b944deae1 Add getBoundaryOperator to all 1d schemes. Did not add getBoundaryQuadrature because it doesnt make sense in 1d (?)
Martin Almquist <malmquist@stanford.edu>
parents: 950
diff changeset
140 % Returns the boundary sign. The right boundary is considered the positive boundary
2b1b944deae1 Add getBoundaryOperator to all 1d schemes. Did not add getBoundaryQuadrature because it doesnt make sense in 1d (?)
Martin Almquist <malmquist@stanford.edu>
parents: 950
diff changeset
141 % boundary -- string
2b1b944deae1 Add getBoundaryOperator to all 1d schemes. Did not add getBoundaryQuadrature because it doesnt make sense in 1d (?)
Martin Almquist <malmquist@stanford.edu>
parents: 950
diff changeset
142 function s = getBoundarySign(obj, boundary)
1042
8d73fcdb07a5 Add asserts to boundary identifier inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 998
diff changeset
143 assertIsMember(boundary, {'l', 'r'})
8d73fcdb07a5 Add asserts to boundary identifier inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 998
diff changeset
144
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
145 switch boundary
998
2b1b944deae1 Add getBoundaryOperator to all 1d schemes. Did not add getBoundaryQuadrature because it doesnt make sense in 1d (?)
Martin Almquist <malmquist@stanford.edu>
parents: 950
diff changeset
146 case {'r'}
2b1b944deae1 Add getBoundaryOperator to all 1d schemes. Did not add getBoundaryQuadrature because it doesnt make sense in 1d (?)
Martin Almquist <malmquist@stanford.edu>
parents: 950
diff changeset
147 s = 1;
2b1b944deae1 Add getBoundaryOperator to all 1d schemes. Did not add getBoundaryQuadrature because it doesnt make sense in 1d (?)
Martin Almquist <malmquist@stanford.edu>
parents: 950
diff changeset
148 case {'l'}
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
149 s = -1;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
150 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
151 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
152
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
153 function N = size(obj)
898
bd79326ebcd0 Mordernize Laplace1d
Jonatan Werpers <jonatan@werpers.com>
parents: 896
diff changeset
154 N = obj.grid.size();
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
155 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
156
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
157 end
1043
c12b84fe9b00 Remove static method `interface_coupling` that shouldn't have existed in the first place
Jonatan Werpers <jonatan@werpers.com>
parents: 950
diff changeset
158 end