Mercurial > repos > public > sbplib_julia
annotate test/Grids/manifolds_test.jl @ 1928:96b3e9c516fe feature/grids/manifolds
Make cartesian atlas work for any dimension
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 07 Feb 2025 09:12:41 +0100 |
parents | fe18cdad2b27 |
children | c5affb342e73 |
rev | line source |
---|---|
1558 | 1 using Test |
2 | |
1748
03894fd7b132
Merge feature/grids/curvilinear
Jonatan Werpers <jonatan@werpers.com>
parents:
1582
diff
changeset
|
3 using Diffinitive.Grids |
03894fd7b132
Merge feature/grids/curvilinear
Jonatan Werpers <jonatan@werpers.com>
parents:
1582
diff
changeset
|
4 using Diffinitive.RegionIndices |
03894fd7b132
Merge feature/grids/curvilinear
Jonatan Werpers <jonatan@werpers.com>
parents:
1582
diff
changeset
|
5 using Diffinitive.LazyTensors |
1558 | 6 |
1921
7fb713570965
Add test for jacobian
Jonatan Werpers <jonatan@werpers.com>
parents:
1920
diff
changeset
|
7 using StaticArrays |
7fb713570965
Add test for jacobian
Jonatan Werpers <jonatan@werpers.com>
parents:
1920
diff
changeset
|
8 |
1558 | 9 @testset "Chart" begin |
1921
7fb713570965
Add test for jacobian
Jonatan Werpers <jonatan@werpers.com>
parents:
1920
diff
changeset
|
10 X(ξ) = 2ξ |
7fb713570965
Add test for jacobian
Jonatan Werpers <jonatan@werpers.com>
parents:
1920
diff
changeset
|
11 Grids.jacobian(::typeof(X), ξ) = @SVector[2,2] |
7fb713570965
Add test for jacobian
Jonatan Werpers <jonatan@werpers.com>
parents:
1920
diff
changeset
|
12 c = Chart(X, unitsquare()) |
1572
157c43966b06
Add some tests and implement parameterspace for ConcreteChart
Jonatan Werpers <jonatan@werpers.com>
parents:
1564
diff
changeset
|
13 @test c isa Chart{2} |
157c43966b06
Add some tests and implement parameterspace for ConcreteChart
Jonatan Werpers <jonatan@werpers.com>
parents:
1564
diff
changeset
|
14 @test c([3,2]) == [6,4] |
157c43966b06
Add some tests and implement parameterspace for ConcreteChart
Jonatan Werpers <jonatan@werpers.com>
parents:
1564
diff
changeset
|
15 @test parameterspace(c) == unitsquare() |
1781
a73838c9ef94
Let Chart implement Base.ndims instead of domain_dim
Jonatan Werpers <jonatan@werpers.com>
parents:
1780
diff
changeset
|
16 @test ndims(c) == 2 |
1870 | 17 |
1921
7fb713570965
Add test for jacobian
Jonatan Werpers <jonatan@werpers.com>
parents:
1920
diff
changeset
|
18 @test jacobian(c, [3,2]) == [2,2] |
1558 | 19 end |
20 | |
1843 | 21 @testset "CartesianAtlas" begin |
1867
de4b4f2aee4f
Add some tests for CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1843
diff
changeset
|
22 c = Chart(identity, unitsquare()) |
de4b4f2aee4f
Add some tests for CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1843
diff
changeset
|
23 |
de4b4f2aee4f
Add some tests for CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1843
diff
changeset
|
24 a = CartesianAtlas([c c; c c]) |
de4b4f2aee4f
Add some tests for CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1843
diff
changeset
|
25 @test a isa Atlas |
de4b4f2aee4f
Add some tests for CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1843
diff
changeset
|
26 @test charts(a) == [c c; c c] |
1918
b1560da986f3
Update test for connections using MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
1914
diff
changeset
|
27 |
1927
fe18cdad2b27
Test construction of CartesianAtlas with different type on the charts
Jonatan Werpers <jonatan@werpers.com>
parents:
1926
diff
changeset
|
28 c2 = Chart(x->2x, unitsquare()) |
fe18cdad2b27
Test construction of CartesianAtlas with different type on the charts
Jonatan Werpers <jonatan@werpers.com>
parents:
1926
diff
changeset
|
29 @test CartesianAtlas([c c2; c2 c]) isa CartesianAtlas |
1919
71d218593cac
Add implementation for size to CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1918
diff
changeset
|
30 |
71d218593cac
Add implementation for size to CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1918
diff
changeset
|
31 @testset "size" begin |
71d218593cac
Add implementation for size to CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1918
diff
changeset
|
32 @test size(CartesianAtlas([c c; c c])) == (2,2) |
71d218593cac
Add implementation for size to CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1918
diff
changeset
|
33 @test size(CartesianAtlas([c c c; c c c])) == (2,3) |
71d218593cac
Add implementation for size to CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1918
diff
changeset
|
34 @test size(CartesianAtlas([c c; c c; c c])) == (3,2) |
71d218593cac
Add implementation for size to CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1918
diff
changeset
|
35 end |
71d218593cac
Add implementation for size to CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1918
diff
changeset
|
36 |
1923
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
37 @testset "connections" begin |
1926
c02797f146c1
Improve tests of CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1923
diff
changeset
|
38 a = CartesianAtlas(fill(c, 2,3)) |
1928
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
39 # 2D |
1923
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
40 west = CartesianBoundary{1,LowerBoundary} |
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
41 east = CartesianBoundary{1,UpperBoundary} |
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
42 south = CartesianBoundary{2,LowerBoundary} |
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
43 north = CartesianBoundary{2,UpperBoundary} |
1918
b1560da986f3
Update test for connections using MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
1914
diff
changeset
|
44 |
1923
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
45 @test Set(connections(a)) == Set([ |
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
46 (MultiBlockBoundary{(1,1), east}(), MultiBlockBoundary{(2,1), west}()), |
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
47 (MultiBlockBoundary{(1,1), north}(), MultiBlockBoundary{(1,2), south}()), |
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
48 (MultiBlockBoundary{(2,1), north}(), MultiBlockBoundary{(2,2), south}()), |
1926
c02797f146c1
Improve tests of CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1923
diff
changeset
|
49 (MultiBlockBoundary{(1,2), east}(), MultiBlockBoundary{(2,2), west}()), |
c02797f146c1
Improve tests of CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1923
diff
changeset
|
50 (MultiBlockBoundary{(1,2), north}(), MultiBlockBoundary{(1,3), south}()), |
c02797f146c1
Improve tests of CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1923
diff
changeset
|
51 (MultiBlockBoundary{(2,2), north}(), MultiBlockBoundary{(2,3), south}()), |
c02797f146c1
Improve tests of CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1923
diff
changeset
|
52 (MultiBlockBoundary{(1,3), east}(), MultiBlockBoundary{(2,3), west}()), |
1923
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
53 ]) |
1928
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
54 |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
55 # 3D |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
56 a = CartesianAtlas(fill(c, 2,2,3)) |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
57 bottom = CartesianBoundary{3, LowerBoundary} |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
58 top = CartesianBoundary{3, UpperBoundary} |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
59 @test Set(connections(a)) == Set([ |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
60 (MultiBlockBoundary{(1,1,1), east}(), MultiBlockBoundary{(2,1,1), west}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
61 (MultiBlockBoundary{(1,1,1), north}(), MultiBlockBoundary{(1,2,1), south}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
62 (MultiBlockBoundary{(2,1,1), north}(), MultiBlockBoundary{(2,2,1), south}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
63 (MultiBlockBoundary{(1,2,1), east}(), MultiBlockBoundary{(2,2,1), west}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
64 |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
65 (MultiBlockBoundary{(1,1,2), east}(), MultiBlockBoundary{(2,1,2), west}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
66 (MultiBlockBoundary{(1,1,2), north}(), MultiBlockBoundary{(1,2,2), south}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
67 (MultiBlockBoundary{(2,1,2), north}(), MultiBlockBoundary{(2,2,2), south}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
68 (MultiBlockBoundary{(1,2,2), east}(), MultiBlockBoundary{(2,2,2), west}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
69 |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
70 (MultiBlockBoundary{(1,1,3), east}(), MultiBlockBoundary{(2,1,3), west}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
71 (MultiBlockBoundary{(1,1,3), north}(), MultiBlockBoundary{(1,2,3), south}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
72 (MultiBlockBoundary{(2,1,3), north}(), MultiBlockBoundary{(2,2,3), south}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
73 (MultiBlockBoundary{(1,2,3), east}(), MultiBlockBoundary{(2,2,3), west}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
74 |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
75 (MultiBlockBoundary{(1,1,1), top}(), MultiBlockBoundary{(1,1,2), bottom}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
76 (MultiBlockBoundary{(2,1,1), top}(), MultiBlockBoundary{(2,1,2), bottom}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
77 (MultiBlockBoundary{(1,2,1), top}(), MultiBlockBoundary{(1,2,2), bottom}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
78 (MultiBlockBoundary{(2,2,1), top}(), MultiBlockBoundary{(2,2,2), bottom}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
79 |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
80 (MultiBlockBoundary{(1,1,2), top}(), MultiBlockBoundary{(1,1,3), bottom}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
81 (MultiBlockBoundary{(2,1,2), top}(), MultiBlockBoundary{(2,1,3), bottom}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
82 (MultiBlockBoundary{(1,2,2), top}(), MultiBlockBoundary{(1,2,3), bottom}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
83 (MultiBlockBoundary{(2,2,2), top}(), MultiBlockBoundary{(2,2,3), bottom}()), |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
84 ]) |
1923
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
85 end |
1843 | 86 end |
87 | |
88 @testset "UnstructuredAtlas" begin | |
89 @test_broken false | |
90 end |