annotate src/Grids/zero_dim_grid.jl @ 1288:7de1df0aad6a refactor/grids

Add component_type function to Grid
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 03 Mar 2023 15:42:05 +0100
parents dbddd0f61bde
children 8860bfcaedaa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1260
8b9a77d2dc91 Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1257
diff changeset
1 """
8b9a77d2dc91 Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1257
diff changeset
2 ZeroDimGrid{T} <: Grid{T,0}
8b9a77d2dc91 Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1257
diff changeset
3 # TODO
8b9a77d2dc91 Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1257
diff changeset
4 """
8b9a77d2dc91 Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1257
diff changeset
5 struct ZeroDimGrid{T} <: Grid{T,0}
8b9a77d2dc91 Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1257
diff changeset
6 point::T
1234
8806f4cd6fee Move ZeroDimGrid to its own file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 end
8806f4cd6fee Move ZeroDimGrid to its own file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8
1262
5e28ae42caf2 Clean up IteratorSize and eltype for EquidistantGrid, Grid, and ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1260
diff changeset
9 # Indexing interface
1260
8b9a77d2dc91 Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1257
diff changeset
10 Base.getindex(g::ZeroDimGrid) = g.point
1234
8806f4cd6fee Move ZeroDimGrid to its own file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 Base.eachindex(g::ZeroDimGrid) = CartesianIndices(())
1256
3fc78ad26d03 Add notes and todos about interface implementations for grids
Jonatan Werpers <jonatan@werpers.com>
parents: 1234
diff changeset
12
1262
5e28ae42caf2 Clean up IteratorSize and eltype for EquidistantGrid, Grid, and ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1260
diff changeset
13 # Iteration interface
1260
8b9a77d2dc91 Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1257
diff changeset
14 Base.iterate(g::ZeroDimGrid) = (g.point, nothing)
8b9a77d2dc91 Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1257
diff changeset
15 Base.iterate(g::ZeroDimGrid, ::Any) = nothing
8b9a77d2dc91 Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1257
diff changeset
16
1262
5e28ae42caf2 Clean up IteratorSize and eltype for EquidistantGrid, Grid, and ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1260
diff changeset
17 Base.IteratorSize(::Type{<:ZeroDimGrid}) = Base.HasShape{0}()
1260
8b9a77d2dc91 Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1257
diff changeset
18 Base.length(g::ZeroDimGrid) = 1
8b9a77d2dc91 Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1257
diff changeset
19 Base.size(g::ZeroDimGrid) = ()
1268
dbddd0f61bde Add refine, coarsen, boundary_identifiers, and boundary_grid methods to ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1262
diff changeset
20
dbddd0f61bde Add refine, coarsen, boundary_identifiers, and boundary_grid methods to ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1262
diff changeset
21
dbddd0f61bde Add refine, coarsen, boundary_identifiers, and boundary_grid methods to ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1262
diff changeset
22 refine(g::ZeroDimGrid, ::Int) = g
dbddd0f61bde Add refine, coarsen, boundary_identifiers, and boundary_grid methods to ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1262
diff changeset
23 coarsen(g::ZeroDimGrid, ::Int) = g
dbddd0f61bde Add refine, coarsen, boundary_identifiers, and boundary_grid methods to ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1262
diff changeset
24
dbddd0f61bde Add refine, coarsen, boundary_identifiers, and boundary_grid methods to ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1262
diff changeset
25 boundary_identifiers(g::ZeroDimGrid) = ()
dbddd0f61bde Add refine, coarsen, boundary_identifiers, and boundary_grid methods to ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents: 1262
diff changeset
26 boundary_grid(g::ZeroDimGrid, ::Any) = throw(ArgumentError("ZeroDimGrid has no boundaries"))