Skip to content

Commit 06084b3

Browse files
committed
2d test
1 parent 004d3c4 commit 06084b3

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

tests/regression/test_eigensolver.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,31 @@ def evals(n, degree=1, mesh=None):
5252
def test_evals_1d(n, degree, tolerance):
5353
true_values, estimates = evals(n, degree=degree)
5454
assert np.allclose(true_values, estimates, rtol=tolerance)
55+
56+
57+
def poisson_eigenvalue_2d(i):
58+
mesh = RectangleMesh(10*2**i, 10*2**i, pi, pi)
59+
V = FunctionSpace(mesh, "CG", 1)
60+
u = TrialFunction(V)
61+
v = TestFunction(V)
62+
63+
bc = DirichletBC(V, 0.0, "on_boundary")
64+
65+
ep = LinearEigenproblem(inner(grad(u), grad(v)) * dx,
66+
bcs=bc, bc_shift=666.0)
67+
68+
es = LinearEigensolver(ep, 1, solver_parameters={"eps_gen_hermitian": None,
69+
"eps_largest_real": None})
70+
71+
es.solve()
72+
return es.eigenvalue(0)-2.0
73+
74+
75+
def test_evals_2d():
76+
"""2D Eigenvalue convergence test. As with Boffi, we observe that the
77+
convergence rate convergest to 2 from above."""
78+
errors = np.array([poisson_eigenvalue_2d(i) for i in range(5)])
79+
80+
convergence = np.log(errors[:-1]/errors[1:])/np.log(2.0)
81+
82+
assert all(convergence > 2.0)

0 commit comments

Comments
 (0)