Added parameters for tolerance and maximum evaluations in V_numerical
This commit is contained in:
parent
af1391197c
commit
aac1a2e431
|
|
@ -6,7 +6,7 @@ include("p_space.jl")
|
||||||
m = 1.0
|
m = 1.0
|
||||||
V_of_r(r) = 2 * exp(-(r-3)^2 / (1.5)^2)
|
V_of_r(r) = 2 * exp(-(r-3)^2 / (1.5)^2)
|
||||||
|
|
||||||
E_max = 24
|
E_max = 30
|
||||||
μω_global = 0.5 * exp(-2im * pi / 9)
|
μω_global = 0.5 * exp(-2im * pi / 9)
|
||||||
|
|
||||||
# due to Jacobi coordinates
|
# due to Jacobi coordinates
|
||||||
|
|
@ -34,8 +34,10 @@ println("Constructing KE matrices")
|
||||||
|
|
||||||
println("Constructing PE matrices")
|
println("Constructing PE matrices")
|
||||||
|
|
||||||
V1_elem(l, n1, n2) = V_numerical(V_of_r, l, n1, n2; μω_gen=μ1ω1)
|
atol = 10^-6
|
||||||
V_relative_elem(l, n1, n2) = V_numerical(V_of_r, l, n1, n2; μω_gen=μω_global)
|
maxevals = 10^5
|
||||||
|
V1_elem(l, n1, n2) = V_numerical(V_of_r, l, n1, n2; μω_gen=μ1ω1, atol=atol, maxevals=maxevals)
|
||||||
|
V_relative_elem(l, n1, n2) = V_numerical(V_of_r, l, n1, n2; μω_gen=μω_global, atol=atol, maxevals=maxevals)
|
||||||
V1_cache = fill(Complex(NaN), 1+l_max, 1+n_max, 1+n_max)
|
V1_cache = fill(Complex(NaN), 1+l_max, 1+n_max, 1+n_max)
|
||||||
V_relative_cache = fill(Complex(NaN), 1+l_max, 1+n_max, 1+n_max)
|
V_relative_cache = fill(Complex(NaN), 1+l_max, 1+n_max, 1+n_max)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -134,8 +134,8 @@ sqrt_sqrt_pi = sqrt(sqrt(pi))
|
||||||
laguerre(l, n, x) = gamma(n + l + 3/2) * better_sum([(-x * x)^k / gamma(k + l + 3/2) * inv_factorial(n - k) * inv_factorial(k) for k in 0:n])
|
laguerre(l, n, x) = gamma(n + l + 3/2) * better_sum([(-x * x)^k / gamma(k + l + 3/2) * inv_factorial(n - k) * inv_factorial(k) for k in 0:n])
|
||||||
ho_basis(l, n, x) = (-1)^n / sqrt_sqrt_pi * 2^((n + l + 2) / 2) * sqrt_factorial(n) / sqrt_double_factorial(2*n + 2*l + 1) * x^(l + 1) * exp(-x^2 / 2) * laguerre(l, n, x)
|
ho_basis(l, n, x) = (-1)^n / sqrt_sqrt_pi * 2^((n + l + 2) / 2) * sqrt_factorial(n) / sqrt_double_factorial(2*n + 2*l + 1) * x^(l + 1) * exp(-x^2 / 2) * laguerre(l, n, x)
|
||||||
|
|
||||||
function V_numerical(V_of_r, l, n1, n2; μω_gen=1.0)
|
function V_numerical(V_of_r, l, n1, n2; μω_gen=1.0, atol=0, maxevals=10^7)
|
||||||
integrand(r) = sqrt(μω_gen) * ho_basis(l, n1, sqrt(μω_gen) * r) * ho_basis(l, n2, sqrt(μω_gen) * r) * V_of_r(r)
|
integrand(r) = sqrt(μω_gen) * ho_basis(l, n1, sqrt(μω_gen) * r) * ho_basis(l, n2, sqrt(μω_gen) * r) * V_of_r(r)
|
||||||
(integral, _) = quadgk(integrand, 0, Inf)
|
(integral, _) = quadgk(integrand, 0, Inf; atol=atol, maxevals=maxevals)
|
||||||
return integral
|
return integral
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue