annotate src/Grids/multiblockgrids.jl @ 2023:50e7090f5a95 feature/grids/multiblock_grids

Add accessor functions
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 12 Mar 2025 11:11:50 +0100
parents fb2dc185c197
children 3fb33f00dab2
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
2023
50e7090f5a95 Add accessor functions
Jonatan Werpers <jonatan@werpers.com>
parents: 2019
diff changeset
14 grids(g::MultiBlockGrid) = g.grids
50e7090f5a95 Add accessor functions
Jonatan Werpers <jonatan@werpers.com>
parents: 2019
diff changeset
15 connections(g::MultiBlockGrid) = g.connections
50e7090f5a95 Add accessor functions
Jonatan Werpers <jonatan@werpers.com>
parents: 2019
diff changeset
16
2019
fb2dc185c197 Add stubs for functions and tests to be implemented
Jonatan Werpers <jonatan@werpers.com>
parents: 2018
diff changeset
17 # function Base.getindex end
fb2dc185c197 Add stubs for functions and tests to be implemented
Jonatan Werpers <jonatan@werpers.com>
parents: 2018
diff changeset
18 # function boundary_identifiers end # Requires function from manifolds?
fb2dc185c197 Add stubs for functions and tests to be implemented
Jonatan Werpers <jonatan@werpers.com>
parents: 2018
diff changeset
19 # function boundary_grid end # Should return a MultiBlockGrid with the right connections?
fb2dc185c197 Add stubs for functions and tests to be implemented
Jonatan Werpers <jonatan@werpers.com>
parents: 2018
diff changeset
20
fb2dc185c197 Add stubs for functions and tests to be implemented
Jonatan Werpers <jonatan@werpers.com>
parents: 2018
diff changeset
21 # function min_spacing end
fb2dc185c197 Add stubs for functions and tests to be implemented
Jonatan Werpers <jonatan@werpers.com>
parents: 2018
diff changeset
22 # function refine end
fb2dc185c197 Add stubs for functions and tests to be implemented
Jonatan Werpers <jonatan@werpers.com>
parents: 2018
diff changeset
23 # function coarsen end
fb2dc185c197 Add stubs for functions and tests to be implemented
Jonatan Werpers <jonatan@werpers.com>
parents: 2018
diff changeset
24
fb2dc185c197 Add stubs for functions and tests to be implemented
Jonatan Werpers <jonatan@werpers.com>
parents: 2018
diff changeset
25 # function boundary_indices end # Need to figure out the grid functions first?
fb2dc185c197 Add stubs for functions and tests to be implemented
Jonatan Werpers <jonatan@werpers.com>
parents: 2018
diff changeset
26 # function eval_on end # Need to figure out the grid functions first?
fb2dc185c197 Add stubs for functions and tests to be implemented
Jonatan Werpers <jonatan@werpers.com>
parents: 2018
diff changeset
27 # function Base.map end # Need to figure out the grid functions first?
fb2dc185c197 Add stubs for functions and tests to be implemented
Jonatan Werpers <jonatan@werpers.com>
parents: 2018
diff changeset
28
fb2dc185c197 Add stubs for functions and tests to be implemented
Jonatan Werpers <jonatan@werpers.com>
parents: 2018
diff changeset
29 # Plotting recipes
fb2dc185c197 Add stubs for functions and tests to be implemented
Jonatan Werpers <jonatan@werpers.com>
parents: 2018
diff changeset
30
2018
a3ffc3202813 Start implementation of MultiBlockGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 2017
diff changeset
31
1912
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 """
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 MultiBlockBoundary{N, BID} <: BoundaryIdentifier
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 A boundary identifier for a multiblock grids. `N` Specifies which grid and
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36 `BID` which boundary on that grid.
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 """
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 struct MultiBlockBoundary{N, BID} <: BoundaryIdentifier end
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 grid_id(::MultiBlockBoundary{N, BID}) where {N, BID} = N
e68669552ed8 Add MultiBlockBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 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
41
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
42
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
43 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
44 return (
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
45 MultiBlockBoundary{k1,typeof(b1)}(),
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
46 MultiBlockBoundary{k2,typeof(b2)}(),
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
47 )
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
48 end
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
49
ea2a15454cf2 Add connectio(...) to simplify the creation of grid connection tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 1912
diff changeset
50 connection(t::Tuple) = connection(t...)