Mercurial > repos > public > sbplib_julia
diff src/Grids/manifolds.jl @ 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 | 297e3d74f697 |
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}