From 1edea1cd1d0e1f1e1a0520e8d82a7b10c2f94ab2 Mon Sep 17 00:00:00 2001 From: Mo8it Date: Fri, 21 Jan 2022 02:56:33 +0100 Subject: [PATCH] Potential graphic --- graphics/pontential.jl | 51 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 graphics/pontential.jl diff --git a/graphics/pontential.jl b/graphics/pontential.jl new file mode 100644 index 0000000..3de23b4 --- /dev/null +++ b/graphics/pontential.jl @@ -0,0 +1,51 @@ +using CairoMakie +using LaTeXStrings: @L_str + +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 + +text_width_in_pt = 405 + +fig = Figure(; + resolution=(text_width_in_pt, 0.55 * text_width_in_pt), fontsize=10, figure_padding=1 +) + +max_x = 2.5 + +max_y = 1.05 +min_y = -max_y + +ax = Axis(fig[1, 1]; xlabel=L"r/σ", ylabel=L"U/ϵ", 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}"], +) + +colgap!(fig.layout, 5) +rowgap!(fig.layout, 5) + +save("exports/graphics/potential.pdf", fig; pt_per_unit=1) \ No newline at end of file