Mercurial > repos > public > sbplib
changeset 91:2102af217134
Added inflow bc for rho
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Mon, 30 Nov 2015 15:23:09 +0100 |
parents | 53fe4b64f65e |
children | ed7c7d651428 |
files | +scheme/Euler1d.m |
diffstat | 1 files changed, 26 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
diff -r 53fe4b64f65e -r 2102af217134 +scheme/Euler1d.m --- a/+scheme/Euler1d.m Mon Nov 30 12:20:22 2015 +0100 +++ b/+scheme/Euler1d.m Mon Nov 30 15:23:09 2015 +0100 @@ -170,7 +170,9 @@ closure = obj.boundary_condition_inflow(boundary,varargin{:}); case 'outflow' closure = obj.boundary_condition_outflow(boundary,varargin{:}); - case 'outflow_rho' + case 'inflow_rho' + closure = obj.boundary_condition_inflow_rho(boundary,varargin{:}); + case 'outflow_rho' closure = obj.boundary_condition_outflow_rho(boundary,varargin{:}); case 'char' closure = obj.boundary_condition_char(boundary,varargin{:}); @@ -317,6 +319,29 @@ end + function closure = boundary_condition_inflow_rho(obj, boundary, rho_data, v_data) + [~,~,s] = obj.get_boundary_ops(boundary); + + switch s + case -1 + p_in = [1 2]; + case 1 + p_in = [1 3]; + end + + a = obj.gamma - 1; + L = @(rho,~,~)[ + 0 1/rho 0; + 1 0 0; + ]; + g = @(t)[ + v_data(t); + rho_data(t); + ]; + + closure = boundary_condition_L(obj, boundary, L, g, p_in); + end + function closure = boundary_condition_outflow_rho(obj, boundary, rho_data) [~,~,s] = obj.get_boundary_ops(boundary);