Skip to content

Commit 51ca757

Browse files
csskenekburns
authored andcommitted
Change toarray() to .T for Hermitian transpose.
1 parent a1d7884 commit 51ca757

3 files changed

Lines changed: 6 additions & 6 deletions

File tree

dedalus/core/solvers.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -212,8 +212,8 @@ def solve_dense(self, subproblem, rebuild_matrices=False, left=False, normalize_
212212
if left:
213213
self.eigenvalues, pre_left_evecs, pre_right_evecs = eig_output
214214
self.right_eigenvectors = self.eigenvectors = sp.pre_right @ pre_right_evecs
215-
self.left_eigenvectors = sp.pre_left.conj().toarray() @ pre_left_evecs
216-
self.modified_left_eigenvectors = (sp.M_min @ sp.pre_right_pinv).conj().toarray() @ pre_left_evecs
215+
self.left_eigenvectors = sp.pre_left.conj().T @ pre_left_evecs
216+
self.modified_left_eigenvectors = (sp.M_min @ sp.pre_right_pinv).conj().T @ pre_left_evecs
217217
if normalize_left:
218218
norms = np.diag(pre_left_evecs.T.conj() @ sp.M_min @ pre_right_evecs)
219219
self.left_eigenvectors /= np.conj(norms)
@@ -270,8 +270,8 @@ def solve_sparse(self, subproblem, N, target, rebuild_matrices=False, left=False
270270
# Note: this definition of "left eigenvectors" is consistent with the documentation for scipy.linalg.eig
271271
self.eigenvalues, pre_right_evecs, self.left_eigenvalues, pre_left_evecs = eig_output
272272
self.right_eigenvectors = self.eigenvectors = sp.pre_right @ pre_right_evecs
273-
self.left_eigenvectors = sp.pre_left.conj().toarray() @ pre_left_evecs
274-
self.modified_left_eigenvectors = (sp.M_min @ sp.pre_right_pinv).conj().toarray() @ pre_left_evecs
273+
self.left_eigenvectors = sp.pre_left.conj().T @ pre_left_evecs
274+
self.modified_left_eigenvectors = (sp.M_min @ sp.pre_right_pinv).conj().T @ pre_left_evecs
275275
# Check that eigenvalues match
276276
if not np.allclose(self.eigenvalues, np.conjugate(self.left_eigenvalues)):
277277
if raise_on_mismatch:

dedalus/libraries/matsolvers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ def __init__(self, matrix, solver=None):
137137
if self.trans == "T":
138138
matrix = matrix.T
139139
elif self.trans == "H":
140-
matrix = matrix.conj().toarray()
140+
matrix = matrix.conj().T
141141
self.LU = spla.splu(matrix.tocsc(),
142142
permc_spec=self.permc_spec,
143143
diag_pivot_thresh=self.diag_pivot_thresh,

dedalus/tools/array.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@ def matvec(x):
433433
# Build sparse linear operator representing (A^H - conj(σ)B^H)^I B^H = C^-H B^H = left_D
434434
# Note: left_D is not equal to D^H
435435
def matvec_left(x):
436-
return solver.solve_H(B.conj().toarray().dot(x))
436+
return solver.solve_H(B.conj().T.dot(x))
437437
left_D = spla.LinearOperator(dtype=A.dtype, shape=A.shape, matvec=matvec_left)
438438
# Solve using scipy sparse algorithm
439439
left_evals, left_evecs = spla.eigs(left_D, k=N, which='LM', sigma=None, **kw)

0 commit comments

Comments
 (0)