annotate src/SbpOperators/readoperator.jl @ 837:126e169bb0b7 feature/setup_documenter

Initial setup of Documenter.jl
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 14 Jan 2022 09:01:12 +0100
parents e14627e79a54
children fdd48f6ace1c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
594
cc86b920531a Change the readoperator function to use the .toml format
Jonatan Werpers <jonatan@werpers.com>
parents: 340
diff changeset
1 using TOML
601
b05f542b2e8f Export relevant functions and move export of read_D2_operator to readoperator.jl
Jonatan Werpers <jonatan@werpers.com>
parents: 600
diff changeset
2
b05f542b2e8f Export relevant functions and move export of read_D2_operator to readoperator.jl
Jonatan Werpers <jonatan@werpers.com>
parents: 600
diff changeset
3 export read_D2_operator
b05f542b2e8f Export relevant functions and move export of read_D2_operator to readoperator.jl
Jonatan Werpers <jonatan@werpers.com>
parents: 600
diff changeset
4 export read_stencil
b05f542b2e8f Export relevant functions and move export of read_D2_operator to readoperator.jl
Jonatan Werpers <jonatan@werpers.com>
parents: 600
diff changeset
5 export read_stencils
b05f542b2e8f Export relevant functions and move export of read_D2_operator to readoperator.jl
Jonatan Werpers <jonatan@werpers.com>
parents: 600
diff changeset
6 export read_tuple
b05f542b2e8f Export relevant functions and move export of read_D2_operator to readoperator.jl
Jonatan Werpers <jonatan@werpers.com>
parents: 600
diff changeset
7
b05f542b2e8f Export relevant functions and move export of read_D2_operator to readoperator.jl
Jonatan Werpers <jonatan@werpers.com>
parents: 600
diff changeset
8 export get_stencil
b05f542b2e8f Export relevant functions and move export of read_D2_operator to readoperator.jl
Jonatan Werpers <jonatan@werpers.com>
parents: 600
diff changeset
9 export get_stencils
b05f542b2e8f Export relevant functions and move export of read_D2_operator to readoperator.jl
Jonatan Werpers <jonatan@werpers.com>
parents: 600
diff changeset
10 export get_tuple
b05f542b2e8f Export relevant functions and move export of read_D2_operator to readoperator.jl
Jonatan Werpers <jonatan@werpers.com>
parents: 600
diff changeset
11
594
cc86b920531a Change the readoperator function to use the .toml format
Jonatan Werpers <jonatan@werpers.com>
parents: 340
diff changeset
12 function read_D2_operator(fn; order)
cc86b920531a Change the readoperator function to use the .toml format
Jonatan Werpers <jonatan@werpers.com>
parents: 340
diff changeset
13 operators = TOML.parsefile(fn)["order$order"]
cc86b920531a Change the readoperator function to use the .toml format
Jonatan Werpers <jonatan@werpers.com>
parents: 340
diff changeset
14 D2 = operators["D2"]
cc86b920531a Change the readoperator function to use the .toml format
Jonatan Werpers <jonatan@werpers.com>
parents: 340
diff changeset
15 H = operators["H"]
cc86b920531a Change the readoperator function to use the .toml format
Jonatan Werpers <jonatan@werpers.com>
parents: 340
diff changeset
16 e = operators["e"]
cc86b920531a Change the readoperator function to use the .toml format
Jonatan Werpers <jonatan@werpers.com>
parents: 340
diff changeset
17 d1 = operators["d1"]
249
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
18
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
19 # Create inner stencil
596
a9744aa5e235 Simplify read_D2_operator by introducing a get_stencil function
Jonatan Werpers <jonatan@werpers.com>
parents: 594
diff changeset
20 innerStencil = get_stencil(operators, "D2", "inner_stencil")
249
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
21
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
22 # Create boundary stencils
594
cc86b920531a Change the readoperator function to use the .toml format
Jonatan Werpers <jonatan@werpers.com>
parents: 340
diff changeset
23 boundarySize = length(D2["closure_stencils"])
249
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
24 closureStencils = Vector{typeof(innerStencil)}() # TBD: is the the right way to get the correct type?
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
25 for i ∈ 1:boundarySize
596
a9744aa5e235 Simplify read_D2_operator by introducing a get_stencil function
Jonatan Werpers <jonatan@werpers.com>
parents: 594
diff changeset
26 closureStencils = (closureStencils..., get_stencil(operators, "D2", "closure_stencils", i; center=i))
249
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
27 end
596
a9744aa5e235 Simplify read_D2_operator by introducing a get_stencil function
Jonatan Werpers <jonatan@werpers.com>
parents: 594
diff changeset
28 # TODO: Get rid of the padding here. Any padding should be handled by the consturctor accepting the stencils.
671
e14627e79a54 Add stencil constructor for centered stencils and change from tuple to vararg in stencil constructor taking cneter
Jonatan Werpers <jonatan@werpers.com>
parents: 637
diff changeset
29 eClosure = Stencil(pad_tuple(toml_string_array_to_tuple(Float64, e["closure"]), boundarySize)..., center=1)
e14627e79a54 Add stencil constructor for centered stencils and change from tuple to vararg in stencil constructor taking cneter
Jonatan Werpers <jonatan@werpers.com>
parents: 637
diff changeset
30 dClosure = Stencil(pad_tuple(toml_string_array_to_tuple(Float64, d1["closure"]), boundarySize)..., center=1)
249
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
31
637
4a81812150f4 Change qudrature closure from tuple of reals to tuple of Stencils. Also remove parametrization of stencil width in D2 since this was illformed for the 2nd order case.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 609
diff changeset
32 q_tuple = pad_tuple(toml_string_array_to_tuple(Float64, H["closure"]), boundarySize)
4a81812150f4 Change qudrature closure from tuple of reals to tuple of Stencils. Also remove parametrization of stencil width in D2 since this was illformed for the 2nd order case.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 609
diff changeset
33 quadratureClosure = Vector{typeof(innerStencil)}()
4a81812150f4 Change qudrature closure from tuple of reals to tuple of Stencils. Also remove parametrization of stencil width in D2 since this was illformed for the 2nd order case.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 609
diff changeset
34 for i ∈ 1:boundarySize
671
e14627e79a54 Add stencil constructor for centered stencils and change from tuple to vararg in stencil constructor taking cneter
Jonatan Werpers <jonatan@werpers.com>
parents: 637
diff changeset
35 quadratureClosure = (quadratureClosure..., Stencil(q_tuple[i], center=1))
637
4a81812150f4 Change qudrature closure from tuple of reals to tuple of Stencils. Also remove parametrization of stencil width in D2 since this was illformed for the 2nd order case.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 609
diff changeset
36 end
4a81812150f4 Change qudrature closure from tuple of reals to tuple of Stencils. Also remove parametrization of stencil width in D2 since this was illformed for the 2nd order case.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 609
diff changeset
37
594
cc86b920531a Change the readoperator function to use the .toml format
Jonatan Werpers <jonatan@werpers.com>
parents: 340
diff changeset
38 d2 = SbpOperators.D2(
249
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
39 innerStencil,
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
40 closureStencils,
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
41 eClosure,
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
42 dClosure,
637
4a81812150f4 Change qudrature closure from tuple of reals to tuple of Stencils. Also remove parametrization of stencil width in D2 since this was illformed for the 2nd order case.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 609
diff changeset
43 quadratureClosure,
249
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
44 even
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
45 )
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
46
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
47 return d2
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
48 end
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
49
597
98cd99237176 Add a function for reading a stencil directly from the a file
Jonatan Werpers <jonatan@werpers.com>
parents: 596
diff changeset
50
98cd99237176 Add a function for reading a stencil directly from the a file
Jonatan Werpers <jonatan@werpers.com>
parents: 596
diff changeset
51 """
98cd99237176 Add a function for reading a stencil directly from the a file
Jonatan Werpers <jonatan@werpers.com>
parents: 596
diff changeset
52 read_stencil(fn, path...; [center])
98cd99237176 Add a function for reading a stencil directly from the a file
Jonatan Werpers <jonatan@werpers.com>
parents: 596
diff changeset
53
98cd99237176 Add a function for reading a stencil directly from the a file
Jonatan Werpers <jonatan@werpers.com>
parents: 596
diff changeset
54 Read a stencil at `path` from the file with name `fn`.
98cd99237176 Add a function for reading a stencil directly from the a file
Jonatan Werpers <jonatan@werpers.com>
parents: 596
diff changeset
55 If a center is specified the given element of the stecil is set as the center.
98cd99237176 Add a function for reading a stencil directly from the a file
Jonatan Werpers <jonatan@werpers.com>
parents: 596
diff changeset
56
609
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
57 See also: [`read_stencils`](@ref), [`read_tuple`](@ref), [`get_stencil`](@ref).
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
58
597
98cd99237176 Add a function for reading a stencil directly from the a file
Jonatan Werpers <jonatan@werpers.com>
parents: 596
diff changeset
59 # Examples
98cd99237176 Add a function for reading a stencil directly from the a file
Jonatan Werpers <jonatan@werpers.com>
parents: 596
diff changeset
60 ```
98cd99237176 Add a function for reading a stencil directly from the a file
Jonatan Werpers <jonatan@werpers.com>
parents: 596
diff changeset
61 read_stencil(sbp_operators_path()*"standard_diagonal.toml", "order2", "D2", "inner_stencil")
98cd99237176 Add a function for reading a stencil directly from the a file
Jonatan Werpers <jonatan@werpers.com>
parents: 596
diff changeset
62 read_stencil(sbp_operators_path()*"standard_diagonal.toml", "order2", "d1", "closure"; center=1)
98cd99237176 Add a function for reading a stencil directly from the a file
Jonatan Werpers <jonatan@werpers.com>
parents: 596
diff changeset
63 ```
98cd99237176 Add a function for reading a stencil directly from the a file
Jonatan Werpers <jonatan@werpers.com>
parents: 596
diff changeset
64 """
98cd99237176 Add a function for reading a stencil directly from the a file
Jonatan Werpers <jonatan@werpers.com>
parents: 596
diff changeset
65 read_stencil(fn, path...; center=nothing) = get_stencil(TOML.parsefile(fn), path...; center=center)
609
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
66
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
67 """
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
68 read_stencils(fn, path...; centers)
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
69
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
70 Read stencils at `path` from the file `fn`.
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
71 Centers of the stencils are specified as a tuple or array in `centers`.
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
72
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
73 See also: [`read_stencil`](@ref), [`read_tuple`](@ref), [`get_stencils`](@ref).
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
74 """
608
8ae63e775f9d Fix another type
Jonatan Werpers <jonatan@werpers.com>
parents: 603
diff changeset
75 read_stencils(fn, path...; centers) = get_stencils(TOML.parsefile(fn), path...; centers=centers)
609
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
76
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
77 """
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
78 read_tuple(fn, path...)
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
79
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
80 Read tuple at `path` from the file `fn`.
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
81
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
82 See also: [`read_stencil`](@ref), [`read_stencils`](@ref), [`get_tuple`](@ref).
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
83 """
600
dd7056869294 Fix a couple of types
Jonatan Werpers <jonatan@werpers.com>
parents: 599
diff changeset
84 read_tuple(fn, path...) = get_tuple(TOML.parsefile(fn), path...)
596
a9744aa5e235 Simplify read_D2_operator by introducing a get_stencil function
Jonatan Werpers <jonatan@werpers.com>
parents: 594
diff changeset
85
609
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
86 """
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
87 get_stencil(parsed_toml, path...; center=nothing)
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
88
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
89 Same as [`read_stencil`](@ref)) but takes already parsed toml.
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
90 """
598
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
91 get_stencil(parsed_toml, path...; center=nothing) = get_stencil(parsed_toml[path[1]], path[2:end]...; center=center)
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
92 function get_stencil(parsed_toml; center=nothing)
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
93 @assert parsed_toml isa Vector{String}
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
94 stencil_weights = Float64.(parse_rational.(parsed_toml))
596
a9744aa5e235 Simplify read_D2_operator by introducing a get_stencil function
Jonatan Werpers <jonatan@werpers.com>
parents: 594
diff changeset
95
598
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
96 width = length(stencil_weights)
596
a9744aa5e235 Simplify read_D2_operator by introducing a get_stencil function
Jonatan Werpers <jonatan@werpers.com>
parents: 594
diff changeset
97
598
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
98 if isnothing(center)
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
99 center = div(width,2)+1
596
a9744aa5e235 Simplify read_D2_operator by introducing a get_stencil function
Jonatan Werpers <jonatan@werpers.com>
parents: 594
diff changeset
100 end
a9744aa5e235 Simplify read_D2_operator by introducing a get_stencil function
Jonatan Werpers <jonatan@werpers.com>
parents: 594
diff changeset
101
671
e14627e79a54 Add stencil constructor for centered stencils and change from tuple to vararg in stencil constructor taking cneter
Jonatan Werpers <jonatan@werpers.com>
parents: 637
diff changeset
102 return Stencil(stencil_weights..., center=center)
598
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
103 end
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
104
609
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
105 """
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
106 get_stencils(parsed_toml, path...; centers)
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
107
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
108 Same as [`read_stencils`](@ref)) but takes already parsed toml.
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
109 """
598
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
110 get_stencils(parsed_toml, path...; centers) = get_stencils(parsed_toml[path[1]], path[2:end]...; centers=centers)
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
111 function get_stencils(parsed_toml; centers)
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
112 @assert parsed_toml isa Vector{Vector{String}}
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
113 @assert length(centers) == length(parsed_toml)
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
114
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
115 stencils = ()
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
116 for i ∈ 1:length(parsed_toml)
600
dd7056869294 Fix a couple of types
Jonatan Werpers <jonatan@werpers.com>
parents: 599
diff changeset
117 stencil = get_stencil(parsed_toml[i], center = centers[i])
598
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
118 stencils = (stencils..., stencil)
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
119 end
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
120
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
121 return stencils
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
122 end
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
123
609
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
124 """
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
125 get_tuple(parsed_toml, path...)
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
126
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
127 Same as [`read_tuple`](@ref)) but takes already parsed toml.
7975143118e8 Add some documentation
Jonatan Werpers <jonatan@werpers.com>
parents: 608
diff changeset
128 """
598
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
129 get_tuple(parsed_toml, path...) = get_tuple(parsed_toml[path[1]], path[2:end]...)
602
c2239c7cd71e Fix another typo in get_tuple signature
Jonatan Werpers <jonatan@werpers.com>
parents: 601
diff changeset
130 function get_tuple(parsed_toml)
598
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
131 @assert parsed_toml isa Vector{String}
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
132 t = Tuple(Float64.(parse_rational.(parsed_toml)))
19e1b169aa9c Add funcitons for reading several stecils or reading tuples
Jonatan Werpers <jonatan@werpers.com>
parents: 597
diff changeset
133 return t
596
a9744aa5e235 Simplify read_D2_operator by introducing a get_stencil function
Jonatan Werpers <jonatan@werpers.com>
parents: 594
diff changeset
134 end
a9744aa5e235 Simplify read_D2_operator by introducing a get_stencil function
Jonatan Werpers <jonatan@werpers.com>
parents: 594
diff changeset
135
a9744aa5e235 Simplify read_D2_operator by introducing a get_stencil function
Jonatan Werpers <jonatan@werpers.com>
parents: 594
diff changeset
136 # TODO: Probably should be deleted once we have gotten rid of read_D2_operator()
594
cc86b920531a Change the readoperator function to use the .toml format
Jonatan Werpers <jonatan@werpers.com>
parents: 340
diff changeset
137 function toml_string_array_to_tuple(::Type{T}, arr::AbstractVector{String}) where T
cc86b920531a Change the readoperator function to use the .toml format
Jonatan Werpers <jonatan@werpers.com>
parents: 340
diff changeset
138 return Tuple(T.(parse_rational.(arr)))
249
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
139 end
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
140
594
cc86b920531a Change the readoperator function to use the .toml format
Jonatan Werpers <jonatan@werpers.com>
parents: 340
diff changeset
141 function parse_rational(str)
cc86b920531a Change the readoperator function to use the .toml format
Jonatan Werpers <jonatan@werpers.com>
parents: 340
diff changeset
142 expr = Meta.parse(replace(str, "/"=>"//"))
603
fbff4009c08a Add tests for parse_rational()
Jonatan Werpers <jonatan@werpers.com>
parents: 602
diff changeset
143 return eval(:(Rational($expr)))
249
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
144 end
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
145
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
146 function pad_tuple(t::NTuple{N, T}, n::Integer) where {N,T}
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
147 if N >= n
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
148 return t
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
149 else
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
150 return pad_tuple((t..., zero(T)), n)
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
151 end
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
152 end
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
153
340
29df39a7b568 readoperator.jl: Fix path to operators
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
154 sbp_operators_path() = (@__DIR__) * "/operators/"
249
7cb4492ccd60 Refactor package SbpOperators
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
155 export sbp_operators_path