annotate src/Grids/multiblockgrids.jl @ 2018:a3ffc3202813 feature/grids/multiblock_grids

Start implementation of MultiBlockGrid
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 12 Mar 2025 09:34:00 +0100
parents ea2a15454cf2
children fb2dc185c197
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2018
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
1
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
2 struct MultiBlockGrid{T,D,GT, CT} <: Grid{T,D}
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
3 grids::GT
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
4 connections::CT
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
5 end
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
6
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
7 function MultiBlockGrid(grids, connections)
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
8 T = eltype(valtype(grids))
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
9 D = ndims(valtype(grids))
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
10
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
11 MultiBlockGrid{T,D,typeof(grids), typeof(connections)}(grids,connections)
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
12 end
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
13
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
14
1912
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 """
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 MultiBlockBoundary{N, BID} <: BoundaryIdentifier
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 A boundary identifier for a multiblock grids. `N` Specifies which grid and
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 `BID` which boundary on that grid.
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 """
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 struct MultiBlockBoundary{N, BID} <: BoundaryIdentifier end
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 grid_id(::MultiBlockBoundary{N, BID}) where {N, BID} = N
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 boundary_id(::MultiBlockBoundary{N, BID}) where {N, BID} = BID()
2017
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
24
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
25
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
26 function connection(k1, b1::BoundaryIdentifier, k2, b2::BoundaryIdentifier)
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
27 return (
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
28 MultiBlockBoundary{k1,typeof(b1)}(),
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
29 MultiBlockBoundary{k2,typeof(b2)}(),
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
30 )
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
31 end
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
32
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
33 connection(t::Tuple) = connection(t...)