Compare commits

..

4 Commits

2 changed files with 65 additions and 0 deletions

33
calculations/MT-V.jl Normal file
View File

@ -0,0 +1,33 @@
# MalflietTjon V (MT-V) — the standard few-body benchmark
# Reference 2-body bound state: E₂ ≈ 0.41 MeV
include("../Hamiltonian.jl")
mode = cpu_tensor
T = Float32 # single-precision mode
V_R = 1458.05 # MeV·fm
μ_R = 3.11 # fm⁻¹
V_A = -578.09 # MeV·fm
μ_A = 1.55 # fm⁻¹
r2_reg = 0.000001 # fm², regularization parameter to avoid singularity at r=0
V_MTV(r2) = V_R * exp(μ_R * sqrt(r2))/sqrt(r2 + r2_reg) + V_A * exp(μ_A * sqrt(r2))/sqrt(r2 + r2_reg)
# ℏ²/m_N = 41.47 MeV·fm² (m_N c² = 938.92 MeV)
μ = (1 / 41.47) / 2
ϕ = 0
d = 3
n = 2
N = 80
L = 20
n_imag = 1
s = system{T}(d, n, N, L, μ)
H = Hamiltonian{T}(s, V_MTV, ϕ, n_imag, mode)
@time evals, _, info = eig(H, 10, resonances = false)
sort!(evals)
display(evals[1:3])
# Result incorrect and does not converge, most probably due to singularity at r=0

View File

@ -0,0 +1,32 @@
# Simple Gaussian benchmark, with units
# Expected 2-body bound state: E₂ ≈ -1.00 MeV
include("../Hamiltonian.jl")
mode = cpu_tensor
T = Float32 # single-precision mode
V_0 = -38.4671 # MeV
r_0 = 2 # fm
V_benchmark(r2) = V_0 * exp(r2 / r_0^2)
m_N = 939.565 # MeV/c²
ħ = 197.327 # MeV·fm/c
μ = (m_N / 2) / ħ^2
ϕ = 0
d = 3
n = 2
N = 80
L = 40 # fm
n_imag = 1
s = system{T}(d, n, N, L, μ)
H = Hamiltonian{T}(s, V_benchmark, ϕ, n_imag, mode)
@time evals, _, info = eig(H, 3, resonances = false)
sort!(evals)
display(evals[1:3])
# Result = -1.001821 MeV