diff --git a/helper.jl b/helper.jl index 9342cf4..019871f 100644 --- a/helper.jl +++ b/helper.jl @@ -13,3 +13,6 @@ better_sum(arr::Array{ComplexF64}) = better_sum(real.(arr)) + 1im * better_sum(i "The triangle inequality for angular momenta" triangle_ineq(l1, l2, L) = abs(l1 - l2) ≤ L && L ≤ (l1 + l2) + +"Nearest value in a list to a given reference point" +nearest(list::Array, ref) = list[argmin(norm.(list .- ref))] \ No newline at end of file diff --git a/p_space_test.ipynb b/p_space_test.ipynb index fa5f269..84ce8c7 100644 --- a/p_space_test.ipynb +++ b/p_space_test.ipynb @@ -7,6 +7,7 @@ "outputs": [], "source": [ "using Plots\n", + "include(\"helper.jl\")\n", "include(\"p_space.jl\")" ] }, @@ -36,7 +37,7 @@ "evals = eigen(H).values\n", "\n", "E_target = 0.258 - 0.164im\n", - "E = evals[argmin(norm.(evals .- E_target))]\n", + "E = nearest(evals, E_target)\n", "\n", "print(\"E = $E\")\n", "scatter(real.(evals), imag.(evals), xlim = (0,1))" diff --git a/simple_berggren.ipynb b/simple_berggren.ipynb index cb2053f..cf5bbe8 100644 --- a/simple_berggren.ipynb +++ b/simple_berggren.ipynb @@ -7,6 +7,7 @@ "outputs": [], "source": [ "using Plots\n", + "include(\"helper.jl\")\n", "include(\"p_space.jl\")" ] }, @@ -28,7 +29,7 @@ "\n", "evals = basis_eig.values\n", "E_target = 0.7\n", - "E = evals[argmin(norm.(evals .- E_target))]\n", + "E = include(\"helper.jl\")\n", "\n", "print(\"E = $E\")\n", "scatter(real.(evals), imag.(evals), xlim = (0,2))"