Source code for openpnm.solvers._pyamg

import pyamg
from scipy.sparse import csr_matrix

from ._base import IterativeSolver

__all__ = ['PyamgRugeStubenSolver']


# write a PyamgRugeStubenSolver class
[docs] class PyamgRugeStubenSolver(IterativeSolver): """Iterative solver based on PyAMG's `ruge_stuben_solver`."""
[docs] def solve(self, A, b, x0=None): if not isinstance(A, csr_matrix): A = A.tocsr() ml = pyamg.ruge_stuben_solver(A) return ml.solve(b, x0=x0, tol=self.tol, maxiter=self.maxiter, return_info=True)