<html>#2645: Major update to Baikal/BaikalVacuum
<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>Changes (by Zach Etienne):</p>
<p>First off, there are no new features or new parameters/parameter defaults in this update. All math kernels are identical as well. This is strictly the result of a modernization of the code generation infrastructure.</p>
<p>The codegen of <code>Baikal</code> and <code>BaikalVacuum</code> has been updated to conform to the latest NRPy+ standards, which emphasize registration of C functions with NRPy+ instead of oodles of <code>.h</code> files that can be hard to track. Parallel codegen is far more robust, and maintainability has been greatly improved (<code>./run_Jupyter_notebook.sh Tutorial-ETK_thorn-BaikalETK.ipynb</code> is the only means to generate the thorns; before the Jupyter notebook contents were completely copied into separate Python modules).</p>
<p>Here are the steps needed to validate this latest version against the original:</p>
<ol>
<li>Clone the latest NRPy+ repo: git clone <a data-is-external-link="true" href="https://github.com/zachetienne/nrpytutorial.git" rel="nofollow">https://github.com/zachetienne/nrpytutorial.git</a></li>
<li>Make sure you have jupyter and sympy installed (pip install jupyter sympy)</li>
<li>Make sure you have downloaded the latest ET <em>release</em> <a data-is-external-link="true" href="https://einsteintoolkit.org/download.html" rel="nofollow">https://einsteintoolkit.org/download.html</a></li>
<li>Go into the nrpytutorial directory and type ./convert_jupyter_to_python_and_run.sh Tutorial-ETK_thorn-BaikalETK.ipynb</li>
<li>Step 4 above should've generated the updated Baikal &amp; BaikalVacuum thorns.</li>
<li>E.g., go into BaikalVacuum/src/ and diff a RHS file against the latest ET release version via:<br>
  diff -w rhs_eval_BaikalVacuum_order_4.c [path to latest ET release]/arrangements/WVUThorns/BaikalVacuum/src/BSSN_RHSs_enable_Tmunu_False_FD_order_4.c<br>
  notice that -w ignores whitespace differences, which is important since the latest version does proper tabbing. You'll see that the math kernel is <em>identical</em>, and the only differences include things like 
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2645/major-update-to-baikal-baikalvacuum'>https://bitbucket.org/einsteintoolkit/tickets/issues/2645/major-update-to-baikal-baikalvacuum</a></p>
</html>