Mercurial > repos > public > sbplib_julia
annotate src/Grids/zero_dim_grid.jl @ 1689:e11b5b6940a2 feature/grids/curvilinear
Add more tests for `normal`
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 23 Aug 2024 09:22:29 +0200 |
parents | 4ad1282f8bab |
children |
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} |
1339
8860bfcaedaa
Docs for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1268
diff
changeset
|
3 |
8860bfcaedaa
Docs for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1268
diff
changeset
|
4 A zero dimensional grid consisting of a single point. |
1260
8b9a77d2dc91
Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1257
diff
changeset
|
5 """ |
8b9a77d2dc91
Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1257
diff
changeset
|
6 struct ZeroDimGrid{T} <: Grid{T,0} |
8b9a77d2dc91
Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1257
diff
changeset
|
7 point::T |
1234
8806f4cd6fee
Move ZeroDimGrid to its own file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
8 end |
8806f4cd6fee
Move ZeroDimGrid to its own file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 |
1262
5e28ae42caf2
Clean up IteratorSize and eltype for EquidistantGrid, Grid, and ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1260
diff
changeset
|
10 # Indexing interface |
1260
8b9a77d2dc91
Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1257
diff
changeset
|
11 Base.getindex(g::ZeroDimGrid) = g.point |
1234
8806f4cd6fee
Move ZeroDimGrid to its own file
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
12 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
|
13 |
1262
5e28ae42caf2
Clean up IteratorSize and eltype for EquidistantGrid, Grid, and ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1260
diff
changeset
|
14 # Iteration interface |
1260
8b9a77d2dc91
Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1257
diff
changeset
|
15 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
|
16 Base.iterate(g::ZeroDimGrid, ::Any) = nothing |
8b9a77d2dc91
Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1257
diff
changeset
|
17 |
1262
5e28ae42caf2
Clean up IteratorSize and eltype for EquidistantGrid, Grid, and ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1260
diff
changeset
|
18 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
|
19 Base.length(g::ZeroDimGrid) = 1 |
8b9a77d2dc91
Add tests and make them pass for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1257
diff
changeset
|
20 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
|
21 |
dbddd0f61bde
Add refine, coarsen, boundary_identifiers, and boundary_grid methods to ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1262
diff
changeset
|
22 |
dbddd0f61bde
Add refine, coarsen, boundary_identifiers, and boundary_grid methods to ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1262
diff
changeset
|
23 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
|
24 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
|
25 |
dbddd0f61bde
Add refine, coarsen, boundary_identifiers, and boundary_grid methods to ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1262
diff
changeset
|
26 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
|
27 boundary_grid(g::ZeroDimGrid, ::Any) = throw(ArgumentError("ZeroDimGrid has no boundaries")) |
1463
4ad1282f8bab
Implement boundary_indices for ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1339
diff
changeset
|
28 boundary_indices(g::ZeroDimGrid, ::Any) = throw(ArgumentError("ZeroDimGrid has no boundaries")) |