Mercurial > repos > public > sbplib_julia
annotate src/Grids/equidistant_grid.jl @ 1979:db3383581b9f feature/grids/geometry_functions
Remove dead code
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 26 Feb 2025 15:40:37 +0100 |
parents | 04c251bccbd4 |
children |
rev | line source |
---|---|
1247
2abec782cf5b
Add todo for EquidistantGrid docs, improve equidistant_grid docs
Jonatan Werpers <jonatan@werpers.com>
parents:
1222
diff
changeset
|
1 """ |
1331
ed3ea0630825
Add some docs for Grid
Jonatan Werpers <jonatan@werpers.com>
parents:
1282
diff
changeset
|
2 EquidistantGrid{T,R<:AbstractRange{T}} <: Grid{T,1} |
ed3ea0630825
Add some docs for Grid
Jonatan Werpers <jonatan@werpers.com>
parents:
1282
diff
changeset
|
3 |
1335
cca45af5e724
Some docs for EquidistantGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1331
diff
changeset
|
4 A one-dimensional equidistant grid. Most users are expected to use |
cca45af5e724
Some docs for EquidistantGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1331
diff
changeset
|
5 [`equidistant_grid`](@ref) for constructing equidistant grids. |
cca45af5e724
Some docs for EquidistantGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1331
diff
changeset
|
6 |
cca45af5e724
Some docs for EquidistantGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1331
diff
changeset
|
7 See also: [`equidistant_grid`](@ref) |
cca45af5e724
Some docs for EquidistantGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1331
diff
changeset
|
8 |
cca45af5e724
Some docs for EquidistantGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1331
diff
changeset
|
9 |
cca45af5e724
Some docs for EquidistantGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1331
diff
changeset
|
10 ## Note |
cca45af5e724
Some docs for EquidistantGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1331
diff
changeset
|
11 The type of range used for the points can likely impact performance. |
1247
2abec782cf5b
Add todo for EquidistantGrid docs, improve equidistant_grid docs
Jonatan Werpers <jonatan@werpers.com>
parents:
1222
diff
changeset
|
12 """ |
1257
198ccda331a6
Remove range dim as a type paratmeter on Grid as it is already encoded in T if available
Jonatan Werpers <jonatan@werpers.com>
parents:
1255
diff
changeset
|
13 struct EquidistantGrid{T,R<:AbstractRange{T}} <: Grid{T,1} |
1222 | 14 points::R |
15 end | |
75
93c833019857
Make EquidistantGrid more concrete
Jonatan Werpers <jonatan@werpers.com>
parents:
74
diff
changeset
|
16 |
1255
1989d432731a
Implement the interfaces for iteration and indexing on EquidistantGrid. Make collect() work
Jonatan Werpers <jonatan@werpers.com>
parents:
1253
diff
changeset
|
17 # Indexing interface |
1764
d207e1abacc1
Fix ambiguity in getindex(::EquidistantGrid,...)
Jonatan Werpers <jonatan@werpers.com>
parents:
1713
diff
changeset
|
18 Base.getindex(g::EquidistantGrid, i::Int) = g.points[i] |
1344
760a4a1ec4b7
Add 2D tests for dissipation operators and fix bug
Jonatan Werpers <jonatan@werpers.com>
parents:
1335
diff
changeset
|
19 Base.eachindex(g::EquidistantGrid) = eachindex(g.points) |
1253
ff8f335c32d1
Fix indexing with begin and end for EquidistantGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1250
diff
changeset
|
20 Base.firstindex(g::EquidistantGrid) = firstindex(g.points) |
ff8f335c32d1
Fix indexing with begin and end for EquidistantGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1250
diff
changeset
|
21 Base.lastindex(g::EquidistantGrid) = lastindex(g.points) |
ff8f335c32d1
Fix indexing with begin and end for EquidistantGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1250
diff
changeset
|
22 |
1399
adbdbf1c3480
Replace `firstindex` and `lastindex` with implementation of `axes`
Jonatan Werpers <jonatan@werpers.com>
parents:
1389
diff
changeset
|
23 Base.axes(g::EquidistantGrid, d) = axes(g.points, d) |
1389
d2219cc8316b
Add `firstindex(g,d)` and `lastindex(g,d)` for `EquidistantGrid`
Jonatan Werpers <jonatan@werpers.com>
parents:
1365
diff
changeset
|
24 |
1255
1989d432731a
Implement the interfaces for iteration and indexing on EquidistantGrid. Make collect() work
Jonatan Werpers <jonatan@werpers.com>
parents:
1253
diff
changeset
|
25 # Iteration interface |
1989d432731a
Implement the interfaces for iteration and indexing on EquidistantGrid. Make collect() work
Jonatan Werpers <jonatan@werpers.com>
parents:
1253
diff
changeset
|
26 Base.iterate(g::EquidistantGrid) = iterate(g.points) |
1989d432731a
Implement the interfaces for iteration and indexing on EquidistantGrid. Make collect() work
Jonatan Werpers <jonatan@werpers.com>
parents:
1253
diff
changeset
|
27 Base.iterate(g::EquidistantGrid, state) = iterate(g.points, state) |
1989d432731a
Implement the interfaces for iteration and indexing on EquidistantGrid. Make collect() work
Jonatan Werpers <jonatan@werpers.com>
parents:
1253
diff
changeset
|
28 |
1262
5e28ae42caf2
Clean up IteratorSize and eltype for EquidistantGrid, Grid, and ZeroDimGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1259
diff
changeset
|
29 Base.IteratorSize(::Type{<:EquidistantGrid}) = Base.HasShape{1}() |
1255
1989d432731a
Implement the interfaces for iteration and indexing on EquidistantGrid. Make collect() work
Jonatan Werpers <jonatan@werpers.com>
parents:
1253
diff
changeset
|
30 Base.length(g::EquidistantGrid) = length(g.points) |
1989d432731a
Implement the interfaces for iteration and indexing on EquidistantGrid. Make collect() work
Jonatan Werpers <jonatan@werpers.com>
parents:
1253
diff
changeset
|
31 Base.size(g::EquidistantGrid) = size(g.points) |
1437
e3a80ef08d09
Implement size(g,d) for EquidistantGrid and TensorGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1399
diff
changeset
|
32 Base.size(g::EquidistantGrid, d) = size(g.points)[d] |
1222 | 33 |
34 | |
406
c377fc37c04b
Clean up EquidistantGrid and tests after deciding that side lengths must be positive.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
405
diff
changeset
|
35 """ |
1222 | 36 spacing(grid::EquidistantGrid) |
37 | |
38 The spacing between grid points. | |
39 """ | |
40 spacing(g::EquidistantGrid) = step(g.points) | |
41 | |
51
614b56a017b9
Split grid.jl into AbstractGrid.jl and EquidistantGrid.jl
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff
changeset
|
42 |
1222 | 43 """ |
44 inverse_spacing(grid::EquidistantGrid) | |
45 | |
46 The reciprocal of the spacing between grid points. | |
47 """ | |
48 inverse_spacing(g::EquidistantGrid) = 1/step(g.points) | |
49 | |
1646
5f348cc5598e
Add min_spacing function for grids
Jonatan Werpers <jonatan@werpers.com>
parents:
1604
diff
changeset
|
50 min_spacing(g::EquidistantGrid) = spacing(g) |
5f348cc5598e
Add min_spacing function for grids
Jonatan Werpers <jonatan@werpers.com>
parents:
1604
diff
changeset
|
51 |
1672
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
52 """ |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
53 LowerBoundary <: BoundaryIdentifier |
1604
b459082533f7
Remove unnecessary white space changes to otherwise untouched files
Jonatan Werpers <jonatan@werpers.com>
parents:
1602
diff
changeset
|
54 |
1710
f09d98874f12
Update docstrings
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1672
diff
changeset
|
55 Boundary identifier for the the lower (left) boundary of a one-dimensional grid. |
1672
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
56 |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
57 See also: [`BoundaryIdentifier`](@ref) |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
58 """ |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
59 struct LowerBoundary <: BoundaryIdentifier end |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
60 |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
61 """ |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
62 UpperBoundary <: BoundaryIdentifier |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
63 |
1710
f09d98874f12
Update docstrings
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1672
diff
changeset
|
64 Boundary identifier for the the upper (right) boundary of a one-dimensional grid. |
1672
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
65 |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
66 See also: [`BoundaryIdentifier`](@ref) |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
67 """ |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
68 struct UpperBoundary <: BoundaryIdentifier end |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
69 |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
70 |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
71 boundary_identifiers(::EquidistantGrid) = (LowerBoundary(), UpperBoundary()) |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
72 boundary_grid(g::EquidistantGrid, id::LowerBoundary) = ZeroDimGrid(g[begin]) |
3714a391545a
Make the boundary identifiers for EquidistantGrid subtype BoundaryIdentifer
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1646
diff
changeset
|
73 boundary_grid(g::EquidistantGrid, id::UpperBoundary) = ZeroDimGrid(g[end]) |
1830
805b9b7fcc39
Make tests pass for EquidistantGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1829
diff
changeset
|
74 boundary_indices(g::EquidistantGrid, id::LowerBoundary) = firstindex(g) |
805b9b7fcc39
Make tests pass for EquidistantGrid
Jonatan Werpers <jonatan@werpers.com>
parents:
1829
diff
changeset
|
75 boundary_indices(g::EquidistantGrid, id::UpperBoundary) = lastindex(g) |
1222 | 76 |
77 """ | |
78 refine(g::EquidistantGrid, r::Int) | |
79 | |
1347
08f06bfacd5c
Fix typos and formatting of documentation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1344
diff
changeset
|
80 The grid where `g` is refined by the factor `r`. The factor is applied to the number of |
08f06bfacd5c
Fix typos and formatting of documentation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1344
diff
changeset
|
81 intervals, i.e., 1 less than the size of `g`. |
1222 | 82 |
83 See also: [`coarsen`](@ref) | |
84 """ | |
85 function refine(g::EquidistantGrid, r::Int) | |
86 new_sz = (length(g) - 1)*r + 1 | |
87 return EquidistantGrid(change_length(g.points, new_sz)) | |
877
dd2ab001a7b6
Implement refine function, move exports to the top of the file, change location of constuctors.
Jonatan Werpers <jonatan@werpers.com>
parents:
688
diff
changeset
|
88 end |
680
1d3e29ffc6c6
Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
661
diff
changeset
|
89 |
909
b900fea1c057
Clean up the docs a bit
Jonatan Werpers <jonatan@werpers.com>
parents:
908
diff
changeset
|
90 """ |
1347
08f06bfacd5c
Fix typos and formatting of documentation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1344
diff
changeset
|
91 coarsen(g::EquidistantGrid, r::Int) |
1222 | 92 |
1347
08f06bfacd5c
Fix typos and formatting of documentation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1344
diff
changeset
|
93 The grid where `g` is coarsened by the factor `r`. The factor is applied to the number of |
08f06bfacd5c
Fix typos and formatting of documentation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1344
diff
changeset
|
94 intervals, i.e., 1 less than the size of `g`. If the number of |
1222 | 95 intervals are not divisible by `r` an error is raised. |
96 | |
97 See also: [`refine`](@ref) | |
98 """ | |
99 function coarsen(g::EquidistantGrid, r::Int) | |
100 if (length(g)-1)%r != 0 | |
101 throw(DomainError(r, "Size minus 1 must be divisible by the ratio.")) | |
102 end | |
103 | |
104 new_sz = (length(g) - 1)÷r + 1 | |
105 | |
1249 | 106 return EquidistantGrid(change_length(g.points, new_sz)) |
1222 | 107 end |
108 | |
109 | |
110 """ | |
1529
43aaf710463e
Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents:
1513
diff
changeset
|
111 equidistant_grid(limit_lower, limit_upper, dims...) |
909
b900fea1c057
Clean up the docs a bit
Jonatan Werpers <jonatan@werpers.com>
parents:
908
diff
changeset
|
112 |
b900fea1c057
Clean up the docs a bit
Jonatan Werpers <jonatan@werpers.com>
parents:
908
diff
changeset
|
113 Construct an equidistant grid with corners at the coordinates `limit_lower` and |
b900fea1c057
Clean up the docs a bit
Jonatan Werpers <jonatan@werpers.com>
parents:
908
diff
changeset
|
114 `limit_upper`. |
b900fea1c057
Clean up the docs a bit
Jonatan Werpers <jonatan@werpers.com>
parents:
908
diff
changeset
|
115 |
b900fea1c057
Clean up the docs a bit
Jonatan Werpers <jonatan@werpers.com>
parents:
908
diff
changeset
|
116 The length of the domain sides are given by the components of |
1247
2abec782cf5b
Add todo for EquidistantGrid docs, improve equidistant_grid docs
Jonatan Werpers <jonatan@werpers.com>
parents:
1222
diff
changeset
|
117 `limit_upper-limit_lower`. E.g for a 2D grid with `limit_lower=(-1,0)` and |
2abec782cf5b
Add todo for EquidistantGrid docs, improve equidistant_grid docs
Jonatan Werpers <jonatan@werpers.com>
parents:
1222
diff
changeset
|
118 `limit_upper=(1,2)` the domain is defined as `(-1,1)x(0,2)`. The side lengths |
2abec782cf5b
Add todo for EquidistantGrid docs, improve equidistant_grid docs
Jonatan Werpers <jonatan@werpers.com>
parents:
1222
diff
changeset
|
119 of the grid are not allowed to be negative. |
909
b900fea1c057
Clean up the docs a bit
Jonatan Werpers <jonatan@werpers.com>
parents:
908
diff
changeset
|
120 |
1347
08f06bfacd5c
Fix typos and formatting of documentation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1344
diff
changeset
|
121 The number of equispaced points in each coordinate direction are given |
1529
43aaf710463e
Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents:
1513
diff
changeset
|
122 by the tuple `dims`. |
1247
2abec782cf5b
Add todo for EquidistantGrid docs, improve equidistant_grid docs
Jonatan Werpers <jonatan@werpers.com>
parents:
1222
diff
changeset
|
123 |
1529
43aaf710463e
Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents:
1513
diff
changeset
|
124 Note: If `limit_lower` and `limit_upper` are integers and `dims` would allow a |
1247
2abec782cf5b
Add todo for EquidistantGrid docs, improve equidistant_grid docs
Jonatan Werpers <jonatan@werpers.com>
parents:
1222
diff
changeset
|
125 completely integer grid, `equidistant_grid` will still return a floating point |
1513
d7bc11053951
Fix spelling mistakes
Jonatan Werpers <jonatan@werpers.com>
parents:
1464
diff
changeset
|
126 grid. This simplifies the implementation and avoids certain surprise |
d7bc11053951
Fix spelling mistakes
Jonatan Werpers <jonatan@werpers.com>
parents:
1464
diff
changeset
|
127 behaviors. |
909
b900fea1c057
Clean up the docs a bit
Jonatan Werpers <jonatan@werpers.com>
parents:
908
diff
changeset
|
128 """ |
1529
43aaf710463e
Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents:
1513
diff
changeset
|
129 function equidistant_grid(limit_lower, limit_upper, dims::Vararg{Int}) |
1575
efe1fc4cb6b0
Improve error message when giving arguments of different length to equidistant_grid()
Jonatan Werpers <jonatan@werpers.com>
parents:
1529
diff
changeset
|
130 if !(length(limit_lower) == length(limit_upper) == length(dims)) |
efe1fc4cb6b0
Improve error message when giving arguments of different length to equidistant_grid()
Jonatan Werpers <jonatan@werpers.com>
parents:
1529
diff
changeset
|
131 throw(ArgumentError("All arguments must be of the same length")) |
efe1fc4cb6b0
Improve error message when giving arguments of different length to equidistant_grid()
Jonatan Werpers <jonatan@werpers.com>
parents:
1529
diff
changeset
|
132 end |
1529
43aaf710463e
Change to signature of equidistant_grid to same style as many array methods.
Jonatan Werpers <jonatan@werpers.com>
parents:
1513
diff
changeset
|
133 gs = map(equidistant_grid, limit_lower, limit_upper, dims) |
1222 | 134 return TensorGrid(gs...) |
352
a18bd337a280
Add function for getting a one dimensional grid for a given dimension from a equidistant grid
Jonatan Werpers <jonatan@werpers.com>
parents:
333
diff
changeset
|
135 end |
658
26b0eb83aea4
Add function for getting boundary identifiers from equidistant grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
406
diff
changeset
|
136 |
1113
4e4c5011140d
Add functions orthogonal_dims and boundary_size
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1111
diff
changeset
|
137 """ |
1902
f93ba5832146
Copy changes related to ParameterSpace from feature/grids/manifolds
Jonatan Werpers <jonatan@werpers.com>
parents:
1863
diff
changeset
|
138 equidistant_grid(limit_lower::Number, limit_upper::Number, size::Int) |
1113
4e4c5011140d
Add functions orthogonal_dims and boundary_size
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1111
diff
changeset
|
139 |
1222 | 140 Constructs a 1D equidistant grid. |
1113
4e4c5011140d
Add functions orthogonal_dims and boundary_size
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1111
diff
changeset
|
141 """ |
1701
74f051444e0e
Make equidistant_grid() for 1D more restrictive in the types it accepts
Jonatan Werpers <jonatan@werpers.com>
parents:
1646
diff
changeset
|
142 function equidistant_grid(limit_lower::Number, limit_upper::Number, size::Int) |
1902
f93ba5832146
Copy changes related to ParameterSpace from feature/grids/manifolds
Jonatan Werpers <jonatan@werpers.com>
parents:
1863
diff
changeset
|
143 if size <= 0 |
1282
11b08b242e48
Make equdistant_grid return an EquidistantGrid for the 1d Case
Jonatan Werpers <jonatan@werpers.com>
parents:
1280
diff
changeset
|
144 throw(DomainError("size must be postive")) |
11b08b242e48
Make equdistant_grid return an EquidistantGrid for the 1d Case
Jonatan Werpers <jonatan@werpers.com>
parents:
1280
diff
changeset
|
145 end |
11b08b242e48
Make equdistant_grid return an EquidistantGrid for the 1d Case
Jonatan Werpers <jonatan@werpers.com>
parents:
1280
diff
changeset
|
146 |
1902
f93ba5832146
Copy changes related to ParameterSpace from feature/grids/manifolds
Jonatan Werpers <jonatan@werpers.com>
parents:
1863
diff
changeset
|
147 if limit_upper-limit_lower <= 0 |
1282
11b08b242e48
Make equdistant_grid return an EquidistantGrid for the 1d Case
Jonatan Werpers <jonatan@werpers.com>
parents:
1280
diff
changeset
|
148 throw(DomainError("side length must be postive")) |
11b08b242e48
Make equdistant_grid return an EquidistantGrid for the 1d Case
Jonatan Werpers <jonatan@werpers.com>
parents:
1280
diff
changeset
|
149 end |
1902
f93ba5832146
Copy changes related to ParameterSpace from feature/grids/manifolds
Jonatan Werpers <jonatan@werpers.com>
parents:
1863
diff
changeset
|
150 |
1282
11b08b242e48
Make equdistant_grid return an EquidistantGrid for the 1d Case
Jonatan Werpers <jonatan@werpers.com>
parents:
1280
diff
changeset
|
151 return EquidistantGrid(range(limit_lower, limit_upper, length=size)) # TBD: Should it use LinRange instead? |
1113
4e4c5011140d
Add functions orthogonal_dims and boundary_size
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1111
diff
changeset
|
152 end |
4e4c5011140d
Add functions orthogonal_dims and boundary_size
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1111
diff
changeset
|
153 |
1902
f93ba5832146
Copy changes related to ParameterSpace from feature/grids/manifolds
Jonatan Werpers <jonatan@werpers.com>
parents:
1863
diff
changeset
|
154 equidistant_grid(d::Interval, size::Int) = equidistant_grid(limits(d)..., size) |
f93ba5832146
Copy changes related to ParameterSpace from feature/grids/manifolds
Jonatan Werpers <jonatan@werpers.com>
parents:
1863
diff
changeset
|
155 equidistant_grid(hb::HyperBox, dims::Vararg{Int}) = equidistant_grid(limits(hb)..., dims...) |
f93ba5832146
Copy changes related to ParameterSpace from feature/grids/manifolds
Jonatan Werpers <jonatan@werpers.com>
parents:
1863
diff
changeset
|
156 |
1586
d4a6f9effcdd
Remove mapped_grid(::Chart) and add equidistant_grid(::Chart)
Jonatan Werpers <jonatan@werpers.com>
parents:
1566
diff
changeset
|
157 function equidistant_grid(c::Chart, dims::Vararg{Int}) |
1842
f2b32da29b73
Introduce mapped_grid for ParameterSpace and simplify implementation of equidistant_grid(::Chart)
Jonatan Werpers <jonatan@werpers.com>
parents:
1779
diff
changeset
|
158 mapped_grid(c, ξ->jacobian(c,ξ), parameterspace(c), dims...) |
1586
d4a6f9effcdd
Remove mapped_grid(::Chart) and add equidistant_grid(::Chart)
Jonatan Werpers <jonatan@werpers.com>
parents:
1566
diff
changeset
|
159 end |
d4a6f9effcdd
Remove mapped_grid(::Chart) and add equidistant_grid(::Chart)
Jonatan Werpers <jonatan@werpers.com>
parents:
1566
diff
changeset
|
160 |
1902
f93ba5832146
Copy changes related to ParameterSpace from feature/grids/manifolds
Jonatan Werpers <jonatan@werpers.com>
parents:
1863
diff
changeset
|
161 |
1280
17d435c08773
Add missing exports and alias TensorGridBoundary to CartesianBoundary
Jonatan Werpers <jonatan@werpers.com>
parents:
1279
diff
changeset
|
162 CartesianBoundary{D,BID} = TensorGridBoundary{D,BID} # TBD: What should we do about the naming of this boundary? |
1111
5b3d4a8ec3ab
Change to using filter for picking out orthogonal dimensions
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
909
diff
changeset
|
163 |
680
1d3e29ffc6c6
Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
661
diff
changeset
|
164 |
1d3e29ffc6c6
Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
661
diff
changeset
|
165 """ |
1347
08f06bfacd5c
Fix typos and formatting of documentation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1344
diff
changeset
|
166 change_length(r::AbstractRange, n) |
680
1d3e29ffc6c6
Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
661
diff
changeset
|
167 |
1347
08f06bfacd5c
Fix typos and formatting of documentation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
1344
diff
changeset
|
168 Change the length of `r` to `n`, keeping the same start and stop. |
877
dd2ab001a7b6
Implement refine function, move exports to the top of the file, change location of constuctors.
Jonatan Werpers <jonatan@werpers.com>
parents:
688
diff
changeset
|
169 """ |
1250
40ca0af6e480
Add methods to change_length and fix incorrect function declaration
Jonatan Werpers <jonatan@werpers.com>
parents:
1249
diff
changeset
|
170 function change_length end |
908 | 171 |
1250
40ca0af6e480
Add methods to change_length and fix incorrect function declaration
Jonatan Werpers <jonatan@werpers.com>
parents:
1249
diff
changeset
|
172 change_length(r::UnitRange, n) = StepRange{Int,Int}(range(r[begin], r[end], n)) |
40ca0af6e480
Add methods to change_length and fix incorrect function declaration
Jonatan Werpers <jonatan@werpers.com>
parents:
1249
diff
changeset
|
173 change_length(r::StepRange, n) = StepRange{Int,Int}(range(r[begin], r[end], n)) |
40ca0af6e480
Add methods to change_length and fix incorrect function declaration
Jonatan Werpers <jonatan@werpers.com>
parents:
1249
diff
changeset
|
174 change_length(r::StepRangeLen, n) = range(r[begin], r[end], n) |
1222 | 175 change_length(r::LinRange, n) = LinRange(r[begin], r[end], n) |