diff +scheme/Burgers1D.m @ 832:5573913a0949 feature/burgers1d

Merged with default, and updated +scheme/Burgers1D accordingly
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Tue, 11 Sep 2018 15:58:35 +0200
parents d0934d1143b7
children 9f4c45a2d271
line wrap: on
line diff
--- a/+scheme/Burgers1D.m	Tue Sep 11 13:24:08 2018 +0200
+++ b/+scheme/Burgers1D.m	Tue Sep 11 15:58:35 2018 +0200
@@ -1,9 +1,8 @@
 classdef Burgers1D < scheme.Scheme
     properties
-        m % Number of points in each direction, possibly a vector
-        h % Grid spacing
-        x % Grid
+        grid % Physical grid
         order % Order accuracy for the approximation
+        
         params
 
         D % Non-stabalized scheme operator
@@ -17,8 +16,12 @@
     end
 
     methods
-        function obj = Burgers1D(pde_form, operator_type, order, m, lim, params)
-            [x, h] = util.get_grid(lim{:},m);
+        function obj = Burgers1D(grid, pde_form, operator_type, order, params)
+            assert(grid.D == 1);
+            assert(grid.size() == length(params.eps));
+            m = grid.size();
+            h = grid.scaling();
+            lim = grid.lim{1}; % Ugly, and only applicable for cartesian grids.
             default_arg('pde_form','skew-symmetric');
             default_arg('operator_type','narrow');
 
@@ -38,10 +41,8 @@
                     D = @(v, viscosity) -1/2*D1*v.^2 + D2(params.eps + viscosity)*v;
             end
 
-            obj.m = m;
-            obj.h = h;
+            obj.grid = grid;
             obj.order = order;
-            obj.x = x;
             obj.params = params;
 
             %% TODO: Figure out how to evaluate viscosity as viscosity(v,t) here instead of parametrizing D on the viscosity.
@@ -107,8 +108,7 @@
         end
 
         function N = size(obj)
-            N = obj.m;
+            N = obj.grid.m;
         end
-
     end
 end
\ No newline at end of file