xref: /libCEED/julia/LibCEED.jl/test/rundevtests.jl (revision db002c03923317a1c3814dcd861330002c00a8ea)
1using Test, LibCEED, LinearAlgebra, StaticArrays
2
3include("buildmats.jl")
4
5@testset "LibCEED Development Tests" begin
6    @testset "Basis" begin
7        c = Ceed()
8        dim = 2
9        ncomp = 1
10        p1 = 4
11        q1 = 4
12        qref1 = Array{Float64}(undef, dim, q1)
13        qweight1 = Array{Float64}(undef, q1)
14        interp1, div1 = build_mats_hdiv(qref1, qweight1)
15        b1 = create_hdiv_basis(c, QUAD, ncomp, p1, q1, interp1, div1, qref1, qweight1)
16
17        u1 = ones(Float64, p1)
18        v1 = apply(b1, u1)
19
20        for i = 1:q1
21            @test v1[i] ≈ -1.0
22            @test v1[q1+i] ≈ 1.0
23        end
24
25        p2 = 3
26        q2 = 4
27        qref2 = Array{Float64}(undef, dim, q2)
28        qweight2 = Array{Float64}(undef, q2)
29        interp2, curl2 = build_mats_hcurl(qref2, qweight2)
30        b2 = create_hcurl_basis(c, TRIANGLE, ncomp, p2, q2, interp2, curl2, qref2, qweight2)
31
32        u2 = [1.0, 2.0, 1.0]
33        v2 = apply(b2, u2)
34
35        for i = 1:q2
36            @test v2[i] ≈ 1.0
37        end
38
39        u2[1] = -1.0
40        u2[2] = 1.0
41        u2[3] = 2.0
42        v2 = apply(b2, u2)
43
44        for i = 1:q2
45            @test v2[q2+i] ≈ 1.0
46        end
47    end
48end
49