annotate +scheme/Schrodinger1dCurve.m @ 429:dde5760863de feature/quantumTriangles

Added a scheme for the time deforming shrodinger equation in 1d
author Ylva Rydin <ylva.rydin@telia.com>
date Mon, 06 Feb 2017 09:54:18 +0100
parents
children 25053554524b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
429
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
1 classdef Schrodinger1dCurve < scheme.Scheme
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
2 properties
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
3 m % Number of points in each direction, possibly a vector
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
4 h % Grid spacing
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
5 xi % Grid
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
6 order % Order accuracy for the approximation
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
7 grid
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
8
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
9 D % non-stabalized scheme operator
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
10 H % Discrete norm
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
11 M % Derivative norm
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
12 alpha
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
13
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
14 V_mat
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
15 D1
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
16 D2
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
17 Hi
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
18 e_l
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
19 e_r
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
20 d1_l
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
21 d1_r
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
22 gamm
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
23 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
24
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
25 methods
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
26 % Solving SE in the form u_t = i*u_xx +i*V on deforming 1D domain;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
27 function obj = Schrodinger1dCurve(m,order,V,constJi)
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
28 default_arg('V',0);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
29 default_arg('constJi',false)
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
30 xilim={0 1};
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
31 if constJi
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
32 ops = sbp.D2Standard(m,xilim,order);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
33 else
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
34 ops = sbp.D4Variable(m,xilim,order);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
35 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
36
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
37 obj.xi=ops.x;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
38 obj.h=ops.h;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
39 obj.D2 = ops.D2;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
40 obj.D1 = ops.D1;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
41 obj.H = ops.H;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
42 obj.Hi = ops.HI;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
43 obj.M = ops.M;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
44 obj.e_l = ops.e_l;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
45 obj.e_r = ops.e_r;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
46 obj.d1_l = ops.d1_l;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
47 obj.d1_r = ops.d1_r;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
48
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
49
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
50 if isa(V,'function_handle')
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
51 V_vec = V(obj.x);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
52 else
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
53 V_vec = obj.xi*0 + V;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
54 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
55
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
56 obj.V_mat = spdiags(V_vec,0,m,m);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
57
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
58 obj.D = @(a,a_xi,Ji) obj.d_fun(a, a_xi, Ji, constJi);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
59
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
60 obj.m = m;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
61 obj.order = order;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
62 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
63
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
64
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
65 % Closure functions return the opertors appliedo to the own doamin to close the boundary
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
66 % Penalty functions return the opertors to force the solution. In the case of an interface it returns the operator applied to the other doamin.
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
67 % boundary is a string specifying the boundary e.g. 'l','r' or 'e','w','n','s'.
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
68 % type is a string specifying the type of boundary condition if there are several.
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
69 % data is a function returning the data that should be applied at the boundary.
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
70 % neighbour_scheme is an instance of Scheme that should be interfaced to.
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
71 % neighbour_boundary is a string specifying which boundary to interface to.
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
72
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
73 function [D] = d_fun(obj,a, a_xi , Ji , constJi)
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
74 if constJi
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
75 D= -0.5*(obj.D1*a - a_xi + a*obj.D1) + 1i*Ji*obj.D2 + 1i*obj.V_mat;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
76 % D= -a*obj.D1 + 1i*Ji*obj.D2 + 1i*obj.V_mat;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
77 else
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
78 D= -0.5*(obj.D1*a - a_xi + a*obj.D1) + 1i*obj.D2(diag(Ji)) + 1i*obj.V_mat;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
79 % D= - a*obj.D1 + 1i*obj.D2(diag(Ji)) + 1i*obj.V_mat;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
80 % D=-obj.D1*a - a_xi + 1i*obj.D2(diag(Ji)) + 1i*obj.V_mat;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
81 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
82 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
83
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
84 function [closure, penalty] = boundary_condition(obj,boundary,type,data)
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
85 default_arg('type','dirichlet');
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
86 default_arg('data',0);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
87
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
88 [e,d,s,p] = obj.get_boundary_ops(boundary);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
89
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
90 switch type
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
91 % Dirichlet boundary condition
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
92 case {'D','d','dirichlet'}
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
93 tau1 = s * 1i*d;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
94 tau2 = @(a) (-1*s*a(p,p) - abs(a(p,p)))/4*e;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
95 closure = @(a) obj.Hi*tau1*e' + obj.Hi*tau2(a)*e';
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
96
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
97 switch class(data)
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
98 case 'double'
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
99 penalty = @(a) -(obj.Hi*tau1*data+obj.Hi*tau2(a)*data);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
100 % case 'function_handle'
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
101 % penalty = @(t)-obj.Hi*tau*data(t);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
102 otherwise
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
103 error('Wierd data argument!')
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
104 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
105
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
106 % Unknown, boundary condition
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
107 otherwise
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
108 error('No such boundary condition: type = %s',type);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
109 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
110 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
111
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
112 function [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary)
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
113 % u denotes the solution in the own domain
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
114 % v denotes the solution in the neighbour domain
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
115 % [e_u,d_u,s_u] = obj.get_boundary_ops(boundary);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
116 % [e_v,d_v,s_v] = neighbour_scheme.get_boundary_ops(neighbour_boundary);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
117
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
118 % a = -s_u* 1/2 * 1i ;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
119 % b = a';
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
120
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
121 % tau = b*d_u;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
122 % sig = -a*e_u;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
123
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
124 % closure = obj.Hi * (tau*e_u' + sig*d_u');
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
125 % penalty = obj.Hi * (-tau*e_v' - sig*d_v');
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
126 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
127
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
128 % Ruturns the boundary ops and sign for the boundary specified by the string boundary.
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
129 % The right boundary is considered the positive boundary
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
130 function [e,d,s,p] = get_boundary_ops(obj,boundary)
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
131 switch boundary
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
132 case 'l'
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
133 e = obj.e_l;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
134 d = obj.d1_l;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
135 s = -1;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
136 p=1;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
137 case 'r'
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
138 e = obj.e_r;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
139 d = obj.d1_r;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
140 s = 1;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
141 p=obj.m;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
142 otherwise
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
143 error('No such boundary: boundary = %s',boundary);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
144 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
145 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
146
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
147 function N = size(obj)
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
148 N = obj.m;
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
149 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
150
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
151 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
152
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
153 methods(Static)
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
154 % Calculates the matrcis need for the inteface coupling between boundary bound_u of scheme schm_u
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
155 % and bound_v of scheme schm_v.
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
156 % [uu, uv, vv, vu] = inteface_couplong(A,'r',B,'l')
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
157 function [uu, uv, vv, vu] = interface_coupling(schm_u,bound_u,schm_v,bound_v)
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
158 [uu,uv] = schm_u.interface(bound_u,schm_v,bound_v);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
159 [vv,vu] = schm_v.interface(bound_v,schm_u,bound_u);
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
160 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
161 end
dde5760863de Added a scheme for the time deforming shrodinger equation in 1d
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff changeset
162 end