Mercurial > repos > public > sbplib_julia
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 |
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")) |