Mercurial > repos > public > sbplib_julia
comparison test/SbpOperators/volumeops/derivatives/dissipation_test.jl @ 1034:ed19c549c506 feature/dissipation_operators
Implement undevided dissipation operators
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 22 Mar 2022 12:33:58 +0100 |
parents | 0cb4c6b15d8e |
children | ceda69b8f27a |
comparison
equal
deleted
inserted
replaced
1033:0cb4c6b15d8e | 1034:ed19c549c506 |
---|---|
24 return zero(x) | 24 return zero(x) |
25 end | 25 end |
26 x^k/factorial(k) | 26 x^k/factorial(k) |
27 end | 27 end |
28 | 28 |
29 @testset "dissipation" begin | 29 @testset "undevided_dissipation" begin |
30 g = EquidistantGrid(20, 0., 11.) | 30 g = EquidistantGrid(20, 0., 11.) |
31 D,Dᵀ = dissipation(g, 1) | 31 D,Dᵀ = undevided_dissipation(g, 1) |
32 | 32 |
33 @test_broken D isa LazyTensor{Float64,1,1} where T | 33 @test D isa LazyTensor{Float64,1,1} where T |
34 @test_broken Dᵀ isa LazyTensor{Float64,1,1} where T | 34 @test Dᵀ isa LazyTensor{Float64,1,1} where T |
35 | 35 |
36 @testset "Accuracy conditions" begin | 36 @testset "Accuracy conditions" begin |
37 N = 20 | 37 N = 20 |
38 g = EquidistantGrid(N, 0//1,2//1) | 38 g = EquidistantGrid(N, 0//1,2//1) |
39 h = spacing(g)[1] | |
39 @testset "D_$p" for p ∈ [1,2,3,4] | 40 @testset "D_$p" for p ∈ [1,2,3,4] |
40 D,Dᵀ = dissipation(g, p) | 41 D,Dᵀ = undevided_dissipation(g, p) |
41 | 42 |
42 @testset "x^$k" for k ∈ 0:1 | 43 @testset "x^$k" for k ∈ 0:p |
43 v = evalOn(g, x->monomial(x,k)) | 44 v = evalOn(g, x->monomial(x,k)) |
45 vₚₓ = evalOn(g, x->monomial(x,k-p)) | |
44 | 46 |
45 x, = points(g)[10] | 47 @test D*v == h^p * vₚₓ |
46 @test_broken (D*v)[10] == monomial(x,k-1) | |
47 end | 48 end |
48 | 49 |
49 # Test Dᵀ works backwards and interior forwards | 50 |
51 @testset "x^$k" for k ∈ 0:p | |
52 v = evalOn(g, x->monomial(x,k)) | |
53 vₚₓ = evalOn(g, x->monomial(x,k-p)) | |
54 | |
55 for i ∈ SbpOperators.lower_closure_size(Dᵀ)+1:N-SbpOperators.upper_closure_size(Dᵀ) | |
56 @test (Dᵀ*v)[i] == h^p * vₚₓ[i] | |
57 end | |
58 end | |
50 end | 59 end |
51 end | 60 end |
52 end | 61 end |
53 | 62 |
54 @testset "dissipation_interior_weights" begin | 63 @testset "dissipation_interior_weights" begin |