예제 #1
0
def test_CFD_convergence_order(stencil_index):
    func_stencil = stencil_size_range[stencil_index]
    grid = field.UniformPeriodicGrid(50, 2*np.pi)

    d = spatial.CompactFiniteDifferenceUniformGrid(1, 3, func_stencil, grid)

    assert convergence_list[stencil_index] == d.convergence_order
예제 #2
0
def test_CFD2_r2():
    grid = field.UniformPeriodicGrid(100, 2 * np.pi)
    f = field.Field(grid, np.sin(grid.values))
    d = spatial.CompactFiniteDifferenceUniformGrid(2, 5, 3, grid)
    df = d.operate(f)
    df0 = -np.sin (grid.values)
    error = np.max(np.abs(df.data - df0))
    print(error)
    assert error < error_bound_2[2]
예제 #3
0
def test_CFD_error_estimate(stencil_index):
    func_stencil = stencil_size_range[stencil_index]
    grid = field.UniformPeriodicGrid(50, 2*np.pi)

    d = spatial.CompactFiniteDifferenceUniformGrid(1, 3, func_stencil, grid)

    error_est = d.error_estimate(1)

    error_ref = error_list[stencil_index]
    fraction_diff = np.abs(error_est - error_ref)/error_ref

    assert fraction_diff < 0.8