<div data-ntes="ntes_mail_body_root" style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div style="margin:0;">Dear all,</div><div style="margin:0;"><br></div><div style="margin:0;">At today's weekly users call I would like to briefly present Geodesic, a</div><div style="margin:0;">new thorn that integrates test-particle geodesics in Kerr--Schild</div><div style="margin:0;">Cartesian coordinates, and ask for feedback before submitting it to the</div><div style="margin:0;">Einstein Toolkit.</div><div style="margin:0;"><br></div><div style="margin:0;">Features</div><div style="margin:0;">- Two metric modes: an exact analytic Kerr--Schild metric</div><div style="margin:0;">  (grid-independent, symbolically verified to be a vacuum solution at</div><div style="margin:0;">  machine precision), and a grid mode that samples the ADMBase fields</div><div style="margin:0;">  with three interchangeable samplers selected by one parameter:</div><div style="margin:0;">  local27 (default, 27-point local Lagrange fit), aei (fourth-order</div><div style="margin:0;">  pointwise, via AEILocalInterp), and carpet (second-order pointwise</div><div style="margin:0;">  quadratic Lagrange).</div><div style="margin:0;">- Adaptive RKF45 integration with per-step renormalization of the</div><div style="margin:0;">  four-velocity; d_t g recovered from the three most recent ADMBase</div><div style="margin:0;">  time levels (stationary metrics are auto-detected).</div><div style="margin:0;">- AMR-ready: each sampler reads the refinement level that contains the</div><div style="margin:0;">  particle, so geodesics can be integrated inside a Carpet AMR</div><div style="margin:0;">  evolution (with 4:1 subcycling) without any change to the integrator.</div><div style="margin:0;">- OpenMP-parallel particle loop: scales to 10^4 particles (9.2x</div><div style="margin:0;">  speedup, 10.4% efficiency on 88 threads); embedded in a full GRHydro</div><div style="margin:0;">  evolution, tracking 10^4 particles costs only ~3.1% of the wall time.</div><div style="margin:0;"><br></div><div style="margin:0;">Verification</div><div style="margin:0;">- E, L_z and the norm conserved to ~1e-9 over T = 1000 M on three</div><div style="margin:0;">  distinct bound orbits (circular, tilted, eccentric).</div><div style="margin:0;">- Grid convergence of the default sampler with a measured local order</div><div style="margin:0;">  of 3.7 (formal order three) against an independent reference.</div><div style="margin:0;">- Five-way comparison of the exact metric and the three samplers on a</div><div style="margin:0;">  precessing orbit of 200 particles close to the plunge boundary.</div><div style="margin:0;">- New: on a 3-level Carpet AMR mesh (50^3 base, dx=1; refinement boxes</div><div style="margin:0;">  of half-width 16/8, factor 2), all three samplers reproduce the</div><div style="margin:0;">  unigrid reference orbit of conv100 over ~1.05 orbital periods</div><div style="margin:0;">  (t = 0..150.1): radial deviations 0.4% (local27), 0.5% (aei), 2.3%</div><div style="margin:0;">  (carpet, consistent with its second formal order), with no lost</div><div style="margin:0;">  particles and no NaNs.</div><div style="margin:0;"><br></div><div style="margin:0;">Code and configurations</div><div style="margin:0;">- Repository (GPLv2+): https://github.com/wylyhzh/Geodesic</div><div style="margin:0;">- Includes a 7-test testsuite, ThornGuide documentation, and the</div><div style="margin:0;">  parameter files used for the results above (including the three</div><div style="margin:0;">  AMR-vs-unigrid comparison setups).</div><div style="margin:0;">- A paper describing the implementation and the verification suite is</div><div style="margin:0;">  in preparation.</div><div style="margin:0;"><br></div><div style="margin:0;">Known limitation</div><div style="margin:0;">- The multi-process (MPI) particle layout is implemented</div><div style="margin:0;">  (DISTRIB=CONSTANT, rank-0 integration with state synchronization) but</div><div style="margin:0;">  has not yet been exercised with the current rework; single-process</div><div style="margin:0;">  OpenMP runs are the tested configuration. The aei sampler in addition</div><div style="margin:0;">  needs single-process runs or AEILocalInterp's N_boundary_points_omit</div><div style="margin:0;">  when its fourth-order stencil would cross a processor boundary.</div><div style="margin:0;"><br></div><div style="margin:0;">Any feedback is very welcome - in particular on whether the thorn</div><div style="margin:0;">should be proposed as EinsteinAnalysis/Geodesic.</div><div style="margin:0;"><br></div><div style="margin:0;">Best regards,</div><div style="margin:0;">Yuhua Li</div></div>