Dear ET folks,<div><br></div><div>I had a recent discussion with Tanja Bode about the GRMHD primitives solver in Maya/ET. It seems both of our primitives (recovery) solvers (aka conservative-to-primitives routines) are based on the open-source HARM code, and there is a real push now to get GRMHD working in ET. The Illinois group would like to become more involved in contributing to the ET community, and as a show of our support, I am sending this email. I have discussed the situation with Stu Shapiro, who is happy to contribute and has permitted me to attach our HARM-based primitives solver to this email. This code is GPL version 2 or 3 (whichever you prefer to maximize compatibility with ET and the existing HARM license). As you are already familiar with HARM&#39;s solver, we include no documentation. The current solver can handle Gamma-law equations of state. It will require some work, but it should be straightforward to extend the solver to arbitrary equations of state.</div>
<div><br></div><div>The solver contains a driver with some quality-control features, like taking a norm of how much the conservatives have changed before and after the solver. It also contains a standalone version, so that when the solver fails during a run, it can dump a file with all the information necessary to rerun the solver *independently of the evolution code* and debug the solver. It also outputs benchmarks (# primitives/second) by default each time it is called. Finally, it includes all of the fixes our group has developed over the years (see appendix in Etienne et al., <span style="background-color:rgb(255,255,255);font-family:&#39;Lucida Grande&#39;,helvetica,arial,verdana,sans-serif;font-size:13px">Phys. Rev. D 85, 064029 (2012)</span>) to assess and repair the physicality of conservatives *before* going through the Newton-Raphson routine, as well as fixing unphysical primitives when they appear. With these features, we have some confidence in the robustness of our solver.</div>
<div><br></div><div>There are parts of the code where you&#39;ll find commented-out lines, as evidence that a lot of tweaking has gone into this. As with all of our codes, this solver is a work in progress. As we haven&#39;t used it, we haven&#39;t updated the standalone solver in a while, so you may need to port some of the features from primitives_generic.C if you would like to use the standalone version.</div>
<div><br></div><div>-Zach, on behalf of the Illinois group</div>