Mercurial > repos > public > sbplib
diff +scheme/Utux2d.m @ 1108:5ec23b9bf360 feature/laplace_curvilinear_test
Merge with default
author | Martin Almquist <malmquist@stanford.edu> |
---|---|
date | Wed, 10 Apr 2019 11:00:27 -0700 |
parents | 84200bbae101 |
children | 433c89bf19e0 |
line wrap: on
line diff
--- a/+scheme/Utux2d.m Fri Mar 29 14:50:50 2019 -0700 +++ b/+scheme/Utux2d.m Wed Apr 10 11:00:27 2019 -0700 @@ -12,6 +12,7 @@ H % Discrete norm H_x, H_y % Norms in the x and y directions Hi, Hx, Hy, Hxi, Hyi % Kroneckered norms + H_w, H_e, H_s, H_n % Boundary quadratures % Derivatives Dx, Dy @@ -59,6 +60,10 @@ Hxi = ops_x.HI; Hyi = ops_y.HI; + obj.H_w = Hy; + obj.H_e = Hy; + obj.H_s = Hx; + obj.H_n = Hx; obj.H_x = Hx; obj.H_y = Hy; obj.H = kron(Hx,Hy); @@ -272,34 +277,14 @@ end - % Returns the boundary operator op for the boundary specified by the string boundary. - % op -- string or a cell array of strings + % Returns the boundary operator op for the boundary specified by the string boundary. + % op -- string % boundary -- string - function varargout = getBoundaryOperator(obj, op, boundary) - - if ~iscell(op) - op = {op}; - end + function o = getBoundaryOperator(obj, op, boundary) + assertIsMember(op, {'e'}) + assertIsMember(boundary, {'w', 'e', 's', 'n'}) - for i = 1:numel(op) - switch op{i} - case 'e' - switch boundary - case 'w' - e = obj.e_w; - case 'e' - e = obj.e_e; - case 's' - e = obj.e_s; - case 'n' - e = obj.e_n; - otherwise - error('No such boundary: boundary = %s',boundary); - end - varargout{i} = e; - end - end - + o = obj.([op, '_', boundary]); end % Returns square boundary quadrature matrix, of dimension @@ -307,19 +292,9 @@ % % boundary -- string function H_b = getBoundaryQuadrature(obj, boundary) + assertIsMember(boundary, {'w', 'e', 's', 'n'}) - switch boundary - case 'w' - H_b = obj.H_y; - case 'e' - H_b = obj.H_y; - case 's' - H_b = obj.H_x; - case 'n' - H_b = obj.H_x; - otherwise - error('No such boundary: boundary = %s',boundary); - end + H_b = obj.(['H_', boundary]); end function N = size(obj) @@ -327,14 +302,4 @@ end end - - methods(Static) - % Calculates the matrices needed for the inteface coupling between boundary bound_u of scheme schm_u - % and bound_v of scheme schm_v. - % [uu, uv, vv, vu] = inteface_coupling(A,'r',B,'l') - function [uu, uv, vv, vu] = interface_coupling(schm_u,bound_u,schm_v,bound_v) - [uu,uv] = schm_u.interface(bound_u,schm_v,bound_v); - [vv,vu] = schm_v.interface(bound_v,schm_u,bound_u); - end - end -end \ No newline at end of file +end