<div data-ntes="ntes_mail_body_root" style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div id="spnEditorContent"><div style="margin: 0;">Dear all, dear Steve,</div><div style="margin: 0;"><br></div><div style="margin: 0;">(Continuing the discussion on the list, as suggested.)</div><div style="margin: 0;"><br></div><div style="margin: 0;">Thank you, Steve, for the review of the thorn and the paper draft. The</div><div style="margin: 0;">evaluation gave me a clear roadmap, and I have now completed the rework</div><div style="margin: 0;">in two stages; everything is pushed to</div><div style="margin: 0;">https://github.com/wylyhzh/Geodesic.</div><div style="margin: 0;"><br></div><div style="margin: 0;">First stage (mechanical fixes):</div><div style="margin: 0;"><br></div><div style="margin: 0;">- geodesics_integrate runs with OPTIONS: global and declares READS on</div><div style="margin: 0;"> the ADMBase metric; Geodesic_ParamCheck is actually scheduled;</div><div style="margin: 0;">- the particle arrays are DISTRIB=CONSTANT and checkpointable; the</div><div style="margin: 0;"> unused CoordGauge inherit and the hard KerrSchild dependency are gone</div><div style="margin: 0;"> (the thorn has its own M, a parameters for the exact mode);</div><div style="margin: 0;">- code fixes: the metric inversion no longer returns a garbage inverse</div><div style="margin: 0;"> on singular pivots; the interpolation domain guard matches the</div><div style="margin: 0;"> 6th-order stencil; Cactus logging was moved out of the OpenMP loop;</div><div style="margin: 0;"> omp.h is guarded by _OPENMP;</div><div style="margin: 0;">- par/example.par now uses only public thorns and runs on a stock ET</div><div style="margin: 0;"> checkout; the README states the current limitations explicitly</div><div style="margin: 0;"> (unigrid, single refinement level, particle arrays replicated on</div><div style="margin: 0;"> every rank).</div><div style="margin: 0;"><br></div><div style="margin: 0;">Second stage (tests, documentation, robustness):</div><div style="margin: 0;"><br></div><div style="margin: 0;">- Testsuite: test/ now contains three tests, all passing under the</div><div style="margin: 0;"> Cactus testsuite harness: circ_orbit (full particle state compared</div><div style="margin: 0;"> against reference data), circ_orbit_conserved (a postproc checks that</div><div style="margin: 0;"> E and L_z stay constant), and circ_orbit_mpi (the same run on 2 MPI</div><div style="margin: 0;"> ranks, bit-identical to the single-rank result);</div><div style="margin: 0;">- Documentation: doc/documentation.tex (ThornGuide format) is included;</div><div style="margin: 0;">- particle loss handling is now a run-time policy</div><div style="margin: 0;"> (particle_loss_policy = drop / flag / respawn), with drop as the</div><div style="margin: 0;"> default;</div><div style="margin: 0;">- the per-particle cache is allocated once and reused across steps,</div><div style="margin: 0;"> which removes the per-step allocation churn the review pointed out.</div><div style="margin: 0;"><br></div><div style="margin: 0;">The remaining architectural items (correct behaviour with more than one</div><div style="margin: 0;">MPI rank, interpolation through CarpetInterp/AEILocalInterp, and the</div><div style="margin: 0;">time derivative of the metric from the ADMBase timelevels) are a larger</div><div style="margin: 0;">rewrite whose priority I would like to discuss with the maintainers.</div><div style="margin: 0;"><br></div><div style="margin: 0;">On the question of community interest and a published paper: the paper</div><div style="margin: 0;">describing the method and the verification is included in the</div><div style="margin: 0;">repository (doc/geodesic_paper.pdf). I plan to submit it to arXiv</div><div style="margin: 0;">(gr-qc, cross-listed with astro-ph.HE) once it has benefited from the</div><div style="margin: 0;">community's feedback, and subsequently to a journal, e.g. Classical and</div><div style="margin: 0;">Quantum Gravity. I hope this addresses the "current interest"</div><div style="margin: 0;">criterion in due course.</div><div style="margin: 0;"><br></div><div style="margin: 0;">With this, I believe the thorn now meets the contribution page's</div><div style="margin: 0;">requirements on documentation, examples and self-tests, within its</div><div style="margin: 0;">stated scope. I would appreciate guidance on the next step, and on</div><div style="margin: 0;">whether the thorn could be considered for an "incoming" listing.</div><div style="margin: 0;"><br></div><div style="margin: 0;">Best regards,</div><div style="margin: 0;"><br></div><div style="margin: 0;">Yuhua Li</div><div style="margin: 0;"><br></div><div style="margin: 0;"><br></div></div><p>At 2026-09-09 22:18:59, "Steven R. Brandt" <sbrandt@cct.lsu.edu> wrote:</p><blockquote id="isReplyContent" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<p>Sure, we can go ahead with email. However, you should probably be
sending to <a class="moz-txt-link-abbreviated" href="mailto:users@einsteintoolkit.org">users@einsteintoolkit.org</a> to address the group. See:</p>
<p style="box-sizing: border-box; margin: 0px 0px 10px; color: rgb(51, 51, 51); font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">The
current working procedure for contributions is:</p>
<ol style="box-sizing: border-box; margin-top: 0px; margin-bottom: 10px; color: rgb(51, 51, 51); font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
<li style="box-sizing: border-box;">Author(s) contacts the
Einstein Toolkit consortium (e.g. through the users or
maintainers mail lists) about software that they intend to
contribute</li>
<li style="box-sizing: border-box;">Discussions take place between
the maintainers and author(s) to discuss issues above.</li>
</ol>
<p><br>
</p>
<p>One question you need to address at some ponit: </p>
<ul style="box-sizing: border-box; margin-top: 0px; margin-bottom: 10px; color: rgb(51, 51, 51); font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: medium; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">
<li style="box-sizing: border-box;">To focus development and
support, optimize resources, and provide best practises, the
Einstein Toolkit components should be of current interest to the
community.</li>
</ul>
<div class="moz-cite-prefix">This is phrased ambiguously, but
usually means there's a paper published in a reputable journal
somewhere.</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">--Steve</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">On 9/9/2026 8:37 AM, Yuhua Li wrote:<br>
</div>
<blockquote type="cite" cite="mid:68214823.19ce.1a08662f73a.Coremail.liyhts@yeah.net">
<div data-ntes="ntes_mail_body_root" style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial">
<div id="spnEditorContent">
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">Dear Steve,</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">Thank you for taking the time to look
at the thorn and the paper, and for</div>
<div style="margin: 0;">forwarding the evaluation. I have gone
through it carefully.</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">I agree with the two problems you
singled out — the missing READS/WRITES</div>
<div style="margin: 0;">clauses and the MPI layout — and most
of the other findings are also</div>
<div style="margin: 0;">correct. The evaluation gave me a
clear roadmap, and I have now completed</div>
<div style="margin: 0;">the first, mechanical stage of the
rework:</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">- schedule.ccl: geodesics_integrate
now runs with OPTIONS: global and</div>
<div style="margin: 0;"> declares READS on the ADMBase
metric; Geodesic_ParamCheck is actually</div>
<div style="margin: 0;"> scheduled at CCTK_PARAMCHECK;</div>
<div style="margin: 0;">- interface.ccl: the particle arrays
are now DISTRIB=CONSTANT and</div>
<div style="margin: 0;"> checkpointable; the unused
CoordGauge inherit is gone;</div>
<div style="margin: 0;">- param.ccl: the hard KerrSchild
dependency was removed — the thorn has</div>
<div style="margin: 0;"> its own M and a parameters for the
exact mode;</div>
<div style="margin: 0;">- storage now follows particle_n_total
instead of particle_n;</div>
<div style="margin: 0;">- code fixes: the 4x4 metric inversion
no longer returns a garbage inverse</div>
<div style="margin: 0;"> on singular pivots; the
interpolation domain guard now matches the</div>
<div style="margin: 0;"> 6th-order stencil; Cactus logging
was moved out of the OpenMP loop;</div>
<div style="margin: 0;"> omp.h is guarded by _OPENMP; the
parameter prose and the copyright</div>
<div style="margin: 0;"> headers are fixed;</div>
<div style="margin: 0;">- par/example.par now uses only public
thorns and runs on a stock ET</div>
<div style="margin: 0;"> checkout; the README states the
current limitations explicitly</div>
<div style="margin: 0;"> (single refinement level, unigrid,
particle arrays replicated on every</div>
<div style="margin: 0;"> rank).</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">All of this is pushed to the
repository, and the thorn rebuilds and runs</div>
<div style="margin: 0;">cleanly.</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">The remaining, architectural items —
correct behaviour under MPI with</div>
<div style="margin: 0;">more than one rank, interpolation
through CarpetInterp/AEILocalInterp, and</div>
<div style="margin: 0;">the time derivative of the metric from
the ADMBase timelevels — are a</div>
<div style="margin: 0;">larger rewrite. I would like to
discuss their priority with the</div>
<div style="margin: 0;">maintainers before starting, and I
will state the current domain clearly</div>
<div style="margin: 0;">in the paper as well: unigrid, a
single MPI process, stationary or slowly</div>
<div style="margin: 0;">evolving metrics.</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">For the ET contribution requirements I
still plan to add the</div>
<div style="margin: 0;">doc/documentation.tex ThornGuide
documentation and a test/ case</div>
<div style="margin: 0;">(conservation of E and Lz on a
circular Kerr orbit) — a pointer to a good</div>
<div style="margin: 0;">example test to follow would be
appreciated.</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">About the weekly meetings: I would
honestly prefer not to join, because</div>
<div style="margin: 0;">my spoken English — especially
listening — is not good enough for a live</div>
<div style="margin: 0;">discussion, and I cannot change that
in the short term. I hope we can</div>
<div style="margin: 0;">communicate in writing instead, here
on the mailing list or by email; if</div>
<div style="margin: 0;">a short written summary for one of the
meetings would help, I am happy to</div>
<div style="margin: 0;">provide one.</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">Thank you again for the constructive
feedback.</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">Best regards,</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">Yuhua Li</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;"><br>
</div>
</div>
<p>At 2026-09-09 07:07:21, "Steven R. Brandt"
<a class="moz-txt-link-rfc2396E" href="mailto:sbrandt@cct.lsu.edu"><sbrandt@cct.lsu.edu></a> wrote:</p>
<blockquote id="isReplyContent" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<p>Yuhua,</p>
<p>I had Grok take a look at your thorn and paper. You will
find the feedback attached (eval.md). At least some of the
things it identifies are valid problems, namely the lack of
READS/WRITES clauses in the schedule and MPI support.</p>
<p>You may want to consider joining one of the weekly ET
meetings to make your case (I realize that the time will
probably be challenging for you).</p>
<p>--Steve</p>
<div class="moz-cite-prefix">On 9/8/2026 11:00 AM, Yuhua Li
wrote:<br>
</div>
<blockquote type="cite" cite="mid:6db5ed79.273.1a081bfe81b.Coremail.liyhts@yeah.net">
<div data-ntes="ntes_mail_body_root" style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial">
<div id="spnEditorContent">
<div style="margin: 0;">Dear Steven,</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">Thank you for the quick and
encouraging reply, and for the pointer to the</div>
<div style="margin: 0;">contribution process.</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">To answer your question
directly: my goal is to have Geodesic included in</div>
<div style="margin: 0;">the Einstein Toolkit, and I am
willing to follow the process described at</div>
<div style="margin: 0;"><a class="moz-txt-link-freetext" href="https://einsteintoolkit.org/contribute.html" moz-do-not-send="true">https://einsteintoolkit.org/contribute.html</a>
step by step. In the meantime,</div>
<div style="margin: 0;">I would be glad if the thorn
could be added to the "Thorns we know of" </div>
<div style="margin: 0;">list.</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">Where the thorn stands with
respect to the requirements: </div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;"> - Documentation: the repository
has a README with purpose, build and usage</div>
<div style="margin: 0;"> instructions and a parameter
table; the algorithms and the verification</div>
<div style="margin: 0;"> are described in the paper
draft (doc/geodesic_paper.pdf). </div>
<div style="margin: 0;"> - Examples: par/example.par is
a complete, runnable example, and the par/ </div>
<div style="margin: 0;"> directory contains the
parameter files that reproduce every result</div>
<div style="margin: 0;"> reported in the paper. I am
happy to add an automated test in the ET</div>
<div style="margin: 0;"> test-suite format — a pointer
to a good example test to follow would be</div>
<div style="margin: 0;"> appreciated.</div>
<div style="margin: 0;"> - Licence: GPLv2+, included as
COPYING.</div>
<div style="margin: 0;"> - Hosting: the code is on
GitHub (<a class="moz-txt-link-freetext" href="https://github.com/wylyhzh/Geodesic" moz-do-not-send="true">https://github.com/wylyhzh/Geodesic</a>).</div>
<div style="margin: 0;"> I am open to hosting it at
einsteintoolkit.org if that is preferred.</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">Please let me know what the next
step should be — for example, whether the</div>
<div style="margin: 0;">thorn can be placed into an
"incoming" repository, and what the review</div>
<div style="margin: 0;">will look at first. I will
respond to any requested changes in a timely</div>
<div style="margin: 0;">manner.</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">Best regards,</div>
<div style="margin: 0;"><br>
</div>
<div style="margin: 0;">Yuhua Li </div>
<div style="margin: 0;"><br>
</div>
</div>
<p>At 2026-09-08 22:41:39, "Steven R. Brandt via Users" <a class="moz-txt-link-rfc2396E" href="mailto:users@einsteintoolkit.org" moz-do-not-send="true"><users@einsteintoolkit.org></a>
wrote:</p>
<blockquote id="isReplyContent" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<p>Dear Yuhua,<br>
<br>
Thank you for writing and for putting the code and the<br>
paper draft in a public repository under GPLv2+.
Independent<br>
contributions of this kind are welcome, and a<br>
test-particle geodesic tracker is something we don't
have: the ET currently ships<br>
fluid tracers (particle_tracerET) and puncture
tracking<br>
(PunctureTracker), but not a timelike geodesic
integrator on the 3+1<br>
metric.<br>
<br>
Were you hoping to have it included in the ET, or were
you just looking<br>
to share the code with the community? If so, we can
help you with the process.<br>
Please take a look at <a class="moz-txt-link-freetext" href="https://einsteintoolkit.org/contribute.html" moz-do-not-send="true">https://einsteintoolkit.org/contribute.html</a><br>
if you haven't already.<br>
<br>
If you would like to do something less formal, we can
share<br>
your link on our list of "thorns we know of":<br>
<a class="moz-txt-link-freetext" href="https://docs.einsteintoolkit.org/et-docs/Thorns_we_know_of" moz-do-not-send="true">https://docs.einsteintoolkit.org/et-docs/Thorns_we_know_of</a><br>
<br>
Best regards,<br>
<br>
Steven R. Brandt<br>
<br>
</p>
<div class="moz-cite-prefix">On 9/8/2026 12:28 AM, Yuhua
Li via Users wrote:<br>
</div>
<blockquote type="cite" cite="mid:74f2c974.b12.1a07f7ce0ce.Coremail.liyhts@yeah.net">
<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 Einstein Toolkit
community,</div>
<div style="margin:0;"><br>
</div>
<div style="margin:0;">I am a retired researcher
(background in mathematics and computer science)</div>
<div style="margin:0;">working independently from
China. Over the past ten years I have been</div>
<div style="margin:0;">building a test-particle
geodesic tracker for the Einstein Toolkit, and I</div>
<div style="margin:0;">would like to share it with
the community.</div>
<div style="margin:0;"><br>
</div>
<div style="margin:0;">The Geodesic thorn integrates
geodesics for large numbers of test particles</div>
<div style="margin:0;">in Kerr–Schild Cartesian
coordinates. It supports (i) the exact Kerr–Schild</div>
<div style="margin:0;">metric, independent of the
grid (verified symbolically to be the vacuum</div>
<div style="margin:0;">solution to machine
precision), and (ii) 27-point local Lagrange</div>
<div style="margin:0;">interpolation of the grid
metric, so it also works for arbitrary spacetimes</div>
<div style="margin:0;">carried on the grid (e.g.,
GRHydro evolutions). The per-particle integration</div>
<div style="margin:0;">is fully independent and
parallelized with OpenMP (validated with 10^4</div>
<div style="margin:0;">particles).</div>
<div style="margin:0;"><br>
</div>
<div style="margin:0;">The code (GPLv2+), the
configuration files used in the validation runs,
and a</div>
<div style="margin:0;">paper draft describing the
method and verification are all available in this</div>
<div style="margin:0;">public repository: <a class="moz-txt-link-freetext" href="https://github.com/wylyhzh/Geodesic" moz-do-not-send="true">https://github.com/wylyhzh/Geodesic</a></div>
<div style="margin:0;"><br>
</div>
<div style="margin:0;">I plan to submit the paper to
arXiv (gr-qc, cross-list astro-ph.HE) once it</div>
<div style="margin:0;">has benefited from the
community's feedback.</div>
<div style="margin:0;"><br>
</div>
<div style="margin:0;">I would appreciate: (1)
feedback on whether the thorn meets ET</div>
<div style="margin:0;">standards, and what would be
needed to have it listed with the ET thorns;</div>
<div style="margin:0;">(2) any comments on the
paper. I am most comfortable discussing in</div>
<div style="margin:0;">writing, so I would prefer to
continue the conversation here on the</div>
<div style="margin:0;">mailing list or by email,
whichever is more convenient.</div>
<div style="margin:0;"><br>
</div>
<div style="margin:0;">I am happy to provide any
further information.</div>
<div style="margin:0;"><br>
</div>
<div style="margin:0;">Best regards,</div>
<div style="margin:0;"><br>
</div>
<div style="margin:0;">Yuhua Li</div>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre wrap="" class="moz-quote-pre">_______________________________________________
Users mailing list
<a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:Users@einsteintoolkit.org" moz-do-not-send="true">Users@einsteintoolkit.org</a>
<a class="moz-txt-link-freetext" href="http://lists.einsteintoolkit.org/mailman/listinfo/users" moz-do-not-send="true">http://lists.einsteintoolkit.org/mailman/listinfo/users</a>
</pre>
</blockquote>
</blockquote>
</div>
</blockquote>
</blockquote>
</div>
</blockquote>
</blockquote></div>