def test_potential_integer_division2(): """Choose variables that can trigger integer division.""" theta = 1; a = 1; I = 1; dt = 2 Nt = 4 u, t = decay.solver(I=I, a=a, T=Nt*dt, dt=dt, theta=theta) u_de = np.array( [decay.exact_discrete_solution(n, I, a, theta, dt) for n in range(Nt+1)]) diff = np.abs(u_de - u).max() tol = 1E-14 nt.assert_almost_equal(diff, 0, delta=1E-14)
def test_exact_discrete_solution2(): """ Compare result from solver against formula for the discrete solution. """ theta = 0.8; a = 2; I = 0.1; dt = 0.8 Nt = int(8/dt) # no of steps u, t = decay.solver(I=I, a=a, T=Nt*dt, dt=dt, theta=theta) u_de = np.array( [decay.exact_discrete_solution(n, I, a, theta, dt) for n in range(Nt+1)]) diff = np.abs(u_de - u).max() nt.assert_almost_equal(diff, 0, delta=1E-14) tol = 1E-14 success = diff < tol assert success
def solve(self): from decay import solver I, a, T = self.problem['I a T'.split()] dt, theta = self['dt theta'.split()] self.u, self.t = solver(I, a, T, dt, theta)