using CairoMakie
using SpecialFunctions: besselk
# Installed versions:
# [13f3f980] CairoMakie v0.15.6
# [276daf66] SpecialFunctions v2.6.1
# nextfloat() because at γ=1, f=0 and that can't be plotted in log-space
γs = logrange(nextfloat(1.0), 10^4, length = 1000)
θs = Pair{Real,Symbol}[0.1 => :red, 1 => :green, 5 => :blue,
10 => :fuchsia, 50 => :orange, 100 => :black]
β(γ) = √(1 - 1/γ^2)
f(γ; θ) = (γ^2 * β(γ))/(θ * besselk(2, 1/θ)) * exp(-γ/θ)
fig = Figure()
ax = Axis(
fig[1,1];
title = "Maxwell–Jüttner Speed distribution for Relativistic Electron Gas",
xlabel = "γ", ylabel = "f(γ)",
xscale = log10, xticks = LogTicks(LinearTicks(8)),
yscale = log10, yticks = LogTicks(LinearTicks(6)),
xminorticks = IntervalsBetween(5), xminorticksvisible = true,
yminorticks = IntervalsBetween(4), yminorticksvisible = true,
)
for (θ, color) in θs
lines!(ax, γs, f.(γs; θ); label = string(θ), color)
end
axislegend(ax, "θ = kT/mₑc²";
framevisible = false, nbanks = 3, rowgap = 0, colgap = 8)
xlims!(ax, 0.9, 10^3.55)
ylims!(ax, 1e-11, 10)
save("Plot showing Maxwell-Juttner distribution (relativistic Maxwellian) for electron gas at different temperatures.svg", fig)