diff options
author | schnetter <schnetter@0b95e693-0e4f-0410-b80e-c7e9d0d71539> | 2004-07-28 11:21:09 +0000 |
---|---|---|
committer | schnetter <schnetter@0b95e693-0e4f-0410-b80e-c7e9d0d71539> | 2004-07-28 11:21:09 +0000 |
commit | b01644541021f4e7fdbfc9d0323a2bc007111785 (patch) | |
tree | ff1f0f3870088a33885bf80792b78548e0453148 /src/IDFileADM_ParamCheck.c | |
parent | a4ed801041fecbd4b89aaad943c5059297e4b5ab (diff) |
Also ensure that the extrinsic curvature is read in.
Also ensure that the conformal factor is read in when it is to be
used.
Set the conformal_state when the conformal factor is used.
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/IDFileADM/trunk@5 0b95e693-0e4f-0410-b80e-c7e9d0d71539
Diffstat (limited to 'src/IDFileADM_ParamCheck.c')
-rw-r--r-- | src/IDFileADM_ParamCheck.c | 74 |
1 files changed, 73 insertions, 1 deletions
diff --git a/src/IDFileADM_ParamCheck.c b/src/IDFileADM_ParamCheck.c index 40f9bab..04171f2 100644 --- a/src/IDFileADM_ParamCheck.c +++ b/src/IDFileADM_ParamCheck.c @@ -52,13 +52,29 @@ void IDFileADM_ParamCheck (CCTK_ARGUMENTS) } } - if (CCTK_EQUALS(initial_shift, "read from file")) { + if (CCTK_EQUALS(initial_data, "read from file")) { int const igxx = CCTK_VarIndex ("ADMBase::gxx"); int const igxy = CCTK_VarIndex ("ADMBase::gxy"); int const igxz = CCTK_VarIndex ("ADMBase::gxz"); int const igyy = CCTK_VarIndex ("ADMBase::gyy"); int const igyz = CCTK_VarIndex ("ADMBase::gyz"); int const igzz = CCTK_VarIndex ("ADMBase::gzz"); + int const ikxx = CCTK_VarIndex ("ADMBase::kxx"); + int const ikxy = CCTK_VarIndex ("ADMBase::kxy"); + int const ikxz = CCTK_VarIndex ("ADMBase::kxz"); + int const ikyy = CCTK_VarIndex ("ADMBase::kyy"); + int const ikyz = CCTK_VarIndex ("ADMBase::kyz"); + int const ikzz = CCTK_VarIndex ("ADMBase::kzz"); + int const ipsi = CCTK_VarIndex ("StaticConformal::psi"); + int const ipsix = CCTK_VarIndex ("StaticConformal::psix"); + int const ipsiy = CCTK_VarIndex ("StaticConformal::psiy"); + int const ipsiz = CCTK_VarIndex ("StaticConformal::psiz"); + int const ipsixx = CCTK_VarIndex ("StaticConformal::psixx"); + int const ipsixy = CCTK_VarIndex ("StaticConformal::psixy"); + int const ipsixz = CCTK_VarIndex ("StaticConformal::psixz"); + int const ipsiyy = CCTK_VarIndex ("StaticConformal::psiyy"); + int const ipsiyz = CCTK_VarIndex ("StaticConformal::psiyz"); + int const ipsizz = CCTK_VarIndex ("StaticConformal::psizz"); assert (igxx >= 0); assert (igxy >= 0); assert (igxz >= 0); @@ -73,6 +89,62 @@ void IDFileADM_ParamCheck (CCTK_ARGUMENTS) || ! variable_is_read[igzz]) { CCTK_PARAMWARN ("The metric is initialised using the file reader, but the group ADMBase::metric has not been scheduled to be read. Please set the parameter \"IO::filereader_ID_vars\" accordingly."); } + assert (ikxx >= 0); + assert (ikxy >= 0); + assert (ikxz >= 0); + assert (ikyy >= 0); + assert (ikyz >= 0); + assert (ikzz >= 0); + if (! variable_is_read[ikxx] + || ! variable_is_read[ikxy] + || ! variable_is_read[ikxz] + || ! variable_is_read[ikyy] + || ! variable_is_read[ikyz] + || ! variable_is_read[ikzz]) { + CCTK_PARAMWARN ("The metric is initialised using the file reader, but the group ADMBase::curv has not been scheduled to be read. Please set the parameter \"IO::filereader_ID_vars\" accordingly."); + } + if (CCTK_EQUALS (metric_type, "physical")) { + /* do nothing */ + } else if (CCTK_EQUALS (metric_type, "static conformal")) { + if (CCTK_EQUALS (conformal_storage, "factor")) { + assert (ipsi >= 0); + if (! variable_is_read[ipsi]) { + CCTK_PARAMWARN ("The metric is initialised using the file reader, and the metric_type is \"static conformal\", and the conformal_storage is \"factor\", but the group StaticConformal::confac has not been scheduled to be read. Please set the parameter \"IO::filereader_ID_vars\" accordingly."); + } + } else if (CCTK_EQUALS (conformal_storage, "factor+derivs")) { + assert (ipsi >= 0); + if (! variable_is_read[ipsi]) { + CCTK_PARAMWARN ("The metric is initialised using the file reader, and the metric_type is \"static conformal\", and the conformal_storage is \"factor+derivs\", but the group StaticConformal::confac has not been scheduled to be read. Please set the parameter \"IO::filereader_ID_vars\" accordingly."); + } + if (! variable_is_read[ipsix] + || ! variable_is_read[ipsiy] + || ! variable_is_read[ipsiz]) { + CCTK_PARAMWARN ("The metric is initialised using the file reader, and the metric_type is \"static conformal\", and the conformal_storage is \"factor+derivs\", but the group StaticConformal::confac_1derivs has not been scheduled to be read. Please set the parameter \"IO::filereader_ID_vars\" accordingly."); + } + } else if (CCTK_EQUALS (conformal_storage, "factor+derivs+2nd derivs")) { + assert (ipsi >= 0); + if (! variable_is_read[ipsi]) { + CCTK_PARAMWARN ("The metric is initialised using the file reader, and the metric_type is \"static conformal\", and the conformal_storage is \"factor+derivs+2nd derivs\", but the group StaticConformal::confac has not been scheduled to be read. Please set the parameter \"IO::filereader_ID_vars\" accordingly."); + } + if (! variable_is_read[ipsix] + || ! variable_is_read[ipsiy] + || ! variable_is_read[ipsiz]) { + CCTK_PARAMWARN ("The metric is initialised using the file reader, and the metric_type is \"static conformal\", and the conformal_storage is \"factor+derivs+2nd derivs\", but the group StaticConformal::confac_1derivs has not been scheduled to be read. Please set the parameter \"IO::filereader_ID_vars\" accordingly."); + } + if (! variable_is_read[ipsixx] + || ! variable_is_read[ipsixy] + || ! variable_is_read[ipsixz] + || ! variable_is_read[ipsiyy] + || ! variable_is_read[ipsiyz] + || ! variable_is_read[ipsizz]) { + CCTK_PARAMWARN ("The metric is initialised using the file reader, and the metric_type is \"static conformal\", and the conformal_storage is \"factor+derivs+2nd derivs\", but the group StaticConformal::confac_2derivs has not been scheduled to be read. Please set the parameter \"IO::filereader_ID_vars\" accordingly."); + } + } else { + CCTK_PARAMWARN ("Unknown conformal_storage type"); + } + } else { + CCTK_PARAMWARN ("Unknown metric type"); + } } free (variable_is_read); |