comparison +scheme/Beam.m @ 704:111fcbcff2e9 feature/optim

merg with featuew grids
author Ylva Rydin <ylva.rydin@telia.com>
date Fri, 03 Nov 2017 10:53:15 +0100
parents 4ced7d47bd1f
children 459eeb99130f
comparison
equal deleted inserted replaced
703:027f606fa691 704:111fcbcff2e9
88 88
89 [e, d1, d2, d3, s] = obj.get_boundary_ops(boundary); 89 [e, d1, d2, d3, s] = obj.get_boundary_ops(boundary);
90 gamm = obj.gamm; 90 gamm = obj.gamm;
91 delt = obj.delt; 91 delt = obj.delt;
92 92
93
94 % TODO: Can this be simplifed? Can I handle conditions on u on its own, u_x on its own ...
95
93 switch type 96 switch type
94 case {'dn', 'clamped'} % Dirichlet-neumann boundary condition 97 case {'dn', 'clamped'} % Dirichlet-neumann boundary condition
95 alpha = obj.alpha; 98 alpha = obj.alpha;
96 99
97 % tau1 < -alpha^2/gamma 100 % tau1 < -alpha^2/gamma
121 124
122 closure = obj.Hi*(tau*d2' + sig*d3'); 125 closure = obj.Hi*(tau*d2' + sig*d3');
123 penalty{1} = -obj.Hi*tau; 126 penalty{1} = -obj.Hi*tau;
124 penalty{1} = -obj.Hi*sig; 127 penalty{1} = -obj.Hi*sig;
125 128
129 case 'e'
130 alpha = obj.alpha;
131 tuning = 1.1;
132
133 tau1 = tuning * alpha/delt;
134 tau4 = s*alpha;
135
136 tau = tau1*e+tau4*d3;
137
138 closure = obj.Hi*tau*e';
139 penalty = -obj.Hi*tau;
140 case 'd1'
141 alpha = obj.alpha;
142
143 tuning = 1.1;
144
145 sig2 = tuning * alpha/gamm;
146 sig3 = -s*alpha;
147
148 sig = sig2*d1+sig3*d2;
149
150 closure = obj.Hi*sig*d1';
151 penalty = -obj.Hi*sig;
152
153 case 'd2'
154 a = obj.alpha;
155
156 tau = s*a*d1;
157
158 closure = obj.Hi*tau*d2';
159 penalty = -obj.Hi*tau;
160 case 'd3'
161 a = obj.alpha;
162
163 sig = -s*a*e;
164
165 closure = obj.Hi*sig*d3';
166 penalty = -obj.Hi*sig;
126 167
127 otherwise % Unknown, boundary condition 168 otherwise % Unknown, boundary condition
128 error('No such boundary condition: type = %s',type); 169 error('No such boundary condition: type = %s',type);
129 end 170 end
130 end 171 end