changeset 1608:8315c456e3b4 feature/boundary_conditions

Simplify parsing of constants from stencil set
author Jonatan Werpers <jonatan@werpers.com>
date Sun, 09 Jun 2024 00:17:44 +0200
parents 7216448d0c5a
children 8ebcac8edd9d
files src/SbpOperators/SbpOperators.jl src/SbpOperators/stencil_set.jl src/SbpOperators/volumeops/laplace/laplace.jl test/SbpOperators/stencil_set_test.jl
diffstat 4 files changed, 3 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/src/SbpOperators/SbpOperators.jl	Sun Jun 09 00:02:40 2024 +0200
+++ b/src/SbpOperators/SbpOperators.jl	Sun Jun 09 00:17:44 2024 +0200
@@ -8,7 +8,6 @@
 export parse_nested_stencil
 export parse_scalar
 export parse_tuple
-export parse_named_tuple
 export sbp_operators_path
 
 # Operators
--- a/src/SbpOperators/stencil_set.jl	Sun Jun 09 00:02:40 2024 +0200
+++ b/src/SbpOperators/stencil_set.jl	Sun Jun 09 00:17:44 2024 +0200
@@ -166,17 +166,6 @@
     return Tuple(parse_scalar.(parsed_toml))
 end
 
-"""
-    parse_named_tuple(parsed_toml)
-
-Parse the keys (names) and values (scalars) into a named tuple of rationals.
-
-See also [`parse_scalar`](@ref).
-"""
-function parse_named_tuple(parsed_toml)
-    NamedTuple(Symbol(key) => parse_scalar(val) for (key, val) in parsed_toml)
-end
-
 
 """
     parse_rational(parsed_toml)
--- a/src/SbpOperators/volumeops/laplace/laplace.jl	Sun Jun 09 00:02:40 2024 +0200
+++ b/src/SbpOperators/volumeops/laplace/laplace.jl	Sun Jun 09 00:17:44 2024 +0200
@@ -104,11 +104,11 @@
 # TODO: We should consider implementing a proper BoundaryIdentifier for EquidistantGrid and then
 # change bc::BoundaryCondition to id::BoundaryIdentifier
 function positivity_limits(Δ::Laplace, g::EquidistantGrid, bc::DirichletCondition)
-    pos_prop = positivity_properties(Δ)
     h = spacing(g)
-    θ_H = pos_prop.theta_H
+    θ_H = parse_scalar(Δ.stencil_set["H"]["closure"][1])
+    θ_R = parse_scalar(Δ.stencil_set["D2"]["positivity"]["theta_R"])
+
     τ_H = 1/(h*θ_H)
-    θ_R = pos_prop.theta_R
     τ_R = 1/(h*θ_R)
     return τ_H, τ_R
 end
@@ -117,10 +117,3 @@
     τ_H, τ_R = positivity_limits(Δ, g.grids[grid_id(boundary(bc))], bc)
     return τ_H*ndims(g), τ_R
 end
-
-
-function positivity_properties(Δ::Laplace)
-    D2_pos_prop = parse_named_tuple(Δ.stencil_set["D2"]["positivity"])
-    H_closure = parse_tuple(Δ.stencil_set["H"]["closure"])
-    return merge(D2_pos_prop, (theta_H = H_closure[1],))
-end
--- a/test/SbpOperators/stencil_set_test.jl	Sun Jun 09 00:02:40 2024 +0200
+++ b/test/SbpOperators/stencil_set_test.jl	Sun Jun 09 00:17:44 2024 +0200
@@ -152,14 +152,6 @@
         @test_throws ArgumentError parse_tuple(toml["e3"])
         @test_throws ArgumentError parse_tuple(toml["e4"])
     end
-
-    @testset "parse_named_tuple" begin
-        toml = TOML.parse("""
-            NamedTuple = {a = "17/48", b = "0.2505765857"}
-        """)
-        @test parse_named_tuple(toml["NamedTuple"]) == (b = Rational(0.2505765857), a = 17//48)
-    end
-
 end
 
 @testset "parse_rational" begin