From 7fc2920a7f07c35d82fcb7b8fdb8f440dde72cb3 Mon Sep 17 00:00:00 2001 From: Jonathan Guyer Date: Tue, 16 Jul 2013 07:24:37 -0400 Subject: [PATCH] Remove conversion from FiPy forms to petsc4py forms Matrices and vectors have already been converted by the time we get to `_solve_()`. Addresses #644 --- fipy/solvers/petsc/petscKrylovSolver.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/fipy/solvers/petsc/petscKrylovSolver.py b/fipy/solvers/petsc/petscKrylovSolver.py index d8f9b11cbd..2421a7fb4d 100644 --- a/fipy/solvers/petsc/petscKrylovSolver.py +++ b/fipy/solvers/petsc/petscKrylovSolver.py @@ -4,7 +4,7 @@ # ################################################################### # FiPy - Python-based finite volume PDE solver # - # FILE: "trilinosAztecOOSolver.py" + # FILE: "petscKrylovSolver.py" # # Author: Jonathan Guyer # Author: Daniel Wheeler @@ -70,14 +70,8 @@ def _solve_(self, L, x, b): if self.preconditioner is not None: ksp.getPC().setType(self.preconditioner) ksp.setTolerances(rtol=self.tolerance, max_it=self.iterations) - # obtain sol & rhs vectors - xVec, bVec = L.matrix.getVecs() - xVec[:] = x - bVec[:] = b - L.matrix.assemblyBegin() - L.matrix.assemblyEnd() - # and next solve - ksp.setOperators(L.matrix) + L.assemblyBegin() + L.assemblyEnd() + ksp.setOperators(L) ksp.setFromOptions() - ksp.solve(bVec, xVec) - x[:] = xVec.array + ksp.solve(b, x)