Mercurial > repos > public > sbplib_julia
changeset 978:1a05009e731b feature/first_derivative
Add tests for constructors
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 15 Mar 2022 21:17:58 +0100 |
parents | ba023fc09961 |
children | b90446eb5f27 |
files | test/SbpOperators/volumeops/derivatives/first_derivative_test.jl |
diffstat | 1 files changed, 22 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/test/SbpOperators/volumeops/derivatives/first_derivative_test.jl Tue Mar 15 07:29:41 2022 +0100 +++ b/test/SbpOperators/volumeops/derivatives/first_derivative_test.jl Tue Mar 15 21:17:58 2022 +0100 @@ -1,9 +1,11 @@ using Test + using Sbplib.SbpOperators using Sbplib.Grids +using Sbplib.LazyTensors -using Sbplib.SbpOperators: closure_size +using Sbplib.SbpOperators: closure_size, Stencil """ monomial(x,k) @@ -19,14 +21,30 @@ end @testset "first_derivative" begin - @testset "accuracy" begin + @testset "Constructors" begin + stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order=2) + + g₁ = EquidistantGrid(11, 0., 1.) + g₂ = EquidistantGrid((11,14), (0.,1.), (1.,3.)) + + @test first_derivative(g₁, stencil_set, 1) isa TensorMapping{Float64,1,1} + @test first_derivative(g₂, stencil_set, 2) isa TensorMapping{Float64,2,2} + + interior_stencil = CenteredStencil(-1,0,1) + closure_stencils = [Stencil(-1,1, center=1)] + + @test first_derivative(g₁, interior_stencil, closure_stencils, 1) isa TensorMapping{Float64,1,1} + @test first_derivative(g₂, interior_stencil, closure_stencils, 2) isa TensorMapping{Float64,2,2} + end + + @testset "Accuracy" begin N = 20 g = EquidistantGrid(N, 0//1,2//1) @testset for order ∈ [2,4] stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order) D₁ = first_derivative(g, stencil_set, 1) - @testset "boundary accuracy $k" for k ∈ 0:order÷2 + @testset "boundary x^$k" for k ∈ 0:order÷2 v = evalOn(g, x->monomial(x,k)) @testset for i ∈ 1:closure_size(D₁) @@ -40,7 +58,7 @@ end end - @testset "interior accuracy $k" for k ∈ 0:order + @testset "interior x^$k" for k ∈ 0:order v = evalOn(g, x->monomial(x,k)) x, = points(g)[10]