CarpetX: a Cactus driver for the Einstein Toolkit based on AMReX
# Schedule definitions for thorn TwoPunctures

if (CCTK_Equals(initial_data, "twopunctures"))
{
  STORAGE: energy, angular_momentum, puncture_adm_mass, bare_mass

  if (keep_u_around) {
    STORAGE: puncture_u
  }

  SCHEDULE TwoPunctures_ParamCheck AT paramcheck
  {
    LANG: C
  } "Check parameters and thorn needs"

  SCHEDULE GROUP TwoPunctures_Group IN ADMBase_InitialData
  {
  } "TwoPunctures initial data group"

  SCHEDULE TwoPunctures IN TwoPunctures_Group
  {
    LANG: C
    STORAGE: puncture_u
    # TODO: these WRITES are conditional on parameters
    READS: Coordinates::vertex_coords(everywhere)
    WRITES: ADMBase::metric(everywhere)
    WRITES: ADMBase::curv(everywhere)
    WRITES: ADMBase::lapse(everywhere)
    WRITES: puncture_u(everywhere)
    WRITES: mp, mm, mp_adm, mm_adm, E, J1, J2, J3
  } "Create puncture black hole initial data"

  SCHEDULE TwoPunctures_Metadata IN TwoPunctures_Group AFTER TwoPunctures
  {
    LANG: C
    OPTIONS: global
    READS: mp, mm, mp_adm, mm_adm, E, J1, J2, J3
  } "Output TwoPunctures metadata"
}