def test_inject_time_shift(shape, coords, result, npoints=19): """Test generic point injection testing the x-coordinate of an abitrary set of points going across the grid. This test verifies the optional time shifting for SparseTimeFunctions """ a = unit_box_time(shape=shape) a.data[:] = 0. p = time_points(a.grid, ranges=coords, npoints=npoints) expr = p.inject(a, FLOAT(1.), u_t=a.indices[0] + 1) Operator(expr)(a=a, time=1) indices = [slice(1, 1, 1)] + [slice(4, 6, 1) for _ in coords] indices[1] = slice(1, -1, 1) assert np.allclose(a.data[indices], result, rtol=1.e-5) a.data[:] = 0. expr = p.inject(a, FLOAT(1.), p_t=p.indices[0] + 1) Operator(expr)(a=a, time=1) indices = [slice(0, 0, 1)] + [slice(4, 6, 1) for _ in coords] indices[1] = slice(1, -1, 1) assert np.allclose(a.data[indices], result, rtol=1.e-5) a.data[:] = 0. expr = p.inject(a, FLOAT(1.), u_t=a.indices[0] + 1, p_t=p.indices[0] + 1) Operator(expr)(a=a, time=1) indices = [slice(1, 1, 1)] + [slice(4, 6, 1) for _ in coords] indices[1] = slice(1, -1, 1) assert np.allclose(a.data[indices], result, rtol=1.e-5)
def test_inject_time_shift(shape, coords, result, npoints=19): """Test generic point injection testing the x-coordinate of an abitrary set of points going across the grid. This test verifies the optional time shifting for SparseTimeFunctions """ a = unit_box_time(shape=shape) a.data[:] = 0. p = time_points(a.grid, ranges=coords, npoints=npoints) expr = p.inject(a, FLOAT(1.), u_t=a.indices[0]+1) Operator(expr)(a=a, time=1) indices = [slice(1, 1, 1)] + [slice(4, 6, 1) for _ in coords] indices[1] = slice(1, -1, 1) assert np.allclose(a.data[indices], result, rtol=1.e-5) a.data[:] = 0. expr = p.inject(a, FLOAT(1.), p_t=p.indices[0]+1) Operator(expr)(a=a, time=1) indices = [slice(0, 0, 1)] + [slice(4, 6, 1) for _ in coords] indices[1] = slice(1, -1, 1) assert np.allclose(a.data[indices], result, rtol=1.e-5) a.data[:] = 0. expr = p.inject(a, FLOAT(1.), u_t=a.indices[0]+1, p_t=p.indices[0]+1) Operator(expr)(a=a, time=1) indices = [slice(1, 1, 1)] + [slice(4, 6, 1) for _ in coords] indices[1] = slice(1, -1, 1) assert np.allclose(a.data[indices], result, rtol=1.e-5)
def test_interpolate_time_shift(shape, coords, npoints=20): """Test generic point interpolation testing the x-coordinate of an abitrary set of points going across the grid. This test verifies the optional time shifting for SparseTimeFunctions """ a = unit_box_time(shape=shape) p = time_points(a.grid, coords, npoints=npoints, nt=10) xcoords = p.coordinates.data[:, 0] p.data[:] = 1. expr = p.interpolate(a, u_t=a.indices[0] + 1) Operator(expr)(a=a) assert np.allclose(p.data[0, :], xcoords, rtol=1e-6) p.data[:] = 1. expr = p.interpolate(a, p_t=p.indices[0] + 1) Operator(expr)(a=a) assert np.allclose(p.data[1, :], xcoords, rtol=1e-6) p.data[:] = 1. expr = p.interpolate(a, u_t=a.indices[0] + 1, p_t=p.indices[0] + 1) Operator(expr)(a=a) assert np.allclose(p.data[1, :], xcoords, rtol=1e-6)
def test_interpolate_time_shift(shape, coords, npoints=20): """Test generic point interpolation testing the x-coordinate of an abitrary set of points going across the grid. This test verifies the optional time shifting for SparseTimeFunctions """ a = unit_box_time(shape=shape) p = time_points(a.grid, coords, npoints=npoints, nt=10) xcoords = p.coordinates.data[:, 0] p.data[:] = 1. expr = p.interpolate(a, u_t=a.indices[0]+1) Operator(expr)(a=a) assert np.allclose(p.data[0, :], xcoords, rtol=1e-6) p.data[:] = 1. expr = p.interpolate(a, p_t=p.indices[0]+1) Operator(expr)(a=a) assert np.allclose(p.data[1, :], xcoords, rtol=1e-6) p.data[:] = 1. expr = p.interpolate(a, u_t=a.indices[0]+1, p_t=p.indices[0]+1) Operator(expr)(a=a) assert np.allclose(p.data[1, :], xcoords, rtol=1e-6)