示例#1
0
def test_insert_polar():
    """test the `insert` method for polar systems"""
    grid = PolarSymGrid(3, 5)
    f = ScalarField(grid)
    g = f.copy()
    a = np.random.random()
    for r in np.linspace(0, 3, 8).reshape(8, 1):
        f.data = g.data = 0
        f.insert(r, a)
        assert f.integral == pytest.approx(a)
        grid.make_inserter_compiled()(g.data, r, a)
        np.testing.assert_array_almost_equal(f.data, g.data)
示例#2
0
def test_insert_scalar(example_grid):
    """test the `insert` method"""
    f = ScalarField(example_grid)
    a = np.random.random()

    c = tuple(example_grid.point_to_cell(example_grid.get_random_point()))
    p = example_grid.cell_to_point(c, cartesian=False)
    f.insert(p, a)
    assert f.data[c] == pytest.approx(a / example_grid.cell_volumes[c])

    f.insert(example_grid.get_random_point(cartesian=False), a)
    assert f.integral == pytest.approx(2 * a)

    f.data = 0  # reset
    insert = example_grid.make_inserter_compiled()
    c = tuple(example_grid.point_to_cell(example_grid.get_random_point()))
    p = example_grid.cell_to_point(c, cartesian=False)
    insert(f.data, p, a)
    assert f.data[c] == pytest.approx(a / example_grid.cell_volumes[c])

    insert(f.data, example_grid.get_random_point(cartesian=False), a)
    assert f.integral == pytest.approx(2 * a)
示例#3
0
def test_insert_scalar(grid):
    """test the `insert` method"""
    f = ScalarField(grid)
    a = np.random.random()

    c = tuple(grid.get_random_point(coords="cell"))
    p = grid.transform(c, "cell", "grid")
    f.insert(p, a)
    assert f.data[c] == pytest.approx(a / grid.cell_volumes[c])

    f.insert(grid.get_random_point(coords="grid"), a)
    assert f.integral == pytest.approx(2 * a)

    f.data = 0  # reset
    insert = grid.make_inserter_compiled()
    c = tuple(grid.get_random_point(coords="cell"))
    p = grid.transform(c, "cell", "grid")
    insert(f.data, p, a)
    assert f.data[c] == pytest.approx(a / grid.cell_volumes[c])

    insert(f.data, grid.get_random_point(coords="grid"), a)
    assert f.integral == pytest.approx(2 * a)