Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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
Example #4
0
    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
Example #5
0
@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)
Example #6
0
    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)
Example #7
0
 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)
Example #8
0
 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)