Mercurial > repos > public > sbplib_julia
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) |