Dear All,
Scott Noble and I wrote up some notes on MHD development in GRHydro. This is the basis of the discussion currently going on on the ET phone call.
- Christian
--------------------------
We propose the following strategy for implementing GRMHD in EinsteinEvolve/GRHydro:
* Follow the formalism laid out in Anton et al. 2006, i.e., the Valencia formulation of GRMHD.
Key components to implement / technical challenges will be: (a) Con2Prim (b) GRMHD Riemann problem (c) Constrained transport (d) Recovery procedure for handling unphysical/intractable updates (e) GRMHD with AMR, refluxing and all.
Logical Steps:
(I) Initially, focus on unigrid; no AMR. Do AMR in a second step. Get basic formalism working with a GRMHD Con2Prim scheme, TVD reconstruction, HLL Riemann solver, constrained transport.
(II) Extend to AMR.
Concrete steps in (I):
(1) Define comoving magnetic field b^a in GRHydro as one 3D scalar and one 3D vector GF (b0 and b^i).
(2) Implement (in its own routine) a Con2Prim routine for GRMHD based on routine(s) used in Scott Noble's HARM3D code. This will use the old EOS interface and will be tested with polytropes (no special routine for polytropes, though) and gamma-law EOS. Perform Con2Prim tests.
(3) Implement Prim2Con, reconstruction (add calls), GRMHD Riemann problem, and update of the magnetic field variables (via MoL). Implement divergence check; run code to see how div B grows in test problems. Initial data routines to setup test problems (e.g. those in Gammie++ 2003) will be written.
(4) Implement constrained transport on unigrid. Initial strategy will be to use the FluxCT algorithm (with parabolic EMF reconstruction) as in HARM3D and the lower-order version as in the original HARM code. Future plans may involve adding alternate divergence constraint methods.
(5) Once all the basic routines are tested and working together, we will add a more sophisticated recovery procedure for dealing with instances where either the floor is penetrated, Con2Prim fails to converge to a physical solution, or a sudden and significant loss of energy/momentum/mass conservation occurs due to runaway recovery operations. From prior experience, this procedure will likely require an evolutionary style of development which will have to be tailored to the problem at hand.
(I.1)-(I.5) should be done without touching GRHydro's GRHD routines/capabilities.
Concrete steps in (II): (Need Erik's input as it they will require expertise on Carpet's data structures/interfaces that are not readily accessible to Cactus-at-large methods).
(1) Support for "refluxing", aka child-to-parent flux communication along refinement boundaries. This procedure requires interface to Carpet's data structures. refs: Berger & Colella 1989.
(2) Injection/restriction routine for communicating children EMF data to parent for parent's constrained transport method. This will likely require breaking down the FluxCT procedure into two parts: one that interpolates the face-centered fluxes to calculate the EMFs at the cell vertices, and one that uses the EMFs to calculate the constraint-preserving numerical fluxes. The restriction step will come in between these two steps, as it will modify the parent's EMFs before they are used to calculate the parent's final numerical fluxes. refs: Toth 2000, Balsara & Spicer 1999
(3) Adding a mask function that indicates whether a particular cell is covered by finer cells. This will be useful for adjusting the rigor with which we recover the variables (see I.5). For example, if a cell's updated conserved variables fail to yield a physical set of primitive variables and that cell has "children" then we can immediately skip (I.5) and wait for the restriction operation.
Hello Users,
On the telecon today we discussed briefly about plans for implementing MHD in GRHydro of the ET. We did not discuss our science goals for the ET collaboration regarding MHD, but RIT believes this an important topic to consider as we should all be driven by science achievements. Just as we have made plans for our first hydro-related science projects that we intend to publish together as a collaboration, we should also have a "magnetized" set of projects on which we all agree to collaborate.
Now, regarding details of the development: Christian showed interest in implementing the magnetized version of Con2Prim.c. Scott proposed using HARM3D (a three-dimensional MHD code written for "arbitrary" time-independent spacetimes)
Here, I'll list a few papers on my GRMHD code called HARM3D and online, GPL-licensed con2prim code.
2D "HARM" is described by: http://adsabs.harvard.edu/abs/2003ApJ...589..444G
HARM can be downloaded here: http://rainman.astro.illinois.edu/codelib/codes/harm/harm.tgz
and it's "con2prim" routine here which we call "pvs_grmhd": http://rainman.astro.illinois.edu/codelib/codes/pvs_grmhd/pvs_grmhd.tgz http://adsabs.harvard.edu/abs/2006ApJ...641..626N
I would recommend using my 3D version "HARM3D", which is described here: http://adsabs.harvard.edu/abs/2009ApJ...692..411N
HARM3D uses the basic algorithms as HARM, but adds a third spatial dimension, higher-order reconstruction and constrained transport methods (parabolic interpolators), and a more sophisticated recovery procedure when con2prim fails. It uses a slightly different formulation for the conserved variables, but it should be easy translate it into the Valencia formulation.
I have not made HARM3D freely available on the web yet, but I am willing to donate routines from it for open distribution through ET. The procedure we (at RIT) plan to follow is that a routine from HARM3D will be made compatible with ET, we will verify it functions properly, and then we will submit it to the development branch.
Aspects of the MHD code that---I think---can be easily "translated" to the GRHydro framework are:
1) con2prim 2) approximate Riemann solution for the HLL 3) constrained transport (with some labor to be spent adding support in GRHydro for additional flux functions) 4) recovery procedure (may require more effort)
One aspect that the maintainers may wish to consider is that the license for the "pvs_grmhd" asks users to cite two papers when one publishing results derived from it. Would this be agreeable with the collaboration?
And, if we end up using these routines from HARM3D, I, too, would appreciate citation, but acknowledge that I can't demand it as I'm donating it ala GPL.
Cheers,
Scott Noble
&
The RIT Team
I think the MHD plan is being discussed in emails but Scott also raised the issue of citations for the toolkit. We've been discussing different ideas for this and haven't come up with a good solution yet. For the whole toolkit we have the web page, and also plan to soon write a paper authored by all the contributors (http://einsteintoolkit.org/credits ... please write to me or the maintainers list if you think your name is missing, this list basically comes from the listed authors in the READMEs of the involved thorns) which could be cited. But we'ld also like suggestions of how to recommend the citation of different components as Scott alludes to in his mail (e.g. could add a web page listing a publication for each thorn and paper authors just choose what is appropriate?).
Obviously, we want to find some recommendation that properly credits those who have made intellectual contributions to the toolkit in designing the algorithms and software implementations so that people are encouraged to contribute, but it also needs to be practical and something that the general community finds fair and reasonable.
Any suggestions on this are very welcome!
Also, we're hoping to "release" the toolkit very soon once we resolve a few more failing testsuites, and would encourage anyone on this maillist who is not listed on the members page at http://einsteintoolkit.org/about/members/ to sign up at the link on that page so when we announce it we have a good set of members listed to hopefully encourage others to take part.
Thanks
Gabrielle
On Jun 7, 2010, at 2:34 PM, Scott Noble wrote:
Hello Users,
On the telecon today we discussed briefly about plans for implementing MHD in GRHydro of the ET. We did not discuss our science goals for the ET collaboration regarding MHD, but RIT believes this an important topic to consider as we should all be driven by science achievements. Just as we have made plans for our first hydro-related science projects that we intend to publish together as a collaboration, we should also have a "magnetized" set of projects on which we all agree to collaborate.
Now, regarding details of the development: Christian showed interest in implementing the magnetized version of Con2Prim.c. Scott proposed using HARM3D (a three-dimensional MHD code written for "arbitrary" time-independent spacetimes)
Here, I'll list a few papers on my GRMHD code called HARM3D and online, GPL-licensed con2prim code.
2D "HARM" is described by: http://adsabs.harvard.edu/abs/2003ApJ...589..444G
HARM can be downloaded here: http://rainman.astro.illinois.edu/codelib/codes/harm/harm.tgz
and it's "con2prim" routine here which we call "pvs_grmhd": http://rainman.astro.illinois.edu/codelib/codes/pvs_grmhd/pvs_grmhd.tgz http://adsabs.harvard.edu/abs/2006ApJ...641..626N
I would recommend using my 3D version "HARM3D", which is described here: http://adsabs.harvard.edu/abs/2009ApJ...692..411N
HARM3D uses the basic algorithms as HARM, but adds a third spatial dimension, higher-order reconstruction and constrained transport methods (parabolic interpolators), and a more sophisticated recovery procedure when con2prim fails. It uses a slightly different formulation for the conserved variables, but it should be easy translate it into the Valencia formulation.
I have not made HARM3D freely available on the web yet, but I am willing to donate routines from it for open distribution through ET. The procedure we (at RIT) plan to follow is that a routine from HARM3D will be made compatible with ET, we will verify it functions properly, and then we will submit it to the development branch.
Aspects of the MHD code that---I think---can be easily "translated" to the GRHydro framework are:
- con2prim
- approximate Riemann solution for the HLL
- constrained transport (with some labor to be spent adding support in GRHydro for additional flux functions)
- recovery procedure (may require more effort)
One aspect that the maintainers may wish to consider is that the license for the "pvs_grmhd" asks users to cite two papers when one publishing results derived from it. Would this be agreeable with the collaboration?
And, if we end up using these routines from HARM3D, I, too, would appreciate citation, but acknowledge that I can't demand it as I'm donating it ala GPL.
Cheers,
Scott Noble & The RIT Team
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users
users@lists.einsteintoolkit.org