Difference between revisions of "MHD development"

From Einstein Toolkit Documentation
Jump to: navigation, search
(add con2prim topic)
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
= MHD Development Agenda =
+
= MHD Discussions/Agenda =
  
List of Potential Topics
+
* ''Pre-Release Points: Need a publishable version of MHD used for the paper''
* Vector Potential implementation
+
** Need some addressing of Con2Prim for GRMHD pushed
* Combining constraint transport and divergence cleaning
+
** Test cases from MHD paper examples (~0.5-1.5 minutes tops)
* Divergence cleaning and mesh refinement
+
** What place can we store SmoothedPuncture (Turduckening) function?
 +
* ''Paper updates and progress''
 +
* Issues with current MHD methods
 +
** Con2Prim failures (GRHydro/GRMHD)
 +
*** Save initial state in all Con2Prim routines, check results before overwriting
 +
*** Pass ideal & acceptable tolerances, have end C2P tolerance GF
 +
*** Hacks: if failures within horizon, just use initial prims and run prim2con
 +
** Divergence cleaning and mesh refinement
 +
** Combining constraint transport and divergence cleaning
 +
* New methods
 +
** Con2Prim Inversion -- Force-free
 +
** Vector Potential implementation
  
= Vector Potential =
+
== Con2Prim Inverter ==
  
Evolving the vector potential allows for better conservation across refinement level boundaries and better control of the B-field divergence. Evolving the vector potential is also better behaved surrounding puncture BHs. As this feature changes one of the base evolved variables with a non-local connection to the variables currently used in pointwise MHD routines, though, an efficient toggle system to switch evolution schemes could use further discussion.
+
* add code to transition into force-free inversion (no force free evolution) if magnetic pressure starts to dominate gas pressure (done in SpEC, seems robust)
 +
 
 +
== Vector Potential ==
 +
 
 +
Evolving the vector potential allows for better control of the B-field divergence and better behavior around a puncture. Evolving the vector potential is also better behaved surrounding puncture BHs.
  
 
=== Current State ===
 
=== Current State ===
  
This was partially implemented in the last development workshop, though this has been removed again from the development version. We had agreed to implement the algebraic gauge first, but ultimately need the Lorenz gauge. Initial implementation had been of cell-centered vector potential, though we should now be able to support staggered grid vector potential.
+
This was partially implemented in the last development workshop, but removed again within the last year. Initial implementation had been of cell-centered vector potential, though we should now be able to support staggered grid vector potential.
  
=== Matters to Discuss ===
+
The basic functions, scheduling, storage, and interface are ready to be committed. The remaining work is the brunt of the bookkeeping and physics. The work to be partitioned out is detailed below.
  
* Staggered vs unstaggered A^i
+
References: [http://arxiv.org/abs/1110.4633 arXiv:1110.4633] for Lorenz gauge and [http://arxiv.org/abs/1007.2848 arXiv:1007.2848] for Algebraic gauge
* Prolongation operators given the location on the cell ( for staggered A only )
+
 
* Scheduling for reconstructing B from the vector potential
+
Basic organizational ideas for implementation:
 +
* A^\mu should live in HydroBase so initial data doesn't have to depend on GRHydro. Currently must live in GRHydro in order to keep development separate within Zelmani pre-release.
 +
* Allow HydroBase::initial_bvec to be "from Avec". Currently provided by GRHydro. Since it depends on where A resides on the cell, may want to keep this within GRHydro.
  
 
=== Coding Tasks ===
 
=== Coding Tasks ===
  
As this workshop will take place during the pre-release phase, this development should take place in Zelmani.
+
As this workshop will take place during the pre-release phase, this development should take place in Zelmani.  
  
* Storage and evolution (simpler now that E^i has been implemented and tested for the constraint transport)
+
* Source terms for A -- Use B^i from appropriate locations for A_i to be located as expected
* B-field construction from A^mu
+
* Conversion from (Aphi,A_i) -> Bvec
* Initial Prim2Con support for A^mu
+
* Riemannsolver -- Support for A^mu (Lorenz gauge) or verified no-flux for algebraic gauge
* Reconstruction support for A^mu
+
* New prolongation operator for A_i
* Riemannsolver support for A^mu
 
* Recovery point-wise support for A^mu
 
 
 
= Con2Prim Inverter =
 
 
 
* add code to transition into force-free inversion (no force free evolution) if magnetic pressure starts to dominate gas pressure (done in SpEC, seems robust)
 

Latest revision as of 21:33, 24 October 2012

MHD Discussions/Agenda

  • Pre-Release Points: Need a publishable version of MHD used for the paper
    • Need some addressing of Con2Prim for GRMHD pushed
    • Test cases from MHD paper examples (~0.5-1.5 minutes tops)
    • What place can we store SmoothedPuncture (Turduckening) function?
  • Paper updates and progress
  • Issues with current MHD methods
    • Con2Prim failures (GRHydro/GRMHD)
      • Save initial state in all Con2Prim routines, check results before overwriting
      • Pass ideal & acceptable tolerances, have end C2P tolerance GF
      • Hacks: if failures within horizon, just use initial prims and run prim2con
    • Divergence cleaning and mesh refinement
    • Combining constraint transport and divergence cleaning
  • New methods
    • Con2Prim Inversion -- Force-free
    • Vector Potential implementation

Con2Prim Inverter

  • add code to transition into force-free inversion (no force free evolution) if magnetic pressure starts to dominate gas pressure (done in SpEC, seems robust)

Vector Potential

Evolving the vector potential allows for better control of the B-field divergence and better behavior around a puncture. Evolving the vector potential is also better behaved surrounding puncture BHs.

Current State

This was partially implemented in the last development workshop, but removed again within the last year. Initial implementation had been of cell-centered vector potential, though we should now be able to support staggered grid vector potential.

The basic functions, scheduling, storage, and interface are ready to be committed. The remaining work is the brunt of the bookkeeping and physics. The work to be partitioned out is detailed below.

References: arXiv:1110.4633 for Lorenz gauge and arXiv:1007.2848 for Algebraic gauge

Basic organizational ideas for implementation:

  • A^\mu should live in HydroBase so initial data doesn't have to depend on GRHydro. Currently must live in GRHydro in order to keep development separate within Zelmani pre-release.
  • Allow HydroBase::initial_bvec to be "from Avec". Currently provided by GRHydro. Since it depends on where A resides on the cell, may want to keep this within GRHydro.

Coding Tasks

As this workshop will take place during the pre-release phase, this development should take place in Zelmani.

  • Source terms for A -- Use B^i from appropriate locations for A_i to be located as expected
  • Conversion from (Aphi,A_i) -> Bvec
  • Riemannsolver -- Support for A^mu (Lorenz gauge) or verified no-flux for algebraic gauge
  • New prolongation operator for A_i