comparison test/SbpOperators/boundaryops/normal_derivative_test.jl @ 1829:871f3f1decea refactor/grids/iterable_boundary_indices

Merge default
author Jonatan Werpers <jonatan@werpers.com>
date Sun, 20 Oct 2024 21:38:09 +0200
parents 471a948cd2b2
children f3d7e2d7a43f
comparison
equal deleted inserted replaced
1828:8adecef380b4 1829:871f3f1decea
1 using Test 1 using Test
2 2
3 using Sbplib.SbpOperators 3 using Diffinitive.SbpOperators
4 using Sbplib.Grids 4 using Diffinitive.Grids
5 using Sbplib.LazyTensors 5 using Diffinitive.LazyTensors
6 using Sbplib.RegionIndices 6 using Diffinitive.RegionIndices
7 import Sbplib.SbpOperators.BoundaryOperator 7 import Diffinitive.SbpOperators.BoundaryOperator
8 8
9 @testset "normal_derivative" begin 9 @testset "normal_derivative" begin
10 g_1D = equidistant_grid(0.0, 1.0, 11) 10 g_1D = equidistant_grid(0.0, 1.0, 11)
11 g_2D = equidistant_grid((0.0, 0.0), (1.0,1.0), 11, 12) 11 g_2D = equidistant_grid((0.0, 0.0), (1.0,1.0), 11, 12)
12 @testset "normal_derivative" begin 12 @testset "normal_derivative" begin
13 stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order=4) 13 stencil_set = read_stencil_set(sbp_operators_path()*"standard_diagonal.toml"; order=4)
14 @testset "1D" begin 14 @testset "1D" begin
15 d_l = normal_derivative(g_1D, stencil_set, Lower()) 15 d_l = normal_derivative(g_1D, stencil_set, LowerBoundary())
16 @test d_l == normal_derivative(g_1D, stencil_set, Lower()) 16 @test d_l == normal_derivative(g_1D, stencil_set, LowerBoundary())
17 @test d_l isa BoundaryOperator{T,Lower} where T 17 @test d_l isa BoundaryOperator{T,LowerBoundary} where T
18 @test d_l isa LazyTensor{T,0,1} where T 18 @test d_l isa LazyTensor{T,0,1} where T
19 end 19 end
20 @testset "2D" begin 20 @testset "2D" begin
21 d_w = normal_derivative(g_2D, stencil_set, CartesianBoundary{1,Lower}()) 21 d_w = normal_derivative(g_2D, stencil_set, CartesianBoundary{1,LowerBoundary}())
22 d_n = normal_derivative(g_2D, stencil_set, CartesianBoundary{2,Upper}()) 22 d_n = normal_derivative(g_2D, stencil_set, CartesianBoundary{2,UpperBoundary}())
23 Ix = IdentityTensor{Float64}((size(g_2D)[1],)) 23 Ix = IdentityTensor{Float64}((size(g_2D)[1],))
24 Iy = IdentityTensor{Float64}((size(g_2D)[2],)) 24 Iy = IdentityTensor{Float64}((size(g_2D)[2],))
25 d_l = normal_derivative(g_2D.grids[1], stencil_set, Lower()) 25 d_l = normal_derivative(g_2D.grids[1], stencil_set, LowerBoundary())
26 d_r = normal_derivative(g_2D.grids[2], stencil_set, Upper()) 26 d_r = normal_derivative(g_2D.grids[2], stencil_set, UpperBoundary())
27 @test d_w == normal_derivative(g_2D, stencil_set, CartesianBoundary{1,Lower}()) 27 @test d_w == normal_derivative(g_2D, stencil_set, CartesianBoundary{1,LowerBoundary}())
28 @test d_w == d_l⊗Iy 28 @test d_w == d_l⊗Iy
29 @test d_n == Ix⊗d_r 29 @test d_n == Ix⊗d_r
30 @test d_w isa LazyTensor{T,1,2} where T 30 @test d_w isa LazyTensor{T,1,2} where T
31 @test d_n isa LazyTensor{T,1,2} where T 31 @test d_n isa LazyTensor{T,1,2} where T
32 end 32 end