diff options
Diffstat (limited to 'src/ParamCheck.c')
-rw-r--r-- | src/ParamCheck.c | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/src/ParamCheck.c b/src/ParamCheck.c new file mode 100644 index 0000000..45c15e9 --- /dev/null +++ b/src/ParamCheck.c @@ -0,0 +1,115 @@ + /*@@ + @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 ************************* + ********************************************************************/ |