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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1558
81e97d3bec8c Start adding manifolds
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 using Test
81e97d3bec8c Start adding manifolds
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
81e97d3bec8c Start adding manifolds
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
81e97d3bec8c Start adding manifolds
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
27534b471b6a Add test stubs
Jonatan Werpers <jonatan@werpers.com>
parents: 1867
diff changeset
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
81e97d3bec8c Start adding manifolds
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 end
81e97d3bec8c Start adding manifolds
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20
1843
ea98f03e18e0 Add test stubs
Jonatan Werpers <jonatan@werpers.com>
parents: 1781
diff changeset
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
ea98f03e18e0 Add test stubs
Jonatan Werpers <jonatan@werpers.com>
parents: 1781
diff changeset
86 end
ea98f03e18e0 Add test stubs
Jonatan Werpers <jonatan@werpers.com>
parents: 1781
diff changeset
87
ea98f03e18e0 Add test stubs
Jonatan Werpers <jonatan@werpers.com>
parents: 1781
diff changeset
88 @testset "UnstructuredAtlas" begin
ea98f03e18e0 Add test stubs
Jonatan Werpers <jonatan@werpers.com>
parents: 1781
diff changeset
89 @test_broken false
ea98f03e18e0 Add test stubs
Jonatan Werpers <jonatan@werpers.com>
parents: 1781
diff changeset
90 end