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