Mercurial > repos > public > sbplib
comparison +scheme/Schrodinger.m @ 67:446d67a49cd8
Fixed some errors in scheme.Schrodinger.m
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 20 Nov 2015 10:28:27 +0100 |
parents | 33f0654a2413 |
children | 29944ea7674b 459eeb99130f |
comparison
equal
deleted
inserted
replaced
66:dbc50fa58ca6 | 67:446d67a49cd8 |
---|---|
44 V_vec = x*0 + V; | 44 V_vec = x*0 + V; |
45 end | 45 end |
46 | 46 |
47 V_mat = spdiags(V_vec,0,m,m); | 47 V_mat = spdiags(V_vec,0,m,m); |
48 | 48 |
49 obj.D = 1i * obj.D2 - 1i * V; | 49 obj.D = 1i * obj.D2 - 1i * V_mat; |
50 | 50 |
51 obj.m = m; | 51 obj.m = m; |
52 obj.h = h; | 52 obj.h = h; |
53 obj.order = order; | 53 obj.order = order; |
54 | 54 |
94 % u denotes the solution in the own domain | 94 % u denotes the solution in the own domain |
95 % v denotes the solution in the neighbour domain | 95 % v denotes the solution in the neighbour domain |
96 [e_u,d_u,s_u] = obj.get_boundary_ops(boundary); | 96 [e_u,d_u,s_u] = obj.get_boundary_ops(boundary); |
97 [e_v,d_v,s_v] = neighbour_scheme.get_boundary_ops(neighbour_boundary); | 97 [e_v,d_v,s_v] = neighbour_scheme.get_boundary_ops(neighbour_boundary); |
98 | 98 |
99 a = s* 1/2 * 1i ; | 99 a = -s_u* 1/2 * 1i ; |
100 b = a'; | 100 b = a'; |
101 | 101 |
102 tau = b*d_u; | 102 tau = b*d_u; |
103 sig = a*e_u; | 103 sig = -a*e_u; |
104 | 104 |
105 closure = obj.Hi * (tau*e_u' + sig*d_u'); | 105 closure = obj.Hi * (tau*e_u' + sig*d_u'); |
106 penalty = obj.Hi * (-tau*e_v' - sig*d_v'); | 106 penalty = obj.Hi * (-tau*e_v' - sig*d_v'); |
107 end | 107 end |
108 | 108 |