annotate src/Grids/zero_dim_grid.jl @ 1915:c003685d9926 feature/grids/geometry_functions

Add geometry functions removed from feature/grids/manifolds
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 03 Feb 2025 15:43:00 +0100
parents 4ad1282f8bab
children
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}
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"))