/*@@ @file ParamCheck.c @date Fri Apr 26 11:40:36 2002 @author Tom Goodale @desc Parameter checking stuff for ADMConstraints @enddesc @version $Header$ @@*/ #include "cctk.h" #include "cctk_Arguments.h" #include "cctk_Parameters.h" static const char *rcsid = "$Header$"; CCTK_FILEVERSION(CactusEinstein_ADMConstraints_ParamCheck_c) /******************************************************************** ********************* Local Data Types *********************** ********************************************************************/ /******************************************************************** ********************* Local Routine Prototypes ********************* ********************************************************************/ /******************************************************************** ***************** Scheduled Routine Prototypes ********************* ********************************************************************/ void ADMConstraints_ParamCheck(CCTK_ARGUMENTS); void ADMConstraints_ConformalCheck(CCTK_ARGUMENTS); /******************************************************************** ********************* Other Routine Prototypes ********************* ********************************************************************/ /******************************************************************** ********************* Local Data ***************************** ********************************************************************/ /******************************************************************** ********************* External Routines ********************** ********************************************************************/ /*@@ @routine ADMConstraints_ParamCheck @date Fri Apr 26 11:40:36 2002 @author Tom Goodale @desc Scheduled routine to detect invalid parameter settings. @enddesc @calls @calledby @history @endhistory @@*/ void ADMConstraints_ParamCheck(CCTK_ARGUMENTS) { DECLARE_CCTK_ARGUMENTS; DECLARE_CCTK_PARAMETERS; if(! CCTK_EQUALS(metric_type, "physical") && ! CCTK_EQUALS(metric_type, "static conformal")) { CCTK_PARAMWARN("Unknown ADMBase::metric_type - known types are \"physical\" and \"static conformal\""); } if(CCTK_EQUALS(metric_type, "static conformal") && ! CCTK_EQUALS(conformal_storage, "factor+derivs+2nd derivs")) { CCTK_PARAMWARN("ADMConstraints can currently only work with a physical metric or a static conformal metric with second derivatives"); } } /*@@ @routine ADMConstraints_ConformalCheck @date Fri Apr 26 11:40:36 2002 @author Tom Goodale @desc Check that the initial data has setup enough derivatives. @enddesc @calls @calledby @history @endhistory @@*/ void ADMConstraints_ConformalCheck(CCTK_ARGUMENTS) { DECLARE_CCTK_ARGUMENTS; DECLARE_CCTK_PARAMETERS; if(CCTK_EQUALS(metric_type, "physical")) { /* Use this internally so we don't need to check the parameter again. */ *conformal_state = 0; } else if(CCTK_EQUALS(metric_type, "static conformal")) { if(*conformal_state < 3) { CCTK_WARN(0, "ADMConstraints needs second derivatives of the conformal factor when running with a static conformal metric"); } } } /******************************************************************** ********************* Local Routines ************************* ********************************************************************/