Skip to content

Commit 11db50f

Browse files
committed
Use modes from both high and low frequency spectrums
1 parent 46e5906 commit 11db50f

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

python/examples/multigrid/linear_restriction_prolongation.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,13 @@ def __matmul__(self, B):
9191
class RankKApproximateFemFunctionTransferOperator(BaseFemFunctionTransferOperator):
9292
def __init__(self, MD: pbat.fem.Mesh, MS: pbat.fem.Mesh, MT: pbat.fem.Mesh, modes=30):
9393
super().__init__(MD, MS, MT)
94-
self.U, self.sigma, self.VT = sp.sparse.linalg.svds(
94+
modes = modes / 2
95+
Ulo, sigmalo, VTlo = sp.sparse.linalg.svds(
9596
self.Ig @ self.NT, k=modes, which='SM')
97+
Uhi, sigmahi, VThi = sp.sparse.linalg.svds(
98+
self.Ig @ self.NT, k=modes, which='LM')
99+
self.U, self.sigma, self.VT = np.hstack((Ulo, Uhi)), np.hstack(
100+
(sigmalo, sigmahi)), np.vstack((VTlo, VThi))
96101
keep = np.nonzero(self.sigma > 1e-5)[0]
97102
self.U = self.U[:, keep]
98103
self.sigma = self.sigma[keep]

0 commit comments

Comments
 (0)