|
1 | 1 | module SkeletonTriangulationsTests
|
2 | 2 |
|
3 | 3 | using Test
|
| 4 | +using Gridap |
4 | 5 | using Gridap.TensorValues
|
5 | 6 | using Gridap.Arrays
|
6 | 7 | using Gridap.Fields
|
@@ -52,6 +53,7 @@ vn = get_facet_normal(vtrian)
|
52 | 53 | Ω = Triangulation(model)
|
53 | 54 | Γ = BoundaryTriangulation(model)
|
54 | 55 | Λ = SkeletonTriangulation(Γ)
|
| 56 | +normal = get_normal_vector(Λ) |
55 | 57 | @test Λ.rtrian === Γ
|
56 | 58 | @test isa(Λ.dtrian,SkeletonTriangulation)
|
57 | 59 | glue = get_glue(Λ,Val(3))
|
@@ -110,13 +112,27 @@ itrian = InterfaceTriangulation(Ω_in,Ω_out)
|
110 | 112 | #writevtk(trian,"trian",celldata=["inout"=>cell_to_inout])
|
111 | 113 | #writevtk(itrian,"itrian",nsubcells=10,cellfields=["ni"=>ni,"nl"=>nl,"nr"=>nr])
|
112 | 114 |
|
| 115 | +ti = get_tangent_vector(itrian) |
| 116 | +tl = get_tangent_vector(ltrian) |
| 117 | +tr = get_tangent_vector(rtrian) |
| 118 | + |
| 119 | +@test ti isa SkeletonPair |
| 120 | +@test tl isa Gridap.CellData.GenericCellField |
| 121 | +@test tr isa Gridap.CellData.GenericCellField |
| 122 | + |
113 | 123 | reffe = LagrangianRefFE(Float64,QUAD,(2,2))
|
114 | 124 | conf = CDConformity((CONT,DISC))
|
115 | 125 | face_own_dofs = get_face_own_dofs(reffe,conf)
|
116 | 126 | strian = SkeletonTriangulation(model,reffe,face_own_dofs)
|
117 | 127 | test_triangulation(strian)
|
118 | 128 | ns = get_facet_normal(strian)
|
| 129 | +ts = get_edge_tangent(strian) |
119 | 130 | @test length(ns.⁺) == num_cells(strian)
|
| 131 | +@test length(ts.⁺) == num_cells(strian) |
| 132 | +# Test orthogonality |
| 133 | +should_be_zero = lazy_map(Broadcasting(Operation(dot)), ns.plus, ts.plus) |
| 134 | +ndot_t_evaluated = evaluate(should_be_zero, VectorValue.(0:0.05:1)) |
| 135 | +@test maximum(ndot_t_evaluated) < 1e-15 |
120 | 136 |
|
121 | 137 | #using Gridap.Visualization
|
122 | 138 | #writevtk(strian,"strian",cellfields=["normal"=>ns])
|
|
0 commit comments