Mercurial > repos > public > sbplib
comparison +scheme/LaplaceCurvilinear.m @ 560:6132c52bf923 feature/grids/laplace_refactor
Merge
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 29 Aug 2017 13:04:07 +0200 |
parents | e3f587bfd7f8 54c775c3348a |
children | 3a13916f8ff0 |
comparison
equal
deleted
inserted
replaced
559:e3f587bfd7f8 | 560:6132c52bf923 |
---|---|
233 [e, d_n, d_t, a_n, a_t, s, gamm, halfnorm_inv_n, halfnorm_inv_t, halfnorm_t] = obj.get_boundary_ops(boundary); | 233 [e, d_n, d_t, a_n, a_t, s, gamm, halfnorm_inv_n, halfnorm_inv_t, halfnorm_t] = obj.get_boundary_ops(boundary); |
234 | 234 |
235 A_n = spdiag(a_n); | 235 A_n = spdiag(a_n); |
236 A_t = spdiag(a_t); | 236 A_t = spdiag(a_t); |
237 | 237 |
238 F = (s * A_n * d_n' + s * A_t*d_t')'; | 238 F = s*(A_n*d_n' + A_t*d_t')'; |
239 | 239 |
240 u = obj; | 240 u = obj; |
241 | 241 |
242 b1 = gamm*u.lambda./u.a11.^2; | 242 b1 = gamm*u.lambda./u.a11.^2; |
243 b2 = gamm*u.lambda./u.a22.^2; | 243 b2 = gamm*u.lambda./u.a22.^2; |
254 | 254 |
255 % Neumann boundary condition | 255 % Neumann boundary condition |
256 case {'N','n','neumann'} | 256 case {'N','n','neumann'} |
257 A_n = spdiag(a_n); | 257 A_n = spdiag(a_n); |
258 A_t = spdiag(a_t); | 258 A_t = spdiag(a_t); |
259 d = (A_n * d_n' + A_t*d_t')'; | 259 d = s*(A_n * d_n' + A_t*d_t')'; |
260 | 260 |
261 tau1 = -s; | 261 tau1 = -1; |
262 tau2 = 0; | 262 tau2 = 0; |
263 tau = obj.a * obj.Ji*(tau1*e + tau2*d); | 263 tau = s*obj.a*obj.Ji*(tau1*e + tau2*d); |
264 | 264 |
265 closure = halfnorm_inv*tau*d'; | 265 closure = halfnorm_inv*tau*d'; |
266 penalty = -halfnorm_inv*tau; | 266 penalty = -halfnorm_inv*tau; |
267 | 267 |
268 % Characteristic boundary condition | 268 % Characteristic boundary condition |
297 A_n_u = spdiag(a_n_u); | 297 A_n_u = spdiag(a_n_u); |
298 A_t_u = spdiag(a_t_u); | 298 A_t_u = spdiag(a_t_u); |
299 A_n_v = spdiag(a_n_v); | 299 A_n_v = spdiag(a_n_v); |
300 A_t_v = spdiag(a_t_v); | 300 A_t_v = spdiag(a_t_v); |
301 | 301 |
302 F_u = (s_u * A_n_u * d_n_u' + s_u * A_t_u*d_t_u')'; | 302 F_u = s_u*(A_n_u * d_n_u' + A_t_u*d_t_u')'; |
303 F_v = (s_v * A_n_v * d_n_v' + s_v * A_t_v*d_t_v')'; | 303 F_v = s_v*(A_n_v * d_n_v' + A_t_v*d_t_v')'; |
304 | 304 |
305 u = obj; | 305 u = obj; |
306 v = neighbour_scheme; | 306 v = neighbour_scheme; |
307 | 307 |
308 b1_u = gamm_u*u.lambda(I_u)./u.a11(I_u).^2; | 308 b1_u = gamm_u*u.lambda(I_u)./u.a11(I_u).^2; |