This merge request adds a new function pointer, SetADMVariables, to the ADM class. By default it uses ADM::SetADMVariablesToKerrSchild, which uses the existing Kerr-Schild infrastructure. By setting coord/minkowski = true in the parameter file, this reverts to flat Minkowski space as it would for anything else using the Kerr-Schild functions. This has the added benefit that many of the shared pgens using Minkowski or Kerr-Schild coordinates are cleaned up and replaced with a single call to padm->SetADMVariables() instead.
This API is intended to fix #600. When AMR is enabled, SetADMVariables is called at the end of MeshRefinement::RedistAndRefineMeshBlocks, which means that the ADM metric will be completely defined everywhere on the new grid, allowing AMR evolution with DynGRMHD without needing to enable Z4c as well. Other metrics can be defined by pointing SetADMVariables to a different function; it should be a void function that takes the MeshBlockPack as a single argument.
An additional task has been added to the DynGRMHD task list to allow for dynamical ADM evolution, and examples are contained in an extension to the blast pgen with an FLRW metric and the new dynbbh pgen, which superposes two Kerr-Schild black holes and moves them along a circular orbit. Dynamical evolution in the task list can be enabled with adm/is_dynamic = true.
Draft to-do list:
[ ] Update TOV pgen to use SetADMVariables. This probably needs to be postponed and done as part of the TOV refactor.
[x] Check that all pgens compile and work as intended.
This merge request adds a new function pointer,
SetADMVariables
, to theADM
class. By default it usesADM::SetADMVariablesToKerrSchild
, which uses the existing Kerr-Schild infrastructure. By settingcoord/minkowski = true
in the parameter file, this reverts to flat Minkowski space as it would for anything else using the Kerr-Schild functions. This has the added benefit that many of the shared pgens using Minkowski or Kerr-Schild coordinates are cleaned up and replaced with a single call topadm->SetADMVariables()
instead.This API is intended to fix #600. When AMR is enabled,
SetADMVariables
is called at the end ofMeshRefinement::RedistAndRefineMeshBlocks
, which means that the ADM metric will be completely defined everywhere on the new grid, allowing AMR evolution withDynGRMHD
without needing to enable Z4c as well. Other metrics can be defined by pointingSetADMVariables
to a different function; it should be a void function that takes theMeshBlockPack
as a single argument.An additional task has been added to the
DynGRMHD
task list to allow for dynamical ADM evolution, and examples are contained in an extension to theblast
pgen with an FLRW metric and the newdynbbh
pgen, which superposes two Kerr-Schild black holes and moves them along a circular orbit. Dynamical evolution in the task list can be enabled withadm/is_dynamic = true
.Draft to-do list:
Update TOV pgen to useThis probably needs to be postponed and done as part of the TOV refactor.SetADMVariables
.