changeset 1226:0652b34f9f27 feature/volcano

Add missing properties and methods to Hypsyst3D and Hypsyst3Dcurve. Note: These functions are NOT implemented properly and mearly work as place holders.
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Tue, 12 Nov 2019 09:00:48 -0800
parents 33c378e508d2
children ef08adea56c4
files +scheme/Hypsyst3d.m +scheme/Hypsyst3dCurve.m
diffstat 2 files changed, 43 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
diff -r 33c378e508d2 -r 0652b34f9f27 +scheme/Hypsyst3d.m
--- a/+scheme/Hypsyst3d.m	Thu May 02 13:25:14 2019 -0700
+++ b/+scheme/Hypsyst3d.m	Tue Nov 12 09:00:48 2019 -0800
@@ -3,12 +3,13 @@
         m % Number of points in each direction, possibly a vector
         n % Size of system
         h % Grid spacing
+        grid %TODO: Abstract class requires a grid. Pass Cartesian grid to function instead
         x, y, z % Grid
         X, Y, Z% Values of x and y for each grid point
         Yx, Zx, Xy, Zy, Xz, Yz %Grid values for boundary surfaces
         order % Order accuracy for the approximation
 
-        D % non-stabalized scheme operator
+        D % non-stabilized scheme operator
         A, B, C, E % Symbolic coefficient matrices
         Aevaluated,Bevaluated,Cevaluated, Eevaluated
 
@@ -17,13 +18,13 @@
         Hxi,Hyi, Hzi % Kroneckerd norms. 1'*Hx*v corresponds to integration in the x dir.
         I_x,I_y, I_z, I_N
         e_w, e_e, e_s, e_n, e_b, e_t
-        params % Parameters for the coeficient matrice
+        params % Parameters for the coefficient matrices
     end
 
 
     methods
         % Solving Hyperbolic systems on the form u_t=-Au_x-Bu_y-Cu_z-Eu
-        function obj = Hypsyst3d(m, lim, order, A, B,C, E, params,operator)
+        function obj = Hypsyst3d(m, lim, order, A, B, C, E, params, operator)
             default_arg('E', [])
             xlim =  lim{1};
             ylim = lim{2};
@@ -150,8 +151,8 @@
             end
         end
 
-        % Closure functions return the opertors applied to the own doamin to close the boundary
-        % Penalty functions return the opertors to force the solution. In the case of an interface it returns the operator applied to the other doamin.
+        % Closure functions return the operators applied to the own domain to close the boundary
+        % Penalty functions return the operators to force the solution. In the case of an interface it returns the operator applied to the other doamin.
         %       boundary            is a string specifying the boundary e.g. 'l','r' or 'e','w','n','s'.
         %       type                is a string specifying the type of boundary condition if there are several.
         %       data                is a function returning the data that should be applied at the boundary.
@@ -172,6 +173,23 @@
             error('Not implemented');
         end
 
+        % TODO: Implement! This function should potentially replace boundary_matrices.
+        % Returns the boundary operator op for the boundary specified by the string boundary.
+        % op        -- string or a cell array of strings
+        % boundary  -- string
+        function varargout = getBoundaryOperator(obj, op, boundary)
+            error('Not implemented');
+        end
+
+        % TODO: Implement!
+        % Returns square boundary quadrature matrix, of dimension
+        % corresponding to the number of boundary points
+        %
+        % boundary -- string
+        function H = getBoundaryQuadrature(obj, boundary)
+            error('Not implemented');
+        end
+
         function N = size(obj)
             N = obj.m;
         end
@@ -249,7 +267,7 @@
             BM.pos = signVec(1); BM.zeroval=signVec(2); BM.neg=signVec(3);
         end
 
-        % Characteristic bouyndary consitions
+        % Characteristic boundary conditions
         function [closure, penalty]=boundary_condition_char(obj,BM)
             side = BM.side;
             pos = BM.pos;
@@ -335,7 +353,7 @@
         %                                    [d+       ]
         %                               D =  [   d0    ]
         %                                    [       d-]
-        % signVec   is a vector specifying the number of possitive, zero and negative eigenvalues of D
+        % signVec   is a vector specifying the number of positive, zero and negative eigenvalues of D
         function [V,Vi, D,signVec]=matrixDiag(obj,mat,x,y,z)
             params = obj.params;
             syms xs ys zs
diff -r 33c378e508d2 -r 0652b34f9f27 +scheme/Hypsyst3dCurve.m
--- a/+scheme/Hypsyst3dCurve.m	Thu May 02 13:25:14 2019 -0700
+++ b/+scheme/Hypsyst3dCurve.m	Tue Nov 12 09:00:48 2019 -0800
@@ -3,6 +3,7 @@
         m % Number of points in each direction, possibly a vector
         n %size of system
         h % Grid spacing
+        grid %TODO: Abstract class requires a grid. Pass grid instead?
         X, Y, Z% Values of x and y for each grid point
         Yx, Zx, Xy, Zy, Xz, Yz %Grid values for boundary surfaces
 
@@ -268,6 +269,23 @@
             error('Not implemented');
         end
 
+        % TODO: Implement! This function should potentially replace boundary_matrices.
+        % Returns the boundary operator op for the boundary specified by the string boundary.
+        % op        -- string or a cell array of strings
+        % boundary  -- string
+        function varargout = getBoundaryOperator(obj, op, boundary)
+            error('Not implemented');
+        end
+
+        % TODO: Implement!
+        % Returns square boundary quadrature matrix, of dimension
+        % corresponding to the number of boundary points
+        %
+        % boundary -- string
+        function H = getBoundaryQuadrature(obj, boundary)
+            error('Not implemented');
+        end
+
         function N = size(obj)
             N = obj.m;
         end