aboutsummaryrefslogtreecommitdiff
path: root/src/IDFileADM_ParamCheck.c
diff options
context:
space:
mode:
authorschnetter <schnetter@0b95e693-0e4f-0410-b80e-c7e9d0d71539>2004-07-28 11:21:09 +0000
committerschnetter <schnetter@0b95e693-0e4f-0410-b80e-c7e9d0d71539>2004-07-28 11:21:09 +0000
commitb01644541021f4e7fdbfc9d0323a2bc007111785 (patch)
treeff1f0f3870088a33885bf80792b78548e0453148 /src/IDFileADM_ParamCheck.c
parenta4ed801041fecbd4b89aaad943c5059297e4b5ab (diff)
Correct error when checking the initial data.HEADsvnmaster
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.c74
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);