Mercurial > repos > public > sbplib
diff +scheme/Utux.m @ 290:d32f674bcbe5 feature/hypsyst
A first attempt to make a general scheme fo hyperbolic systems
author | Ylva Rydin <ylva.rydin@telia.com> |
---|---|
date | Fri, 16 Sep 2016 14:51:17 +0200 |
parents | d755816aa0fa |
children | 9b3d7fc61a36 |
line wrap: on
line diff
--- a/+scheme/Utux.m Mon Sep 12 12:58:18 2016 +0200 +++ b/+scheme/Utux.m Fri Sep 16 14:51:17 2016 +0200 @@ -6,7 +6,6 @@ order % Order accuracy for the approximation H % Discrete norm - M % Derivative norm D D1 @@ -20,21 +19,28 @@ methods function obj = Utux(m,xlim,order) default_arg('a',1); - [x, h] = util.get_grid(xlim{:},m); - ops = sbp.Ordinary(m,h,order); + + %Old operators + % [x, h] = util.get_grid(xlim{:},m); + %ops = sbp.Ordinary(m,h,order); + + ops = sbp.D1Nonequidistant(m,xlim,order); + % ops = sbp.D2Standard(m,xlim,order); + + obj.x=ops.x; - obj.D1 = sparse(ops.derivatives.D1); - obj.H = sparse(ops.norms.H); - obj.Hi = sparse(ops.norms.HI); - obj.M = sparse(ops.norms.M); - obj.e_l = sparse(ops.boundary.e_1); - obj.e_r = sparse(ops.boundary.e_m); + obj.D1 = ops.D1; + obj.H = ops.H; + obj.Hi = ops.HI; + + obj.e_l = ops.e_l; + obj.e_r = ops.e_r; obj.D=obj.D1; obj.m = m; - obj.h = h; + obj.h = ops.h; obj.order = order; - obj.x = x; + obj.x = ops.x; end % Closure functions return the opertors applied to the own doamin to close the boundary @@ -47,7 +53,7 @@ function [closure, penalty] = boundary_condition(obj,boundary,type,data) default_arg('type','neumann'); default_arg('data',0); - tau = -1*obj.e_l; + tau =-1*obj.e_l; closure = obj.Hi*tau*obj.e_l'; penalty = 0*obj.e_l;