Mercurial > repos > public > sbplib_julia
changeset 1920:ae83c91286a2 feature/grids/manifolds
Implement connections for CartesianAtlas
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 05 Feb 2025 16:17:29 +0100 |
parents | 71d218593cac |
children | 7fb713570965 |
files | src/Grids/manifolds.jl test/Grids/manifolds_test.jl |
diffstat | 2 files changed, 29 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/Grids/manifolds.jl Wed Feb 05 09:05:46 2025 +0100 +++ b/src/Grids/manifolds.jl Wed Feb 05 16:17:29 2025 +0100 @@ -63,9 +63,32 @@ end charts(a::CartesianAtlas) = a.charts -connections(a::CartesianAtlas) = nothing Base.size(a::CartesianAtlas) = size(a.charts) +function connections(a::CartesianAtlas) + c = Tuple{MultiBlockBoundary, MultiBlockBoundary}[] + + N,M = size(a.charts) + for j ∈ 1:M, i ∈ 1:N-1 + push!(c, + ( + MultiBlockBoundary{(i,j), CartesianBoundary{1,UpperBoundary}}(), + MultiBlockBoundary{(i+1,j), CartesianBoundary{1,LowerBoundary}}(), + ), + ) + end + + for i ∈ 1:N, j ∈ 1:M-1 + push!(c, + ( + MultiBlockBoundary{(i,j), CartesianBoundary{2,UpperBoundary}}(), + MultiBlockBoundary{(i,j+1), CartesianBoundary{2,LowerBoundary}}(), + ), + ) + end + + return c +end struct UnstructuredAtlas <: Atlas charts::Vector{Chart}
--- a/test/Grids/manifolds_test.jl Wed Feb 05 09:05:46 2025 +0100 +++ b/test/Grids/manifolds_test.jl Wed Feb 05 16:17:29 2025 +0100 @@ -33,11 +33,11 @@ south = CartesianBoundary{2,LowerBoundary} north = CartesianBoundary{2,UpperBoundary} - @test_broken Set(connections(a)) == Set([ - (MultiBlockBoundary{(1,1), east}, MultiBlockBoundary{(2,1), west}), - (MultiBlockBoundary{(1,2), east}, MultiBlockBoundary{(2,2), west}), - (MultiBlockBoundary{(1,1), north}, MultiBlockBoundary{(1,2), south}), - (MultiBlockBoundary{(1,2), north}, MultiBlockBoundary{(2,2), south}), + @test Set(connections(a)) == Set([ + (MultiBlockBoundary{(1,1), east}(), MultiBlockBoundary{(2,1), west}()), + (MultiBlockBoundary{(1,2), east}(), MultiBlockBoundary{(2,2), west}()), + (MultiBlockBoundary{(1,1), north}(), MultiBlockBoundary{(1,2), south}()), + (MultiBlockBoundary{(2,1), north}(), MultiBlockBoundary{(2,2), south}()), ]) end