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'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:'Lucida Grande',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'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't used it, we haven'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>