Mercurial > repos > public > sbplib_julia
changeset 772:bea2feebbeca operator_storage_array_of_table
Fix boundaryops tests
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 15 Jul 2021 00:28:09 +0200 |
parents | d0c1d0b4da52 |
children | 3b29b2ff1f0e |
files | test/SbpOperators/boundaryops/boundary_restriction_test.jl test/SbpOperators/boundaryops/normal_derivative_test.jl |
diffstat | 2 files changed, 35 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/test/SbpOperators/boundaryops/boundary_restriction_test.jl Thu Jul 15 00:19:27 2021 +0200 +++ b/test/SbpOperators/boundaryops/boundary_restriction_test.jl Thu Jul 15 00:28:09 2021 +0200 @@ -8,27 +8,28 @@ import Sbplib.SbpOperators.BoundaryOperator @testset "boundary_restriction" begin - op = read_D2_operator(sbp_operators_path()*"standard_diagonal.toml"; order=4) + stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order = 4) + e_closure = parse_stencil(stencil_set["e"]["closure"]) g_1D = EquidistantGrid(11, 0.0, 1.0) g_2D = EquidistantGrid((11,15), (0.0, 0.0), (1.0,1.0)) @testset "boundary_restriction" begin @testset "1D" begin - e_l = boundary_restriction(g_1D,op.eClosure,Lower()) - @test e_l == boundary_restriction(g_1D,op.eClosure,CartesianBoundary{1,Lower}()) - @test e_l == BoundaryOperator(g_1D,op.eClosure,Lower()) + e_l = boundary_restriction(g_1D,e_closure,Lower()) + @test e_l == boundary_restriction(g_1D,e_closure,CartesianBoundary{1,Lower}()) + @test e_l == BoundaryOperator(g_1D,e_closure,Lower()) @test e_l isa BoundaryOperator{T,Lower} where T @test e_l isa TensorMapping{T,0,1} where T - e_r = boundary_restriction(g_1D,op.eClosure,Upper()) - @test e_r == boundary_restriction(g_1D,op.eClosure,CartesianBoundary{1,Upper}()) - @test e_r == BoundaryOperator(g_1D,op.eClosure,Upper()) + e_r = boundary_restriction(g_1D,e_closure,Upper()) + @test e_r == boundary_restriction(g_1D,e_closure,CartesianBoundary{1,Upper}()) + @test e_r == BoundaryOperator(g_1D,e_closure,Upper()) @test e_r isa BoundaryOperator{T,Upper} where T @test e_r isa TensorMapping{T,0,1} where T end @testset "2D" begin - e_w = boundary_restriction(g_2D,op.eClosure,CartesianBoundary{1,Upper}()) + e_w = boundary_restriction(g_2D,e_closure,CartesianBoundary{1,Upper}()) @test e_w isa InflatedTensorMapping @test e_w isa TensorMapping{T,1,2} where T end @@ -36,8 +37,8 @@ @testset "Application" begin @testset "1D" begin - e_l = boundary_restriction(g_1D, op.eClosure, CartesianBoundary{1,Lower}()) - e_r = boundary_restriction(g_1D, op.eClosure, CartesianBoundary{1,Upper}()) + e_l = boundary_restriction(g_1D, e_closure, CartesianBoundary{1,Lower}()) + e_r = boundary_restriction(g_1D, e_closure, CartesianBoundary{1,Upper}()) v = evalOn(g_1D,x->1+x^2) u = fill(3.124) @@ -48,10 +49,10 @@ end @testset "2D" begin - e_w = boundary_restriction(g_2D, op.eClosure, CartesianBoundary{1,Lower}()) - e_e = boundary_restriction(g_2D, op.eClosure, CartesianBoundary{1,Upper}()) - e_s = boundary_restriction(g_2D, op.eClosure, CartesianBoundary{2,Lower}()) - e_n = boundary_restriction(g_2D, op.eClosure, CartesianBoundary{2,Upper}()) + e_w = boundary_restriction(g_2D, e_closure, CartesianBoundary{1,Lower}()) + e_e = boundary_restriction(g_2D, e_closure, CartesianBoundary{1,Upper}()) + e_s = boundary_restriction(g_2D, e_closure, CartesianBoundary{2,Lower}()) + e_n = boundary_restriction(g_2D, e_closure, CartesianBoundary{2,Upper}()) v = rand(11, 15) u = fill(3.124)
--- a/test/SbpOperators/boundaryops/normal_derivative_test.jl Thu Jul 15 00:19:27 2021 +0200 +++ b/test/SbpOperators/boundaryops/normal_derivative_test.jl Thu Jul 15 00:28:09 2021 +0200 @@ -11,21 +11,21 @@ g_1D = EquidistantGrid(11, 0.0, 1.0) g_2D = EquidistantGrid((11,12), (0.0, 0.0), (1.0,1.0)) @testset "normal_derivative" begin - op = read_D2_operator(sbp_operators_path()*"standard_diagonal.toml"; order=4) + stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order=4) + d_closure = parse_stencil(stencil_set["d1"]["closure"]) @testset "1D" begin - d_l = normal_derivative(g_1D, op.dClosure, Lower()) - @test d_l == normal_derivative(g_1D, op.dClosure, CartesianBoundary{1,Lower}()) + d_l = normal_derivative(g_1D, d_closure, Lower()) + @test d_l == normal_derivative(g_1D, d_closure, CartesianBoundary{1,Lower}()) @test d_l isa BoundaryOperator{T,Lower} where T @test d_l isa TensorMapping{T,0,1} where T end @testset "2D" begin - op = read_D2_operator(sbp_operators_path()*"standard_diagonal.toml"; order=4) - d_w = normal_derivative(g_2D, op.dClosure, CartesianBoundary{1,Lower}()) - d_n = normal_derivative(g_2D, op.dClosure, CartesianBoundary{2,Upper}()) + d_w = normal_derivative(g_2D, d_closure, CartesianBoundary{1,Lower}()) + d_n = normal_derivative(g_2D, d_closure, CartesianBoundary{2,Upper}()) Ix = IdentityMapping{Float64}((size(g_2D)[1],)) Iy = IdentityMapping{Float64}((size(g_2D)[2],)) - d_l = normal_derivative(restrict(g_2D,1),op.dClosure,Lower()) - d_r = normal_derivative(restrict(g_2D,2),op.dClosure,Upper()) + d_l = normal_derivative(restrict(g_2D,1),d_closure,Lower()) + d_r = normal_derivative(restrict(g_2D,2),d_closure,Upper()) @test d_w == d_l⊗Iy @test d_n == Ix⊗d_r @test d_w isa TensorMapping{T,1,2} where T @@ -38,11 +38,12 @@ v∂y = evalOn(g_2D, (x,y)-> 2*(y-1) + x) # TODO: Test for higher order polynomials? @testset "2nd order" begin - op = read_D2_operator(sbp_operators_path()*"standard_diagonal.toml"; order=2) - d_w = normal_derivative(g_2D, op.dClosure, CartesianBoundary{1,Lower}()) - d_e = normal_derivative(g_2D, op.dClosure, CartesianBoundary{1,Upper}()) - d_s = normal_derivative(g_2D, op.dClosure, CartesianBoundary{2,Lower}()) - d_n = normal_derivative(g_2D, op.dClosure, CartesianBoundary{2,Upper}()) + stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order=2) + d_closure = parse_stencil(stencil_set["d1"]["closure"]) + d_w = normal_derivative(g_2D, d_closure, CartesianBoundary{1,Lower}()) + d_e = normal_derivative(g_2D, d_closure, CartesianBoundary{1,Upper}()) + d_s = normal_derivative(g_2D, d_closure, CartesianBoundary{2,Lower}()) + d_n = normal_derivative(g_2D, d_closure, CartesianBoundary{2,Upper}()) @test d_w*v ≈ v∂x[1,:] atol = 1e-13 @test d_e*v ≈ -v∂x[end,:] atol = 1e-13 @@ -51,11 +52,12 @@ end @testset "4th order" begin - op = read_D2_operator(sbp_operators_path()*"standard_diagonal.toml"; order=4) - d_w = normal_derivative(g_2D, op.dClosure, CartesianBoundary{1,Lower}()) - d_e = normal_derivative(g_2D, op.dClosure, CartesianBoundary{1,Upper}()) - d_s = normal_derivative(g_2D, op.dClosure, CartesianBoundary{2,Lower}()) - d_n = normal_derivative(g_2D, op.dClosure, CartesianBoundary{2,Upper}()) + stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order=2) + d_closure = parse_stencil(stencil_set["d1"]["closure"]) + d_w = normal_derivative(g_2D, d_closure, CartesianBoundary{1,Lower}()) + d_e = normal_derivative(g_2D, d_closure, CartesianBoundary{1,Upper}()) + d_s = normal_derivative(g_2D, d_closure, CartesianBoundary{2,Lower}()) + d_n = normal_derivative(g_2D, d_closure, CartesianBoundary{2,Upper}()) @test d_w*v ≈ v∂x[1,:] atol = 1e-13 @test d_e*v ≈ -v∂x[end,:] atol = 1e-13