comparison test/SbpOperators/boundaryops/normal_derivative_test.jl @ 950:97e9a8337a86 feature/laplace_opset

Review: broadcast instead of map in some places
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 14 Mar 2022 08:06:50 +0100
parents 7168d28b03e3
children 775d5513da8f
comparison
equal deleted inserted replaced
949:7168d28b03e3 950:97e9a8337a86
40 @testset "2nd order" begin 40 @testset "2nd order" begin
41 stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order=2) 41 stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order=2)
42 d_closure = parse_stencil(stencil_set["d1"]["closure"]) 42 d_closure = parse_stencil(stencil_set["d1"]["closure"])
43 d_w, d_e, d_s, d_n = 43 d_w, d_e, d_s, d_n =
44 map(id -> normal_derivative(g_2D, d_closure, id), boundary_identifiers(g_2D)) 44 map(id -> normal_derivative(g_2D, d_closure, id), boundary_identifiers(g_2D))
45 # REVIEW: Would prefere to write this as
46 # d_w, d_e, d_s, d_n = normal_derivative.(Ref(g_2D), Ref(d_closure), boundary_identifiers(g_2D))
47 # to avoid the line break
45 48
46 @test d_w*v ≈ -v∂x[1,:] atol = 1e-13 49 @test d_w*v ≈ -v∂x[1,:] atol = 1e-13
47 @test d_e*v ≈ v∂x[end,:] atol = 1e-13 50 @test d_e*v ≈ v∂x[end,:] atol = 1e-13
48 @test d_s*v ≈ -v∂y[:,1] atol = 1e-13 51 @test d_s*v ≈ -v∂y[:,1] atol = 1e-13
49 @test d_n*v ≈ v∂y[:,end] atol = 1e-13 52 @test d_n*v ≈ v∂y[:,end] atol = 1e-13
52 @testset "4th order" begin 55 @testset "4th order" begin
53 stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order=4) 56 stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order=4)
54 d_closure = parse_stencil(stencil_set["d1"]["closure"]) 57 d_closure = parse_stencil(stencil_set["d1"]["closure"])
55 d_w, d_e, d_s, d_n = 58 d_w, d_e, d_s, d_n =
56 map(id -> normal_derivative(g_2D, d_closure, id), boundary_identifiers(g_2D)) 59 map(id -> normal_derivative(g_2D, d_closure, id), boundary_identifiers(g_2D))
57 60 # REVIEW: Same as above
58 @test d_w*v ≈ -v∂x[1,:] atol = 1e-13 61 @test d_w*v ≈ -v∂x[1,:] atol = 1e-13
59 @test d_e*v ≈ v∂x[end,:] atol = 1e-13 62 @test d_e*v ≈ v∂x[end,:] atol = 1e-13
60 @test d_s*v ≈ -v∂y[:,1] atol = 1e-13 63 @test d_s*v ≈ -v∂y[:,1] atol = 1e-13
61 @test d_n*v ≈ v∂y[:,end] atol = 1e-13 64 @test d_n*v ≈ v∂y[:,end] atol = 1e-13
62 end 65 end