Mercurial > repos > public > sbplib
diff +scheme/Schrodinger.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 | 0c504a21432d |
children |
line wrap: on
line diff
--- a/+scheme/Schrodinger.m Fri Mar 29 14:50:50 2019 -0700 +++ b/+scheme/Schrodinger.m Wed Apr 10 11:00:27 2019 -0700 @@ -114,6 +114,7 @@ % op -- string or a cell array of strings % boundary -- string function varargout = getBoundaryOperator(obj, op, boundary) + assertIsMember(boundary, {'l', 'r'}) if ~iscell(op) op = {op}; @@ -127,8 +128,6 @@ e = obj.e_l; case 'r' e = obj.e_r; - otherwise - error('No such boundary: boundary = %s',boundary); end varargout{i} = e; @@ -138,24 +137,33 @@ d = obj.d1_l; case 'r' d = obj.d1_r; - otherwise - error('No such boundary: boundary = %s',boundary); end varargout{i} = d; end end end + % Returns square boundary quadrature matrix, of dimension + % corresponding to the number of boundary points + % + % boundary -- string + % Note: for 1d diffOps, the boundary quadrature is the scalar 1. + function H_b = getBoundaryQuadrature(obj, boundary) + assertIsMember(boundary, {'l', 'r'}) + + H_b = 1; + end + % Returns the boundary sign. The right boundary is considered the positive boundary % boundary -- string function s = getBoundarySign(obj, boundary) + assertIsMember(boundary, {'l', 'r'}) + switch boundary case {'r'} s = 1; case {'l'} s = -1; - otherwise - error('No such boundary: boundary = %s',boundary); end end @@ -164,14 +172,4 @@ end end - - methods(Static) - % Calculates the matrcis need for the inteface coupling between boundary bound_u of scheme schm_u - % and bound_v of scheme schm_v. - % [uu, uv, vv, vu] = inteface_couplong(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