Skip to content

compiler: Cyclic rotation is broken #113

@georgebisbas

Description

@georgebisbas

This problem is seen only with different initial data in buffers

@pytest.mark.parametrize('shape, rtol', [(5, 1e-5), (100, 1e-6)])
def test_precision_II(shape, rtol):
    # Define an upper bound of precision

    nt = 1
    grid = Grid(shape=(shape,))
    u = TimeFunction(name='u', grid=grid, time_order=2, space_order=2)

    init0 = 1.
    init1 = 2.
    init2 = 3.

    dt = 0.1
    u.data[0, :] = init0
    u.data[1, :] = init1
    u.data[2, :] = init2

    import pdb; pdb.set_trace()

    pde = u.dt2 - u.laplace
    stencil = Eq(u.forward, solve(pde, u.forward))

    opd = Operator([stencil])
    opd.apply(time_M=nt, dt=dt)
    dnorm = norm(u)
    dnorm0 = np.linalg.norm(u.data[0])

    import pdb; pdb.set_trace()

    u.data[0, :] = init0
    u.data[1, :] = init1
    u.data[2, :] = init2

    opx = Operator([stencil], opt='xdsl')
    opx.apply(time_M=nt, dt=dt)
    xnorm = norm(u)
    xnorm0 = np.linalg.norm(u.data[0])

    import pdb; pdb.set_trace()

    assert np.isclose(dnorm0, xnorm0, atol=0, rtol=rtol)
    assert np.isclose(dnorm, xnorm, atol=0, rtol=rtol)

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions