diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/test_basic.py b/tests/test_basic.py new file mode 100644 index 0000000000000000000000000000000000000000..c7df3dc9fba728e365676ecaf0eb411286b1ba61 --- /dev/null +++ b/tests/test_basic.py @@ -0,0 +1,38 @@ +# -*- eval: (blacken-mode) -*- +import logging +import numpy as np +from numpy.testing import assert_allclose + +import usadelndsoc +import usadelndsoc.solver + +usadelndsoc.logger.setLevel(logging.DEBUG) + + +def basic_setup(terminals=False): + Delta = np.zeros((4, 4)) + Delta[:2, 2:] = np.eye(2) + Delta[2:, :2] = np.eye(2) + + s = usadelndsoc.solver.Solver(nx=15, ny=5) + s.Omega[...] = Delta + s.alpha = 0.0 + s.U[:, :, 1, :, :] = np.eye(4) + + if terminals: + s.mask[0, 0] = usadelndsoc.solver.MASK_TERMINAL + s.mask[-1, -1] = usadelndsoc.solver.MASK_TERMINAL + + return s + + +# s.solve(omega=150, maxiter=300, preconditioner="none") + + +def test_solve_dos(): + s = basic_setup() + E = np.linspace(-3, 3, 101) + 0.001j + res = s.solve_many(omega=-1j * E) + g = res.G[:, 10, 2, 0, 0] + g_an = -1j * E / np.sqrt(1 - E**2) + assert_allclose(g, g_an, rtol=1e-4)