Mercurial > repos > public > sbplib_julia
comparison test/testSbpOperators.jl @ 631:fb915bce2228 feature/volume_and_boundary_operators
Fix indentation
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Thu, 31 Dec 2020 08:28:06 +0100 |
parents | 9f0f1ace5101 |
children | bf8b66c596f7 |
comparison
equal
deleted
inserted
replaced
630:9f0f1ace5101 | 631:fb915bce2228 |
---|---|
519 @test range_size(op_s) == (11,) | 519 @test range_size(op_s) == (11,) |
520 @test range_size(op_n) == (11,) | 520 @test range_size(op_n) == (11,) |
521 end | 521 end |
522 end | 522 end |
523 | 523 |
524 | |
525 @testset "Application" begin | 524 @testset "Application" begin |
526 @testset "1D" begin | 525 @testset "1D" begin |
527 v = evalOn(g_1D,x->1+x^2) | 526 v = evalOn(g_1D,x->1+x^2) |
528 u = fill(3.124) | 527 u = fill(3.124) |
529 @test (op_l*v)[] == 2*v[1] + v[2] + 3*v[3] | 528 @test (op_l*v)[] == 2*v[1] + v[2] + 3*v[3] |
540 @test op_e*v ≈ 2*v[end,:] + v[end-1,:] + 3*v[end-2,:] rtol = 1e-14 | 539 @test op_e*v ≈ 2*v[end,:] + v[end-1,:] + 3*v[end-2,:] rtol = 1e-14 |
541 @test op_s*v ≈ 2*v[:,1] + v[:,2] + 3*v[:,3] rtol = 1e-14 | 540 @test op_s*v ≈ 2*v[:,1] + v[:,2] + 3*v[:,3] rtol = 1e-14 |
542 @test op_n*v ≈ 2*v[:,end] + v[:,end-1] + 3*v[:,end-2] rtol = 1e-14 | 541 @test op_n*v ≈ 2*v[:,end] + v[:,end-1] + 3*v[:,end-2] rtol = 1e-14 |
543 | 542 |
544 | 543 |
545 g_x = rand(size(g_2D)[1]) | 544 g_x = rand(size(g_2D)[1]) |
546 g_y = rand(size(g_2D)[2]) | 545 g_y = rand(size(g_2D)[2]) |
547 | 546 |
548 G_w = zeros(Float64, size(g_2D)...) | 547 G_w = zeros(Float64, size(g_2D)...) |
549 G_w[1,:] = 2*g_y | 548 G_w[1,:] = 2*g_y |
550 G_w[2,:] = g_y | 549 G_w[2,:] = g_y |
551 G_w[3,:] = 3*g_y | 550 G_w[3,:] = 3*g_y |
552 | 551 |
553 G_e = zeros(Float64, size(g_2D)...) | 552 G_e = zeros(Float64, size(g_2D)...) |
554 G_e[end,:] = 2*g_y | 553 G_e[end,:] = 2*g_y |
555 G_e[end-1,:] = g_y | 554 G_e[end-1,:] = g_y |
556 G_e[end-2,:] = 3*g_y | 555 G_e[end-2,:] = 3*g_y |
557 | 556 |
558 G_s = zeros(Float64, size(g_2D)...) | 557 G_s = zeros(Float64, size(g_2D)...) |
559 G_s[:,1] = 2*g_x | 558 G_s[:,1] = 2*g_x |
560 G_s[:,2] = g_x | 559 G_s[:,2] = g_x |
561 G_s[:,3] = 3*g_x | 560 G_s[:,3] = 3*g_x |
562 | 561 |
563 G_n = zeros(Float64, size(g_2D)...) | 562 G_n = zeros(Float64, size(g_2D)...) |
564 G_n[:,end] = 2*g_x | 563 G_n[:,end] = 2*g_x |
565 G_n[:,end-1] = g_x | 564 G_n[:,end-1] = g_x |
566 G_n[:,end-2] = 3*g_x | 565 G_n[:,end-2] = 3*g_x |
567 | 566 |
568 @test op_w'*g_y == G_w | 567 @test op_w'*g_y == G_w |
569 @test op_e'*g_y == G_e | 568 @test op_e'*g_y == G_e |
570 @test op_s'*g_x == G_s | 569 @test op_s'*g_x == G_s |
571 @test op_n'*g_x == G_n | 570 @test op_n'*g_x == G_n |
572 end | 571 end |
573 | 572 |
574 @testset "Regions" begin | 573 @testset "Regions" begin |
575 u = fill(3.124) | 574 u = fill(3.124) |
576 @test (op_l'*u)[Index(1,Lower)] == 2*u[] | 575 @test (op_l'*u)[Index(1,Lower)] == 2*u[] |
577 @test (op_l'*u)[Index(2,Lower)] == u[] | 576 @test (op_l'*u)[Index(2,Lower)] == u[] |
578 @test (op_l'*u)[Index(6,Interior)] == 0 | 577 @test (op_l'*u)[Index(6,Interior)] == 0 |
579 @test (op_l'*u)[Index(10,Upper)] == 0 | 578 @test (op_l'*u)[Index(10,Upper)] == 0 |
580 @test (op_l'*u)[Index(11,Upper)] == 0 | 579 @test (op_l'*u)[Index(11,Upper)] == 0 |
581 | 580 |
582 @test (op_r'*u)[Index(1,Lower)] == 0 | 581 @test (op_r'*u)[Index(1,Lower)] == 0 |
583 @test (op_r'*u)[Index(2,Lower)] == 0 | 582 @test (op_r'*u)[Index(2,Lower)] == 0 |
584 @test (op_r'*u)[Index(6,Interior)] == 0 | 583 @test (op_r'*u)[Index(6,Interior)] == 0 |
585 @test (op_r'*u)[Index(10,Upper)] == u[] | 584 @test (op_r'*u)[Index(10,Upper)] == u[] |
586 @test (op_r'*u)[Index(11,Upper)] == 2*u[] | 585 @test (op_r'*u)[Index(11,Upper)] == 2*u[] |
587 end | 586 end |
588 end | 587 end |
589 | 588 |
590 @testset "Inferred" begin | 589 @testset "Inferred" begin |
591 v = ones(Float64, 11) | 590 v = ones(Float64, 11) |
614 @testset "BoundaryRestriction" begin | 613 @testset "BoundaryRestriction" begin |
615 op = read_D2_operator(sbp_operators_path()*"standard_diagonal.toml"; order=4) | 614 op = read_D2_operator(sbp_operators_path()*"standard_diagonal.toml"; order=4) |
616 g_1D = EquidistantGrid(11, 0.0, 1.0) | 615 g_1D = EquidistantGrid(11, 0.0, 1.0) |
617 g_2D = EquidistantGrid((11,15), (0.0, 0.0), (1.0,1.0)) | 616 g_2D = EquidistantGrid((11,15), (0.0, 0.0), (1.0,1.0)) |
618 | 617 |
618 # TODO: These areant really constructors. Better name? | |
619 @testset "Constructors" begin | 619 @testset "Constructors" begin |
620 @testset "1D" begin | 620 @testset "1D" begin |
621 e_l = BoundaryRestriction(g_1D,op.eClosure,Lower()) | 621 e_l = BoundaryRestriction(g_1D,op.eClosure,Lower()) |
622 @test e_l == BoundaryRestriction(g_1D,op.eClosure,CartesianBoundary{1,Lower}()) | 622 @test e_l == BoundaryRestriction(g_1D,op.eClosure,CartesianBoundary{1,Lower}()) |
623 @test e_l == BoundaryOperator(g_1D,op.eClosure,Lower()) | 623 @test e_l == BoundaryOperator(g_1D,op.eClosure,Lower()) |
666 @test e_e*v == v[end,:] | 666 @test e_e*v == v[end,:] |
667 @test e_s*v == v[:,1] | 667 @test e_s*v == v[:,1] |
668 @test e_n*v == v[:,end] | 668 @test e_n*v == v[:,end] |
669 | 669 |
670 | 670 |
671 g_x = rand(11) | 671 g_x = rand(11) |
672 g_y = rand(15) | 672 g_y = rand(15) |
673 | 673 |
674 G_w = zeros(Float64, (11,15)) | 674 G_w = zeros(Float64, (11,15)) |
675 G_w[1,:] = g_y | 675 G_w[1,:] = g_y |
676 | 676 |
677 G_e = zeros(Float64, (11,15)) | 677 G_e = zeros(Float64, (11,15)) |
678 G_e[end,:] = g_y | 678 G_e[end,:] = g_y |
679 | 679 |
680 G_s = zeros(Float64, (11,15)) | 680 G_s = zeros(Float64, (11,15)) |
681 G_s[:,1] = g_x | 681 G_s[:,1] = g_x |
682 | 682 |
683 G_n = zeros(Float64, (11,15)) | 683 G_n = zeros(Float64, (11,15)) |
684 G_n[:,end] = g_x | 684 G_n[:,end] = g_x |
685 | 685 |
686 @test e_w'*g_y == G_w | 686 @test e_w'*g_y == G_w |
687 @test e_e'*g_y == G_e | 687 @test e_e'*g_y == G_e |
688 @test e_s'*g_x == G_s | 688 @test e_s'*g_x == G_s |
689 @test e_n'*g_x == G_n | 689 @test e_n'*g_x == G_n |
690 end | 690 end |
691 end | 691 end |
692 end | 692 end |
693 | 693 |
694 @testset "NormalDerivative" begin | 694 @testset "NormalDerivative" begin |