using CairoMakie using LaTeXStrings: @L_str include("../src/Visualization/common_CairoMakie.jl") const minimum_r_σ_ratio = 2^(1 / 6) function U_LJ_ϵ_ratio(r_σ_ratio::Real) σ_r_ratio⁶ = r_σ_ratio^(-6) return 4 * (σ_r_ratio⁶^2 - σ_r_ratio⁶) end function U_WCA_ϵ_ratio(r_σ_ratio::Real) if r_σ_ratio > minimum_r_σ_ratio return zero(r_σ_ratio) else return U_LJ_ϵ_ratio(r_σ_ratio) + 1 end end function plot_potentials() init_cairomakie!() fig = gen_figure() max_x = 2.5 max_y = 1.05 min_y = -max_y ax = Axis( fig[1, 1]; xlabel=L"r / σ", ylabel=L"U(r) / ϵ", limits=(0.88, max_x, min_y, max_y) ) r_σ_ratio = LinRange(0.95, max_x, 1000) LJ = lines!(ax, r_σ_ratio, U_LJ_ϵ_ratio.(r_σ_ratio)) WCA = lines!(ax, r_σ_ratio, U_WCA_ϵ_ratio.(r_σ_ratio)) minimum_r_σ_ratio_line = lines!( ax, [minimum_r_σ_ratio, minimum_r_σ_ratio], [min_y, max_y]; linestyle=:dash, linewidth=1, ) Legend( fig[1, 2], [LJ, WCA, minimum_r_σ_ratio_line], [L"U_{LJ}", L"U_{WCA}", L"\frac{r}{σ} = 2^{1/6}"], ) set_gaps!(fig) save_fig("potential.pdf", fig) return nothing end