changeset 499:f1465e6aeb26 feature/quantumTriangles

Commit before changing branch
author Ylva Rydin <ylva.rydin@telia.com>
date Mon, 06 Mar 2017 17:23:52 +0100
parents 324c927d8b1d
children 83734c26b8e3
files +scheme/Schrodinger2dCurve.m
diffstat 1 files changed, 11 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/+scheme/Schrodinger2dCurve.m	Fri Mar 03 16:19:41 2017 +0100
+++ b/+scheme/Schrodinger2dCurve.m	Mon Mar 06 17:23:52 2017 +0100
@@ -198,13 +198,13 @@
         %       neighbour_scheme    is an instance of Scheme that should be interfaced to.
         %       neighbour_boundary  is a string specifying which boundary to interface to.
         function [closure, penalty] = boundary_condition(obj, boundary,~)
-                    [e, d_n, d_t, coeff_t, coeff_n s, halfnorm_inv_n, halfnorm_inv_t, halfnorm_t,g,I,Ji] = obj.get_boundary_ops(boundary);
+                    [e, d_n, d_t, coeff_t, coeff_n s, halfnorm_inv_n, halfnorm_inv_t, halfnorm_t,g] = obj.get_boundary_ops(boundary);
                  
                     a_t =  @(t) spdiag(coeff_t(t));
                     a_n = @(t) spdiag(coeff_n(t));
-                    Ji = spdiag(Ji);
+                 
                     
-                    F = @(t)(s * (d_n * Ji)' + s * a_t(t)  *d_t')';
+                    F = @(t)(s * a_n(t)*d_n' + s * a_t(t)  *d_t')';
                     tau1  = 1;       
                     a  = @(t)spdiag(g(t));
                     tau2 = @(t) (-1*s*a(t) - abs(a(t)))/4;
@@ -220,19 +220,17 @@
         function [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary)
             % u denotes the solution in the own domain
             % v denotes the solution in the neighbour domain
-            [e_u, d_n_u, d_t_u,  coeff_t_u, coeff_n_u,s_u, halfnorm_inv_u_n, halfnorm_inv_u_t, halfnorm_u_t,gamm_u, I_u,JI_u] = obj.get_boundary_ops(boundary);
-            [e_v, d_n_v, d_t_v,  coeff_t_v, coeff_n_v s_v, halfnorm_inv_v_n, halfnorm_inv_v_t, halfnorm_v_t,gamm_v, I_v,JI_v] = neighbour_scheme.get_boundary_ops(neighbour_boundary);
+            [e_u, d_n_u, d_t_u,  coeff_t_u, coeff_n_u,s_u, halfnorm_inv_u_n, halfnorm_inv_u_t, halfnorm_u_t,gamm_u] = obj.get_boundary_ops(boundary);
+            [e_v, d_n_v, d_t_v,  coeff_t_v, coeff_n_v s_v, halfnorm_inv_v_n, halfnorm_inv_v_t, halfnorm_v_t,gamm_v] = neighbour_scheme.get_boundary_ops(neighbour_boundary);
 
             a_n_u = @(t) spdiag(coeff_n_u(t));
             a_t_u = @(t) spdiag(coeff_t_u(t));
             a_n_v = @(t) spdiag(coeff_n_v(t));
             a_t_v = @(t) spdiag(coeff_t_v(t));
-            
-            Ji_u = spdiag(JI_u);
-            Ji_v =  spdiag(JI_v);
+           
 
-            F_u = @(t)((d_n_u*Ji_u)' + a_t_u(t)*d_t_u')';
-            F_v = @(t)((d_n_v*Ji_v)' + a_t_v(t)*d_t_v')';
+            F_u = @(t)(a_n_u(t)*d_n_u' + a_t_u(t)*d_t_u')';
+            F_v = @(t)(a_n_v(t)*d_n_v' + a_t_v(t)*d_t_v')';
             
             a = @(t)spdiag(gamm_u(t));
        
@@ -250,7 +248,7 @@
         end
 
 
-        function [e, d_n, d_t, coeff_t,coeff_n, s,  halfnorm_inv_n, halfnorm_inv_t, halfnorm_t,g, I,Ji] = get_boundary_ops(obj, boundary)
+        function [e, d_n, d_t, coeff_t,coeff_n, s,  halfnorm_inv_n, halfnorm_inv_t, halfnorm_t,g] = get_boundary_ops(obj, boundary)
 
             % gridMatrix = zeros(obj.m(2),obj.m(1));
             % gridMatrix(:) = 1:numel(gridMatrix);
@@ -286,7 +284,7 @@
 
                     I = ind(:,1)';
                     coeff_t = @(t)obj.a12(I);
-                    coeff_n = @(t)obj.a11(I);
+                    coeff_n = @(t)obj.a22(I);
                     g = @(t)obj.g_2(I);
                 case 'n'
                     e = obj.e_n;
@@ -296,7 +294,7 @@
 
                     I = ind(:,end)';
                     coeff_t = @(t)obj.a12(I);
-                    coeff_n = @(t)obj.a11(I);
+                    coeff_n = @(t)obj.a22(I);
                     g = @(t)obj.g_2(I);
                 otherwise
                     error('No such boundary: boundary = %s',boundary);
@@ -313,8 +311,6 @@
                     halfnorm_inv_t = obj.Hiu;
                     halfnorm_t = obj.Hu;
             end
-            fis = diag(obj.Ji);
-            Ji = fis(I);
         end
 
         function N = size(obj)