comparison test/SbpOperators/boundaryops/normal_derivative_test.jl @ 928:453fd1a2e858 feature/variable_derivatives

Merge bugfix/normal_derivative_sign
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 18 Feb 2022 08:03:37 +0100
parents 35be8253de89
children d360fc2d9620
comparison
equal deleted inserted replaced
917:eb054537fc63 928:453fd1a2e858
43 d_w = normal_derivative(g_2D, d_closure, CartesianBoundary{1,Lower}()) 43 d_w = normal_derivative(g_2D, d_closure, CartesianBoundary{1,Lower}())
44 d_e = normal_derivative(g_2D, d_closure, CartesianBoundary{1,Upper}()) 44 d_e = normal_derivative(g_2D, d_closure, CartesianBoundary{1,Upper}())
45 d_s = normal_derivative(g_2D, d_closure, CartesianBoundary{2,Lower}()) 45 d_s = normal_derivative(g_2D, d_closure, CartesianBoundary{2,Lower}())
46 d_n = normal_derivative(g_2D, d_closure, CartesianBoundary{2,Upper}()) 46 d_n = normal_derivative(g_2D, d_closure, CartesianBoundary{2,Upper}())
47 47
48 @test d_w*v ≈ v∂x[1,:] atol = 1e-13 48 @test d_w*v ≈ -v∂x[1,:] atol = 1e-13
49 @test d_e*v ≈ -v∂x[end,:] atol = 1e-13 49 @test d_e*v ≈ v∂x[end,:] atol = 1e-13
50 @test d_s*v ≈ v∂y[:,1] atol = 1e-13 50 @test d_s*v ≈ -v∂y[:,1] atol = 1e-13
51 @test d_n*v ≈ -v∂y[:,end] atol = 1e-13 51 @test d_n*v ≈ v∂y[:,end] atol = 1e-13
52 end 52 end
53 53
54 @testset "4th order" begin 54 @testset "4th order" begin
55 stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order=2) 55 stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order=4)
56 d_closure = parse_stencil(stencil_set["d1"]["closure"]) 56 d_closure = parse_stencil(stencil_set["d1"]["closure"])
57 d_w = normal_derivative(g_2D, d_closure, CartesianBoundary{1,Lower}()) 57 d_w = normal_derivative(g_2D, d_closure, CartesianBoundary{1,Lower}())
58 d_e = normal_derivative(g_2D, d_closure, CartesianBoundary{1,Upper}()) 58 d_e = normal_derivative(g_2D, d_closure, CartesianBoundary{1,Upper}())
59 d_s = normal_derivative(g_2D, d_closure, CartesianBoundary{2,Lower}()) 59 d_s = normal_derivative(g_2D, d_closure, CartesianBoundary{2,Lower}())
60 d_n = normal_derivative(g_2D, d_closure, CartesianBoundary{2,Upper}()) 60 d_n = normal_derivative(g_2D, d_closure, CartesianBoundary{2,Upper}())
61 61
62 @test d_w*v ≈ v∂x[1,:] atol = 1e-13 62 @test d_w*v ≈ -v∂x[1,:] atol = 1e-13
63 @test d_e*v ≈ -v∂x[end,:] atol = 1e-13 63 @test d_e*v ≈ v∂x[end,:] atol = 1e-13
64 @test d_s*v ≈ v∂y[:,1] atol = 1e-13 64 @test d_s*v ≈ -v∂y[:,1] atol = 1e-13
65 @test d_n*v ≈ -v∂y[:,end] atol = 1e-13 65 @test d_n*v ≈ v∂y[:,end] atol = 1e-13
66 end 66 end
67 end 67 end
68 end 68 end