Mercurial > repos > public > sbplib_julia
diff src/Grids/manifolds.jl @ 1934:1b012e2d5db1 feature/grids/manifolds
Add function for getting boundaries from CartesianAtlas
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 07 Feb 2025 11:11:54 +0100 |
parents | ac63820222f8 |
children | a7c9d04b57e0 |
line wrap: on
line diff
--- a/src/Grids/manifolds.jl Fri Feb 07 09:22:50 2025 +0100 +++ b/src/Grids/manifolds.jl Fri Feb 07 11:11:54 2025 +0100 @@ -86,6 +86,26 @@ return c end +function boundaries(a::CartesianAtlas) + c = MultiBlockBoundary[] + + for d ∈ 1:ndims(charts(a)) + Is = eachslice(CartesianIndices(charts(a)); dims=d) + + for (i,b) ∈ ((1,LowerBoundary),(length(Is),UpperBoundary)) # For first and last slice + for jk ∈ eachindex(Is[i]) # For each block in slice + Iᵢⱼₖ = Tuple(Is[i][jk]) + push!(c, + MultiBlockBoundary{Iᵢⱼₖ, CartesianBoundary{d,b}}(), + ) + end + end + end + + return c +end + + struct UnstructuredAtlas <: Atlas charts::Vector{Chart} connections::Vector{Tuple{MultiBlockBoundary, MultiBlockBoundary}}