<html>#2299: Proposal: Add BaikalETK to the Toolkit
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Zach Etienne</td></tr>
<tr><td style='text-align:right'>   Status:</td><td>new</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td></td></tr>
<tr><td style='text-align:right'>  Version:</td><td></td></tr>
<tr><td style='text-align:right'>     Type:</td><td>enhancement</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>major</td></tr>
<tr><td style='text-align:right'>Component:</td><td></td></tr>
</table>

<p><code>BaikalETK</code> is an open-source <code>NRPy+</code>-based BSSN thorn, which has been demonstrated to yield excellent agreement with <code>ML_BSSN</code> when evolving BBHs and BNSs, and in certain cases (e.g., ADM mass volume integral over entire grid vs time in a pre-merged BNS simulation) better results than <code>ML_BSSN</code>.</p>
<p><code>BaikalETK</code> has the following neat features:</p>
<ol>
<li>The core BSSN kernel is generated by <code>NRPy+</code>/<code>SymPy</code>, which is entirely free and open source, just like <code>BaikalETK</code>. According to benchmarks by Erik, <code>BaikalETK</code> runs more than 10% faster than the <code>Kranc</code>/<code>Mathematica</code> -generated <code>ML_BSSN</code> currently part of the Toolkit. Work is ongoing to improve <code>BaikalETK</code>'s performance even more.</li>
<li>It is documented in a Jupyter notebook, which itself is linked to other Jupyter notebooks that document the BSSN formalism &amp; gauge choices.</li>
<li>It can be generated by either running the aforementioned Jupyter notebook or just importing a Python module within <code>NRPy+</code>. The Jupyter notebook contains a self-validation test that will fail if the Python module is updated without a corresponding update to the Jupyter notebook.</li>
<li>Its scheduling and general structure are closely based on the very nice <code>Lean</code> code.</li>
<li>It supports arbitrary finite-differencing order and a variety of gauge conditions, which can be extended further. It implements Brown’s covariant formulation of the BSSN equations.</li>
</ol>
<p>Possible complications:</p>
<ol>
<li>Unlike <code>ML_BSSN</code>, which (due to Mathematica licensing constraints and consistency with other monolithic thorns) needed to contain all gauge choices, finite difference orders, etc., <code>BaikalETK</code> will only generate a BSSN thorn with a particular gauge and finite-differencing order <em>chosen at the time of thorn generation</em>. That is to say, choices about finite difference order, 
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2299/proposal-add-baikaletk-to-the-toolkit'>https://bitbucket.org/einsteintoolkit/tickets/issues/2299/proposal-add-baikaletk-to-the-toolkit</a></p>
</html>