def test_iterative_refinement_single_rhs(self): context = MUMPSContext((self.n, self.arow, self.acol, self.aval, self.sym), verbose=False) context.factorize() e = np.ones(self.n, dtype=np.complex64) rhs = np.dot(self.A, e) x = context.solve(rhs=rhs) x = context.refine(rhs, 3) assert np.allclose(x, e)
def test_iterative_refinement_single_rhs(self): context = MUMPSContext(self.A, verbose=False) context.factorize() e = np.ones(self.n, dtype=np.complex64) rhs = self.A * e x = context.solve(rhs=rhs) x = context.refine(rhs, 3) assert np.allclose(x, e)
def test_iterative_refinement_single_rhs(self): context = MUMPSContext( (self.n, self.arow, self.acol, self.aval, self.sym), verbose=False) context.factorize() e = np.ones(self.n, dtype=np.float64) rhs = np.dot(self.A, e) x = context.solve(rhs=rhs) x = context.refine(rhs, 3) assert np.allclose(x, e)
(n, m) = A.shape e = np.ones(n, 'd') #rhs = np.zeros(n, 'd') rhs = A*e context = MUMPSContext(A, verbose=True) print 'MUMPS version: ', context.version_number context.analyze() context.factorize() x = context.solve(rhs=rhs) x = context.refine(rhs, 10) print x sys.exit(0) print "= " * 80 B = np.ones([n, 3], "d") B[: ,1] = 2 * B[:,1] B[: ,2] = 3 * B[:,2] rhs = A * B x = context.solve(rhs=rhs) print x
acol = np.array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=np.int32) aval = np.array([1, 2, 3, 4, 5, 0, 7, 8, 9, 10, 0, 12, 13, 14, 15, 0], dtype=np.float64) context = MUMPSContext((n, arow, acol, aval, False), verbose=True) print 'MUMPS version: ', context.version_number context.analyze() context.factorize() e = np.ones(n, dtype=np.float64) rhs = np.dot(A, e) x = context.solve(rhs=rhs) print rhs, x x = context.refine(rhs, -1) print rhs, x sys.exit(0) np.testing.assert_almost_equal(x,e) print "= " * 80 B = np.ones([n, 3], dtype=np.float64) B[: ,1] = 2 * B[:,1] B[: ,2] = 3 * B[:,2] rhs = np.dot(A,B) x = context.solve(rhs=rhs) np.testing.assert_almost_equal(x,B)
aval = np.array([1, 2, 3, 4, 5, 0, 7, 8, 9, 10, 0, 12, 13, 14, 15, 0], dtype=np.float64) context = MUMPSContext((n, arow, acol, aval, False), verbose=True) print 'MUMPS version: ', context.version_number context.analyze() context.factorize() e = np.ones(n, dtype=np.float64) rhs = np.dot(A, e) x = context.solve(rhs=rhs) print rhs, x x = context.refine(rhs, -1) print rhs, x sys.exit(0) np.testing.assert_almost_equal(x, e) print "= " * 80 B = np.ones([n, 3], dtype=np.float64) B[:, 1] = 2 * B[:, 1] B[:, 2] = 3 * B[:, 2] rhs = np.dot(A, B) x = context.solve(rhs=rhs) np.testing.assert_almost_equal(x, B) print "x" * 80