[ET Trac] #2645: Major update to Baikal/BaikalVacuum

Zach Etienne trac-noreply at einsteintoolkit.org
Thu Sep 22 11:51:55 CDT 2022


#2645: Major update to Baikal/BaikalVacuum

 Reporter: Zach Etienne
   Status: new
Milestone: 
  Version: 
     Type: enhancement
 Priority: major
Component: 

Changes (by Zach Etienne):
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.

The codegen of `Baikal` and `BaikalVacuum` has been updated to conform to the latest NRPy\+ standards, which emphasize registration of C functions with NRPy\+ instead of oodles of `.h` files that can be hard to track. Parallel codegen is far more robust, and maintainability has been greatly improved \(`./run_Jupyter_notebook.sh Tutorial-ETK_thorn-BaikalETK.ipynb` is the only means to generate the thorns; before the Jupyter notebook contents were completely copied into separate Python modules\).

Here are the steps needed to validate this latest version against the original:

1. Clone the latest NRPy\+ repo: git clone [https://github.com/zachetienne/nrpytutorial.git](https://github.com/zachetienne/nrpytutorial.git)
2. Make sure you have jupyter and sympy installed \(pip install jupyter sympy\)
3. Make sure you have downloaded the latest ET _release_ [https://einsteintoolkit.org/download.html](https://einsteintoolkit.org/download.html)
4. Go into the nrpytutorial directory and type ./convert\_jupyter\_to\_python\_and\_run.sh Tutorial-ETK\_thorn-BaikalETK.ipynb
5. Step 4 above should've generated the updated Baikal & BaikalVacuum thorns.
6. E.g., go into BaikalVacuum/src/ and diff a RHS file against the latest ET release version via:  
  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  
  notice that -w ignores whitespace differences, which is important since the latest version does proper tabbing. You'll see that the math kernel is _identical_, and the only differences include things like adding CCTK\_ATTRIBUTE\_UNUSED to various automatically generated constants, which may not be used and using NGHOSTS=cctk\_nghostzones\[0\] consistently.  
  Other RHS orders, Ricci evaluations, and constraint calculations can be compared in a similar fashion.

The pull request is here:

[https://bitbucket.org/zach\_etienne/wvuthorns/pull-requests/12/modernize-baikal-baikalvacuum-codegen](https://bitbucket.org/zach_etienne/wvuthorns/pull-requests/12/modernize-baikal-baikalvacuum-codegen)

I will merge this pull request on Tuesday Sept 27, unless there are objections.

--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2645/major-update-to-baikal-baikalvacuum
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.einsteintoolkit.org/pipermail/trac/attachments/20220922/94648104/attachment.html 


More information about the Trac mailing list