From f831b8192863814a2dde40828ad42058e343e3b3 Mon Sep 17 00:00:00 2001 From: Hongyang Zhou Date: Sat, 7 Feb 2026 21:18:44 -0500 Subject: [PATCH 1/2] Precompile trace eqs --- src/precompile.jl | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/precompile.jl b/src/precompile.jl index 8632638e2..0ee68d037 100644 --- a/src/precompile.jl +++ b/src/precompile.jl @@ -59,5 +59,26 @@ prob_hybrid = TraceHybridProblem(stateinit, tspan, param) alg_hybrid = AdaptiveHybrid(threshold = 0.1, dtmax = 1.0) sol_hybrid = solve(prob_hybrid, alg_hybrid) + + # explicit trace functions + t = 0.0 + # non-relativistic + trace(stateinit, param, t) + trace!(zeros(6), stateinit, param, t) + # relativistic + trace_relativistic(stateinit, param, t) + trace_relativistic!(zeros(6), stateinit, param, t) + # normalized + trace_normalized(stateinit, param, t) + trace_normalized!(zeros(6), stateinit, param, t) + # relativistic normalized + trace_relativistic_normalized(stateinit, param, t) + trace_relativistic_normalized!(zeros(6), stateinit, param, t) + # guiding center + trace_gc(stateinit_gc, param_gc, t) + trace_gc!(zeros(4), stateinit_gc, param_gc, t) + # field line + trace_fieldline(stateinit[1:3], param[4], t) + trace_fieldline!(zeros(3), stateinit[1:3], param[4], t) end end From f75bcdac3f0f05c169142fbd87fbfc286d595ef3 Mon Sep 17 00:00:00 2001 From: Hongyang Zhou Date: Sat, 7 Feb 2026 21:43:01 -0500 Subject: [PATCH 2/2] Reuse output arrays --- src/precompile.jl | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/precompile.jl b/src/precompile.jl index 0ee68d037..f67738060 100644 --- a/src/precompile.jl +++ b/src/precompile.jl @@ -62,23 +62,24 @@ # explicit trace functions t = 0.0 + out6, out4, out3 = zeros(6), zeros(4), zeros(3) # non-relativistic trace(stateinit, param, t) - trace!(zeros(6), stateinit, param, t) + trace!(out6, stateinit, param, t) # relativistic trace_relativistic(stateinit, param, t) - trace_relativistic!(zeros(6), stateinit, param, t) + trace_relativistic!(out6, stateinit, param, t) # normalized trace_normalized(stateinit, param, t) - trace_normalized!(zeros(6), stateinit, param, t) + trace_normalized!(out6, stateinit, param, t) # relativistic normalized trace_relativistic_normalized(stateinit, param, t) - trace_relativistic_normalized!(zeros(6), stateinit, param, t) + trace_relativistic_normalized!(out6, stateinit, param, t) # guiding center trace_gc(stateinit_gc, param_gc, t) - trace_gc!(zeros(4), stateinit_gc, param_gc, t) + trace_gc!(out4, stateinit_gc, param_gc, t) # field line trace_fieldline(stateinit[1:3], param[4], t) - trace_fieldline!(zeros(3), stateinit[1:3], param[4], t) + trace_fieldline!(out3, stateinit[1:3], param[4], t) end end