Mercurial > repos > public > sbplib_julia
annotate grid.jl @ 14:b11b67c02d1a
Started implementing grids
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Mon, 17 Dec 2018 14:45:10 +0100 |
parents | b714e341a0ba |
children | 3d032081832d |
rev | line source |
---|---|
14
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
1 module grid |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
2 |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
3 abstract type Grid end |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
4 |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
5 function numberOfDimensions(grid::Grid) |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
6 error("Not yet implemented"); |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
7 end |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
8 |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
9 function numberOfPoints(grid::Grid) |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
10 error("Not yet implemented"); |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
11 end |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
12 |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
13 function points(grid::Grid) |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
14 error("Not yet implemented"); |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
15 end |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
16 |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
17 abstract type BoundaryId end |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
18 |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
19 # Move to seperate file. |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
20 struct EquidistantGrid <: Grid |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
21 numberOfDimensions::UInt; |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
22 numberOfPoints::Vector(UInt); |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
23 limits::Vector{Pair{Real, Real}}; |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
24 function EquidistantGrid(nDims, nPoints, lims) |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
25 @assert nDims == size(nPoints); |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
26 return new(nDims, nPoints, lims); |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
27 end |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
28 end |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
29 |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
30 # Getter functions for public properties? |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
31 function numberOfDimensions(grid::EquidistantGrid) |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
32 return grid.numberOfDimensions; |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
33 end |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
34 |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
35 function numberOfPoints(grid::EquidistantGrid) |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
36 return grid.numberOfPoints; |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
37 end |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
38 |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
39 |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
40 function points(grid::EquidistantGrid) |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
41 points::Array{Real,3}(undef, numberOfPoints(grid)); |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
42 # for i ∈ eachindex(points) |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
43 # points(i) = i/ |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
44 # end |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
45 return points; |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
46 end |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
47 |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
48 function limitsForDimension(grid::EquidistantGrid, dim::UInt) |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
49 @assert dim <= 3 |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
50 @assert dim >= 1 |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
51 return grid.limits(dim); |
b11b67c02d1a
Started implementing grids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
0
diff
changeset
|
52 end |