@@ -41,13 +41,20 @@ def get_stencil_matrix(bcs, family, alpha=None, beta=None, gn=1):
41
41
bcs = BoundaryConditions (bcs )
42
42
bc = {'D' : 0 , 'N' : 1 , 'N2' : 2 , 'N3' : 3 , 'N4' : 4 }
43
43
lr = {'L' : 0 , 'R' : 1 }
44
+ lra = {'L' : 'left' , 'R' : 'right' }
44
45
s = []
45
46
r = []
46
47
for key in bcs .orderednames ():
47
48
k , v = key [0 ], key [1 :]
48
- f = bnd_values (k = bc [v ])[lr [k ]]
49
- s .append ([sp .simplify (f (n + j )) for j in range (1 , 1 + bcs .num_bcs ())])
50
- r .append (- sp .simplify (f (n )))
49
+ if v == 'R' :
50
+ alfa = bcs [lra [k ]]['R' ][0 ]
51
+ f = [bnd_values (k = 0 )[lr [k ]], bnd_values (k = 1 )[lr [k ]]]
52
+ s .append ([sp .simplify (f [0 ](n + j )+ alfa * f [1 ](n + j )) for j in range (1 , 1 + bcs .num_bcs ())])
53
+ r .append (- sp .simplify (f [0 ](n )+ alfa * f [1 ](n )))
54
+ else :
55
+ f = bnd_values (k = bc [v ])[lr [k ]]
56
+ s .append ([sp .simplify (f (n + j )) for j in range (1 , 1 + bcs .num_bcs ())])
57
+ r .append (- sp .simplify (f (n )))
51
58
A = sp .Matrix (s )
52
59
b = sp .Matrix (r )
53
60
M = sp .simplify (A .solve (b ))
@@ -89,11 +96,17 @@ def get_bc_basis(bcs, family, alpha=None, beta=None, gn=1):
89
96
def _computematrix (first ):
90
97
bc = {'D' : 0 , 'N' : 1 , 'N2' : 2 , 'N3' : 3 , 'N4' : 4 }
91
98
lr = {'L' : 0 , 'R' : 1 }
99
+ lra = {'L' : 'left' , 'R' : 'right' }
92
100
s = []
93
101
for key in bcs .orderednames ():
94
102
k , v = key [0 ], key [1 :]
95
- f = bnd_values (k = bc [v ])[lr [k ]]
96
- s .append ([sp .simplify (f (j )) for j in range (first , first + bcs .num_bcs ())])
103
+ if v == 'R' :
104
+ alfa = bcs [lra [k ]]['R' ][0 ]
105
+ f = [bnd_values (k = 0 )[lr [k ]], bnd_values (k = 1 )[lr [k ]]]
106
+ s .append ([sp .simplify (f [0 ](j )+ alfa * f [1 ](j )) for j in range (first , first + bcs .num_bcs ())])
107
+ else :
108
+ f = bnd_values (k = bc [v ])[lr [k ]]
109
+ s .append ([sp .simplify (f (j )) for j in range (first , first + bcs .num_bcs ())])
97
110
98
111
A = sp .Matrix (s )
99
112
s = sp .simplify (A .solve (sp .eye (bcs .num_bcs ())).T )
0 commit comments