Mercurial > repos > public > sbplib_julia
annotate test/Grids/manifolds_test.jl @ 1932:ac63820222f8 feature/grids/manifolds
Make field types of CartesianAtlas concrete
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 07 Feb 2025 09:20:24 +0100 |
parents | e985eaa20ecf |
children | 2801507dbee1 |
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 |
1932
ac63820222f8
Make field types of CartesianAtlas concrete
Jonatan Werpers <jonatan@werpers.com>
parents:
1930
diff
changeset
|
30 @test CartesianAtlas(@SMatrix[c c; c c]) isa CartesianAtlas |
ac63820222f8
Make field types of CartesianAtlas concrete
Jonatan Werpers <jonatan@werpers.com>
parents:
1930
diff
changeset
|
31 @test CartesianAtlas(@SMatrix[c c2; c2 c]) isa CartesianAtlas |
1919
71d218593cac
Add implementation for size to CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1918
diff
changeset
|
32 |
1923
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
33 @testset "connections" begin |
1928
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
34 # 2D |
1930
e985eaa20ecf
Clean up tests a bit
Jonatan Werpers <jonatan@werpers.com>
parents:
1929
diff
changeset
|
35 a = CartesianAtlas(fill(Chart(identity, unitsquare()), 2,3)) |
1923
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
36 west = CartesianBoundary{1,LowerBoundary} |
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
37 east = CartesianBoundary{1,UpperBoundary} |
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
38 south = CartesianBoundary{2,LowerBoundary} |
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
39 north = CartesianBoundary{2,UpperBoundary} |
1918
b1560da986f3
Update test for connections using MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
1914
diff
changeset
|
40 |
1923
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
41 @test Set(connections(a)) == Set([ |
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
42 (MultiBlockBoundary{(1,1), east}(), MultiBlockBoundary{(2,1), west}()), |
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
43 (MultiBlockBoundary{(1,1), north}(), MultiBlockBoundary{(1,2), south}()), |
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
44 (MultiBlockBoundary{(2,1), north}(), MultiBlockBoundary{(2,2), south}()), |
1926
c02797f146c1
Improve tests of CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1923
diff
changeset
|
45 (MultiBlockBoundary{(1,2), east}(), MultiBlockBoundary{(2,2), west}()), |
c02797f146c1
Improve tests of CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1923
diff
changeset
|
46 (MultiBlockBoundary{(1,2), north}(), MultiBlockBoundary{(1,3), south}()), |
c02797f146c1
Improve tests of CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1923
diff
changeset
|
47 (MultiBlockBoundary{(2,2), north}(), MultiBlockBoundary{(2,3), south}()), |
c02797f146c1
Improve tests of CartesianAtlas
Jonatan Werpers <jonatan@werpers.com>
parents:
1923
diff
changeset
|
48 (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
|
49 ]) |
1928
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
50 |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
51 # 3D |
1930
e985eaa20ecf
Clean up tests a bit
Jonatan Werpers <jonatan@werpers.com>
parents:
1929
diff
changeset
|
52 a = CartesianAtlas(fill(Chart(identity, unitsquare()), 2,2,3)) |
1928
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
53 bottom = CartesianBoundary{3, LowerBoundary} |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
54 top = CartesianBoundary{3, UpperBoundary} |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
55 @test Set(connections(a)) == Set([ |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
56 (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
|
57 (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
|
58 (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
|
59 (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
|
60 |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
61 (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
|
62 (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
|
63 (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
|
64 (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
|
65 |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
66 (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
|
67 (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
|
68 (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
|
69 (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
|
70 |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
71 (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
|
72 (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
|
73 (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
|
74 (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
|
75 |
96b3e9c516fe
Make cartesian atlas work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
1927
diff
changeset
|
76 (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
|
77 (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
|
78 (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
|
79 (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
|
80 ]) |
1923
a2923694d5b7
Wrap connection tests in a testset
Jonatan Werpers <jonatan@werpers.com>
parents:
1921
diff
changeset
|
81 end |
1843 | 82 end |
83 | |
84 @testset "UnstructuredAtlas" begin | |
85 @test_broken false | |
86 end |