comparison 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
comparison
equal deleted inserted replaced
1919:71d218593cac 1920:ae83c91286a2
61 struct CartesianAtlas <: Atlas 61 struct CartesianAtlas <: Atlas
62 charts::Matrix{Chart} 62 charts::Matrix{Chart}
63 end 63 end
64 64
65 charts(a::CartesianAtlas) = a.charts 65 charts(a::CartesianAtlas) = a.charts
66 connections(a::CartesianAtlas) = nothing
67 Base.size(a::CartesianAtlas) = size(a.charts) 66 Base.size(a::CartesianAtlas) = size(a.charts)
68 67
68 function connections(a::CartesianAtlas)
69 c = Tuple{MultiBlockBoundary, MultiBlockBoundary}[]
70
71 N,M = size(a.charts)
72 for j ∈ 1:M, i ∈ 1:N-1
73 push!(c,
74 (
75 MultiBlockBoundary{(i,j), CartesianBoundary{1,UpperBoundary}}(),
76 MultiBlockBoundary{(i+1,j), CartesianBoundary{1,LowerBoundary}}(),
77 ),
78 )
79 end
80
81 for i ∈ 1:N, j ∈ 1:M-1
82 push!(c,
83 (
84 MultiBlockBoundary{(i,j), CartesianBoundary{2,UpperBoundary}}(),
85 MultiBlockBoundary{(i,j+1), CartesianBoundary{2,LowerBoundary}}(),
86 ),
87 )
88 end
89
90 return c
91 end
69 92
70 struct UnstructuredAtlas <: Atlas 93 struct UnstructuredAtlas <: Atlas
71 charts::Vector{Chart} 94 charts::Vector{Chart}
72 connections 95 connections
73 end 96 end