Esempio n. 1
0
def test_bench_krylovschursparse_dense(benchmark,
                                       n=N_BENCHMARK,
                                       m=M_BENCHMARK):
    if not pcca.HAS_SLEPC:
        return
    from scipy import sparse
    T = utils.randompropagator(n)
    T = sparse.csr_matrix(T)
    solver = pcca.KrylovSchur(onseperation="continue")
    benchmark(solver.solve, T, m)
Esempio n. 2
0
def test_krylovschur(n=30, m=5, N=100):
    if pcca.HAS_SLEPC:
        for i in range(N):
            A = utils.randompropagator(n, reversible=False)
            try:
                S = pcca.scipyschur(A, m, onseperation="error")
            except RuntimeError:
                continue
            K = pcca.krylovschur(A, m)
            R = np.linalg.matrix_rank(np.concatenate([S, K], axis=1), tol=1e-6)
            assert R == m
Esempio n. 3
0
def test_scipyschur(n=10, m=3):
    T = utils.randompropagator(n)
    massmatrix = np.diag(np.ones(n))

    solver = pcca.ScipySchur()
    X1 = solver.solve(T, m)
    X2 = solver.solve(T, m, massmatrix)

    # check if X1 and X2 span the same space
    tol = 1e-12
    assert np.linalg.matrix_rank(np.hstack([X1, X2]), tol) == m
Esempio n. 4
0
def test_bench_krylovschur(benchmark, n=N_BENCHMARK, m=M_BENCHMARK):
    if not pcca.HAS_SLEPC:
        return
    T = utils.randompropagator(n)
    solver = pcca.KrylovSchur(onseperation="continue")
    benchmark(solver.solve, T, m)
Esempio n. 5
0
def test_bench_scipyqz(benchmark, n=N_BENCHMARK, m=M_BENCHMARK):
    T = utils.randompropagator(n)
    massmatrix = np.diag(np.ones(n))
    solver = pcca.ScipySchur()
    benchmark(solver.solve, T, m, massmatrix)
Esempio n. 6
0
def test_bench_scipyschur(benchmark, n=N_BENCHMARK, m=M_BENCHMARK):
    T = utils.randompropagator(n)
    solver = pcca.ScipySchur()
    benchmark(solver.solve, T, m)
Esempio n. 7
0
def test_random():
    T = utils.randompropagator(10)
    m = pcca.pcca(T, 3)
    assert utils.is_rowstochastic(m)