TmunuBase depends on Exact

Issue #2424 resolved
Roland Haas created an issue

In git hash 6199d71 "Fixing rdwr for Fortran" of einsteinbase TmunuBase gained lines in schedule.ccl that made it depend on Exact:

READS: admbase::alp(Everywhere), shift, metric
EADS: grid::x(Everywhere), y, z
EADS: exact::Exact_pars_real, decoded_exact_model
READS: admbase::shift_state(Everywhere)

Even though git hash 14291583 "Downgrade to warning" of cactus should have ensured that all such problems are warnings only, this ends up being reported as an error.

This error prevents compiling a thornlist that contains TmunuBase but not Exact, eg this one:

EinsteinBase/TmunuBase

CactusBase/CartGrid3D
CactusBase/CoordBase
CactusPUGH/PUGH
EinsteinBase/ADMBase
EinsteinBase/ADMCoupling
EinsteinBase/ADMMacros
EinsteinBase/StaticConformal

Note that depeendencies on ADMBase and Grid are ok since TmunuBase inherits from Grid and StaticConformal and the latter inherits from Grid.

The errors are:

------------------------------------------------------
Warnings were generated during execution of the CST
------------------------------------------------------


CST warning in /data/rhaas/postdoc/gr/cactus/ET_Turing/arrangements/EinsteinBase/ADMBase/schedule.ccl (at 276)
  -> Scheduling routine ADMBase_Boundaries from thorn ADMBase in non-existent group or timebin MoL_PostStep
     HINT: If this routine should be scheduled check the spelling of the group or timebin name. Note that scheduling IN must be used to schedule a routine to run in a thorn-defined schedule group, whereas scheduling AT is used for a usual timebin. (Schedule IN may also be used with the usual timebins, but in this case the full name of the bin must be used, e.g. CCTK_EVOL and not EVOL)


CST warning in /data/rhaas/postdoc/gr/cactus/ET_Turing/arrangements/EinsteinBase/ADMBase/schedule.ccl (at 287)
  -> Scheduling routine ApplyBCs from thorn ADMBase in non-existent group or timebin MoL_PostStep
     HINT: If this routine should be scheduled check the spelling of the group or timebin name. Note that scheduling IN must be used to schedule a routine to run in a thorn-defined schedule group, whereas scheduling AT is used for a usual timebin. (Schedule IN may also be used with the usual timebins, but in this case the full name of the bin must be used, e.g. CCTK_EVOL and not EVOL)


CST warning in /data/rhaas/postdoc/gr/cactus/ET_Turing/arrangements/EinsteinBase/ADMBase/schedule.ccl (at 323)
  -> Scheduling routine ADMBase_SetADMVars from thorn ADMBase in non-existent group or timebin MoL_PostStep
     HINT: If this routine should be scheduled check the spelling of the group or timebin name. Note that scheduling IN must be used to schedule a routine to run in a thorn-defined schedule group, whereas scheduling AT is used for a usual timebin. (Schedule IN may also be used with the usual timebins, but in this case the full name of the bin must be used, e.g. CCTK_EVOL and not EVOL)


CST warning in /data/rhaas/postdoc/gr/cactus/ET_Turing/arrangements/EinsteinBase/ADMBase/schedule.ccl (at 327)
  -> Scheduling routine ADMBase_SetADMVars from thorn ADMBase in non-existent group or timebin MoL_PseudoEvolution
     HINT: If this routine should be scheduled check the spelling of the group or timebin name. Note that scheduling IN must be used to schedule a routine to run in a thorn-defined schedule group, whereas scheduling AT is used for a usual timebin. (Schedule IN may also be used with the usual timebins, but in this case the full name of the bin must be used, e.g. CCTK_EVOL and not EVOL)


CST warning in /data/rhaas/postdoc/gr/cactus/ET_Turing/arrangements/CactusBase/CartGrid3D/schedule.ccl (at 17)
  -> Scheduling routine CartGrid3D_RegisterSymmetryBoundaries from thorn CartGrid3D in non-existent group or timebin SymmetryRegister
     HINT: If this routine should be scheduled check the spelling of the group or timebin name. Note that scheduling IN must be used to schedule a routine to run in a thorn-defined schedule group, whereas scheduling AT is used for a usual timebin. (Schedule IN may also be used with the usual timebins, but in this case the full name of the bin must be used, e.g. CCTK_EVOL and not EVOL)


CST warning in /data/rhaas/postdoc/gr/cactus/ET_Turing/arrangements/CactusBase/CartGrid3D/schedule.ccl (at 73)
  -> Scheduling routine CartGrid3D_ApplyBC from thorn CartGrid3D in non-existent group or timebin BoundaryConditions
     HINT: If this routine should be scheduled check the spelling of the group or timebin name. Note that scheduling IN must be used to schedule a routine to run in a thorn-defined schedule group, whereas scheduling AT is used for a usual timebin. (Schedule IN may also be used with the usual timebins, but in this case the full name of the bin must be used, e.g. CCTK_EVOL and not EVOL)


CST warning in /data/rhaas/postdoc/gr/cactus/ET_Turing/arrangements/EinsteinBase/TmunuBase/schedule.ccl (at 76)
  -> Scheduling routine SetTmunu from thorn TmunuBase in non-existent group or timebin MoL_PostStep
     HINT: If this routine should be scheduled check the spelling of the group or timebin name. Note that scheduling IN must be used to schedule a routine to run in a thorn-defined schedule group, whereas scheduling AT is used for a usual timebin. (Schedule IN may also be used with the usual timebins, but in this case the full name of the bin must be used, e.g. CCTK_EVOL and not EVOL)


CST error in /data/rhaas/postdoc/gr/cactus/ET_Turing/repos/flesh/lib/sbin/CreateScheduleBindings.pl (at 819)
  -> Schedule error: Thorn TmunuBase - group exact::Exact_pars_real doesn't exist.
     HINT: Check thorn TmunuBase inherits from implementation exact


CST error in /data/rhaas/postdoc/gr/cactus/ET_Turing/repos/flesh/lib/sbin/CreateScheduleBindings.pl (at 819)
  -> Schedule error: Thorn TmunuBase - group exact::decoded_exact_model doesn't exist.
     HINT: Check thorn TmunuBase inherits from implementation exact


CST error in /data/rhaas/postdoc/gr/cactus/ET_Turing/arrangements/EinsteinBase/TmunuBase/schedule.ccl (at 101)
  -> Error in TmunuBase_SetTmunu schedule. Check variable or group 'EXACT::decoded_exact_model' and verify correct implementation/thorn name and variable name.
     HINT: Is exact::decoded_exact_model a correctly declared variable?


CST error in /data/rhaas/postdoc/gr/cactus/ET_Turing/arrangements/EinsteinBase/TmunuBase/schedule.ccl (at 101)
  -> Error in TmunuBase_SetTmunu schedule. Check variable or group 'EXACT::exact_pars_real' and verify correct implementation/thorn name and variable name.
     HINT: Is exact::Exact_pars_real a correctly declared variable?

It does not seem correct to me that TmunuBase depends on Exact. This ideally would have been caught in review or in a maturation period in master, but unfortunately was not it seems.

Comments (4)

  1. Steven R. Brandt

    I believe this is what you are looking for.

    diff --git a/TmunuBase/schedule.ccl b/TmunuBase/schedule.ccl
    index 2686a0a..45d5df0 100644
    --- a/TmunuBase/schedule.ccl
    +++ b/TmunuBase/schedule.ccl
    @@ -90,16 +90,6 @@ if (stress_energy_storage)
         SCHEDULE TmunuBase_SetTmunu IN SetTmunu
         {
           LANG: Fortran
    -      WRITES: TMUNUBASE::stress_energy_scalar(everywhere)
    -      WRITES: TMUNUBASE::stress_energy_vector(everywhere)
    -      WRITES: TMUNUBASE::stress_energy_tensor(everywhere)
    -      WRITES: TMUNUBASE::stress_energy_2_scalar(everywhere)
    -      WRITES: TMUNUBASE::stress_energy_2_vector(everywhere)
    -      WRITES: TMUNUBASE::stress_energy_2_tensor(everywhere)
    -      READS: admbase::alp(Everywhere), admbase::shift(Everywhere), admbase::metric(Everywhere)
    -      READS: grid::x(Everywhere), grid::y(Everywhere), grid::z(Everywhere)
    -      READS: exact::Exact_pars_real, exact::decoded_exact_model
    -      READS: admbase::shift_state(Everywhere)
         } "Calculate the stress-energy tensor using the old CalcTmunu mechanism"
       }
       else
    diff --git a/TmunuBase/src/SetTmunu.F b/TmunuBase/src/SetTmunu.F
    index 1408d57..e75b14a 100644
    --- a/TmunuBase/src/SetTmunu.F
    +++ b/TmunuBase/src/SetTmunu.F
    @@ -11,7 +11,7 @@ c     Then make a copy of that into the T2munu variables.
    
           subroutine TmunuBase_SetTmunu (CCTK_ARGUMENTS)
           implicit none
    -      DECLARE_CCTK_ARGUMENTS_TmunuBase_SetTmunu
    +      DECLARE_CCTK_ARGUMENTS
           DECLARE_CCTK_FUNCTIONS
           DECLARE_CCTK_PARAMETERS
    

  2. Log in to comment