def testNormSymmetricNotImplemented(self): def f(): return A.norm("1") def g(): return A.norm("inf") A = poisson.poisson2d_sym(self.n) self.failUnlessRaises(NotImplementedError, f) self.failUnlessRaises(NotImplementedError, g)
def testNormSymmetricNotImplemented(self): def f(): return A.norm('1') def g(): return A.norm('inf') A = poisson.poisson2d_sym(self.n) self.failUnlessRaises(NotImplementedError, f) self.failUnlessRaises(NotImplementedError, g)
def setUp(self): import numpy self.n = 30 self.P = poisson.poisson1d(self.n) for i in range(self.n): self.P[i, i] = 4.0 self.A = poisson.poisson2d(self.n) self.S = poisson.poisson2d_sym(self.n) self.I = spmatrix.ll_mat_sym(self.n) for i in range(self.n): self.I[i, i] = -1.0 self.mask = numpy.zeros(self.n ** 2, "l") self.mask[self.n / 2 * self.n : (self.n / 2 + 1) * self.n] = 1 self.mask1 = numpy.zeros(self.n ** 2, "l") self.mask1[(self.n / 2 + 1) * self.n : (self.n / 2 + 2) * self.n] = 1
def setUp(self): import numpy self.n = 30 self.P = poisson.poisson1d(self.n) for i in range(self.n): self.P[i, i] = 4.0 self.A = poisson.poisson2d(self.n) self.S = poisson.poisson2d_sym(self.n) self.I = spmatrix.ll_mat_sym(self.n) for i in range(self.n): self.I[i, i] = -1.0 self.mask = numpy.zeros(self.n**2, 'l') self.mask[self.n / 2 * self.n:(self.n / 2 + 1) * self.n] = 1 self.mask1 = numpy.zeros(self.n**2, 'l') self.mask1[(self.n / 2 + 1) * self.n:(self.n / 2 + 2) * self.n] = 1
@Deprecated('Use pysparse.itsolvers.Bicgstab instead.') def gmres(*args, **kwargs): return krylov.bicgstab(*args, **kwargs) @Deprecated('Use pysparse.itsolvers.Gmres instead.') def gmres(*args, **kwargs): return krylov.gmres(*args, **kwargs) if __name__ == '__main__': import numpy from pysparse.precon import precon from pysparse.tools import poisson n = 100 n2 = n*n A = PysparseMatrix(matrix=poisson.poisson2d_sym(n)) b = numpy.ones(n2); b /= numpy.linalg.norm(b) x = numpy.empty(n2) K = precon.ssor(A.matrix.to_sss()) fmt = '%8s %7.1e %2d %4d' def resid(A, b, x): r = b - A*x return numpy.linalg.norm(r) for Solver in [Pcg, Minres, Cgs, Qmrs, Gmres, Bicgstab]: solver = Solver(A) solver.solve(b, x, 1.0e-6, 3*n) print fmt % (solver.name, resid(A, b, x), solver.nofCalled, solver.totalIterations) solver.solve(b, x, 1.0e-6, 3*n, K)
return krylov.bicgstab(*args, **kwargs) @Deprecated('Use pysparse.itsolvers.Gmres instead.') def gmres(*args, **kwargs): return krylov.gmres(*args, **kwargs) if __name__ == '__main__': import numpy from pysparse.precon import precon from pysparse.tools import poisson n = 100 n2 = n * n A = PysparseMatrix(matrix=poisson.poisson2d_sym(n)) b = numpy.ones(n2) b /= numpy.linalg.norm(b) x = numpy.empty(n2) K = precon.ssor(A.matrix.to_sss()) fmt = '%8s %7.1e %2d %4d' def resid(A, b, x): r = b - A * x return numpy.linalg.norm(r) for Solver in [Pcg, Minres, Cgs, Qmrs, Gmres, Bicgstab]: solver = Solver(A) solver.solve(b, x, 1.0e-6, 3 * n) print fmt % (solver.name, resid( A, b, x), solver.nofCalled, solver.totalIterations)
def setUp(self): self.n = 20 self.A = poisson.poisson2d(self.n) self.S = poisson.poisson2d_sym(self.n) self.B = poisson.poisson2d_sym_blk(self.n)