comparison test/testSbpOperators.jl @ 681:43cf58c69f91 feature/boundary_quads

Remove methods boundary_quadrature, and instead specialize quadrature on a zero-dimensional grid to return the IdentityMapping
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Mon, 08 Feb 2021 18:44:44 +0100
parents 1ce3a104afc8
children 5c229c889614
comparison
equal deleted inserted replaced
680:1d3e29ffc6c6 681:43cf58c69f91
401 g_2D = EquidistantGrid((77,66), (0.0, 0.0), (Lx,Ly)) 401 g_2D = EquidistantGrid((77,66), (0.0, 0.0), (Lx,Ly))
402 g_3D = EquidistantGrid((10,10, 10), (0.0, 0.0, 0.0), (Lx,Ly,Lz)) 402 g_3D = EquidistantGrid((10,10, 10), (0.0, 0.0, 0.0), (Lx,Ly,Lz))
403 integral(H,v) = sum(H*v) 403 integral(H,v) = sum(H*v)
404 @testset "quadrature" begin 404 @testset "quadrature" begin
405 op = read_D2_operator(sbp_operators_path()*"standard_diagonal.toml"; order=4) 405 op = read_D2_operator(sbp_operators_path()*"standard_diagonal.toml"; order=4)
406 @testset "0D" begin
407 H = quadrature(EquidistantGrid((),(),()),op.quadratureClosure)
408 @test H == IdentityMapping{Float64}()
409 @test H isa TensorMapping{T,0,0} where T
410 end
406 @testset "1D" begin 411 @testset "1D" begin
407 H = quadrature(g_1D,op.quadratureClosure) 412 H = quadrature(g_1D,op.quadratureClosure)
408 inner_stencil = CenteredStencil(1.) 413 inner_stencil = CenteredStencil(1.)
409 @test H == quadrature(g_1D,inner_stencil,op.quadratureClosure) 414 @test H == quadrature(g_1D,inner_stencil,op.quadratureClosure)
410 @test H isa TensorMapping{T,1,1} where T 415 @test H isa TensorMapping{T,1,1} where T
413 H = quadrature(g_2D,op.quadratureClosure) 418 H = quadrature(g_2D,op.quadratureClosure)
414 H_x = quadrature(restrict(g_2D,1),op.quadratureClosure) 419 H_x = quadrature(restrict(g_2D,1),op.quadratureClosure)
415 H_y = quadrature(restrict(g_2D,2),op.quadratureClosure) 420 H_y = quadrature(restrict(g_2D,2),op.quadratureClosure)
416 @test H == H_x⊗H_y 421 @test H == H_x⊗H_y
417 @test H isa TensorMapping{T,2,2} where T 422 @test H isa TensorMapping{T,2,2} where T
418 end
419 end
420
421 @testset "boundary_quadrature" begin
422 op = read_D2_operator(sbp_operators_path()*"standard_diagonal.toml"; order=4)
423 @testset "1D" begin
424 (id_l, id_r) = boundary_identifiers(g_1D)
425 @test boundary_quadrature(g_1D,op.quadratureClosure,id_l) == IdentityMapping{Float64}()
426 @test boundary_quadrature(g_1D,op.quadratureClosure,id_r) == IdentityMapping{Float64}()
427
428 end
429 @testset "2D" begin
430 (id_w, id_e, id_s, id_n) = boundary_identifiers(g_2D)
431 H_x = quadrature(restrict(g_2D,1),op.quadratureClosure)
432 H_y = quadrature(restrict(g_2D,2),op.quadratureClosure)
433 @test boundary_quadrature(g_2D,op.quadratureClosure,id_w) == H_y
434 @test boundary_quadrature(g_2D,op.quadratureClosure,id_e) == H_y
435 @test boundary_quadrature(g_2D,op.quadratureClosure,id_s) == H_x
436 @test boundary_quadrature(g_2D,op.quadratureClosure,id_n) == H_x
437 end
438 @testset "3D" begin
439 (id_w, id_e,
440 id_s, id_n,
441 id_t, id_b) = boundary_identifiers(g_3D)
442 H_xy = quadrature(restrict(g_3D,[1,2]),op.quadratureClosure)
443 H_xz = quadrature(restrict(g_3D,[1,3]),op.quadratureClosure)
444 H_yz = quadrature(restrict(g_3D,[2,3]),op.quadratureClosure)
445 @test boundary_quadrature(g_3D,op.quadratureClosure,id_w) == H_yz
446 @test boundary_quadrature(g_3D,op.quadratureClosure,id_e) == H_yz
447 @test boundary_quadrature(g_3D,op.quadratureClosure,id_s) == H_xz
448 @test boundary_quadrature(g_3D,op.quadratureClosure,id_n) == H_xz
449 @test boundary_quadrature(g_3D,op.quadratureClosure,id_t) == H_xy
450 @test boundary_quadrature(g_3D,op.quadratureClosure,id_b) == H_xy
451 end 423 end
452 end 424 end
453 425
454 @testset "Sizes" begin 426 @testset "Sizes" begin
455 op = read_D2_operator(sbp_operators_path()*"standard_diagonal.toml"; order=4) 427 op = read_D2_operator(sbp_operators_path()*"standard_diagonal.toml"; order=4)