diff test/SbpOperators/volumeops/derivatives/first_derivative_test.jl @ 1291:356ec6a72974 refactor/grids

Implement changes in SbpOperators
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 07 Mar 2023 09:48:00 +0100
parents 7d52c4835d15
children 43aaf710463e
line wrap: on
line diff
--- a/test/SbpOperators/volumeops/derivatives/first_derivative_test.jl	Tue Mar 07 09:21:27 2023 +0100
+++ b/test/SbpOperators/volumeops/derivatives/first_derivative_test.jl	Tue Mar 07 09:48:00 2023 +0100
@@ -21,76 +21,74 @@
 end
 
 @testset "first_derivative" begin
-    @test_skip @testset "Constructors" 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.))
+        g₁ = equidistant_grid(11, 0., 1.)
+        g₂ = equidistant_grid((11,14), (0.,1.), (1.,3.))
         
-        @test first_derivative(g₁, stencil_set, 1) isa LazyTensor{Float64,1,1}
+        @test first_derivative(g₁, stencil_set) isa LazyTensor{Float64,1,1}
         @test first_derivative(g₂, stencil_set, 2) isa LazyTensor{Float64,2,2}
-        @test first_derivative(g₁, stencil_set, 1) == first_derivative(g₁, stencil_set)
 
         interior_stencil = CenteredStencil(-1,0,1)
         closure_stencils = [Stencil(-1,1, center=1)]
 
-        @test first_derivative(g₁, interior_stencil, closure_stencils, 1) isa LazyTensor{Float64,1,1}
-        @test first_derivative(g₁, interior_stencil, closure_stencils, 1) isa VolumeOperator
-        @test first_derivative(g₁, interior_stencil, closure_stencils, 1) == first_derivative(g₁, interior_stencil, closure_stencils)
-        @test first_derivative(g₂, interior_stencil, closure_stencils, 2) isa LazyTensor{Float64,2,2}
+        @test first_derivative(g₁, interior_stencil, closure_stencils) isa LazyTensor{Float64,1,1}
     end
 
-    @test_skip @testset "Accuracy conditions" begin
+    @testset "Accuracy conditions" begin
         N = 20
-        g = EquidistantGrid(N, 0//1,2//1)
+        g = equidistant_grid(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)
+            D₁ = first_derivative(g, stencil_set)
 
             @testset "boundary x^$k" for k ∈ 0:order÷2
-                v = evalOn(g, x->monomial(x,k))
+                v = eval_on(g, x->monomial(x,k))
 
                 @testset for i ∈ 1:closure_size(D₁)
-                    x, = points(g)[i]
+                    x, = g[i]
                     @test (D₁*v)[i] == monomial(x,k-1)
                 end
 
                 @testset for i ∈ (N-closure_size(D₁)+1):N
-                    x, = points(g)[i]
+                    x, = g[i]
                     @test (D₁*v)[i] == monomial(x,k-1)
                 end
             end
 
             @testset "interior x^$k" for k ∈ 0:order
-                v = evalOn(g, x->monomial(x,k))
+                v = eval_on(g, x->monomial(x,k))
 
-                x, = points(g)[10]
+                x, = g[10]
                 @test (D₁*v)[10] == monomial(x,k-1)
             end
         end
     end
 
-    @test_skip @testset "Accuracy on function" begin
-        # 1D
-        g = EquidistantGrid(30, 0.,1.)
-        v = evalOn(g, x->exp(x))
-        @testset for (order, tol) ∈ [(2, 6e-3),(4, 2e-4)]
-            stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order)
-            D₁ = first_derivative(g, stencil_set, 1)
+    @testset "Accuracy on function" begin
+        @testset "1D" begin
+            g = equidistant_grid(30, 0.,1.)
+            v = eval_on(g, x->exp(x))
+            @testset for (order, tol) ∈ [(2, 6e-3),(4, 2e-4)]
+                stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order)
+                D₁ = first_derivative(g, stencil_set)
 
-            @test D₁*v ≈ v rtol=tol
+                @test D₁*v ≈ v rtol=tol
+            end
         end
 
-        # 2D
-        g = EquidistantGrid((30,60), (0.,0.),(1.,2.))
-        v = evalOn(g, (x,y)->exp(0.8x+1.2*y))
-        @testset for (order, tol) ∈ [(2, 6e-3),(4, 3e-4)]
-            stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order)
-            Dx = first_derivative(g, stencil_set, 1)
-            Dy = first_derivative(g, stencil_set, 2)
+        @testset "2D" begin
+            g = equidistant_grid((30,60), (0.,0.),(1.,2.))
+            v = eval_on(g, (x,y)->exp(0.8x+1.2*y))
+            @testset for (order, tol) ∈ [(2, 6e-3),(4, 3e-4)]
+                stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order)
+                Dx = first_derivative(g, stencil_set, 1)
+                Dy = first_derivative(g, stencil_set, 2)
 
-            @test Dx*v ≈ 0.8v rtol=tol
-            @test Dy*v ≈ 1.2v rtol=tol
+                @test Dx*v ≈ 0.8v rtol=tol
+                @test Dy*v ≈ 1.2v rtol=tol
+            end
         end
     end
 end