aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorschnetter <schnetter@20f44201-0f4f-0410-9130-e5fc2714a787>2004-08-06 08:00:39 +0000
committerschnetter <schnetter@20f44201-0f4f-0410-9130-e5fc2714a787>2004-08-06 08:00:39 +0000
commit686941dff486ef00c3cdd02cab8c7ddb4b354778 (patch)
tree19272f1ea5ab4d23757aa3536a248b73ca10a322 /src
parentc980085da9ec9afdbd939b0044f48c2e77db4286 (diff)
Check tensor type aliases at paramcheck time, and be less verbose at
run time. git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/RotatingSymmetry180/trunk@13 20f44201-0f4f-0410-9130-e5fc2714a787
Diffstat (limited to 'src')
-rw-r--r--src/interpolate.c71
-rw-r--r--src/rotatingsymmetry180.c15
2 files changed, 72 insertions, 14 deletions
diff --git a/src/interpolate.c b/src/interpolate.c
index f48aa1d..bb5a286 100644
--- a/src/interpolate.c
+++ b/src/interpolate.c
@@ -14,6 +14,77 @@
+void
+Rot180_CheckTensorTypes (CCTK_ARGUMENTS)
+{
+ int gi;
+
+ /* Check tensor types of all groups */
+ for (gi=0; gi<CCTK_NumGroups(); ++gi) {
+
+ char tensortypealias[100];
+ int numvars, firstvar;
+ int table;
+ int ierr;
+
+ numvars = CCTK_NumVarsInGroupI(gi);
+ assert (numvars>0);
+ firstvar = CCTK_FirstVarIndexI(gi);
+ assert (firstvar>=0);
+ table = CCTK_GroupTagsTableI(gi);
+ assert (table>=0);
+
+ ierr = Util_TableGetString
+ (table, sizeof tensortypealias, tensortypealias, "tensortypealias");
+ if (ierr == UTIL_ERROR_TABLE_NO_SUCH_KEY) {
+ char * groupname = CCTK_GroupName(gi);
+ assert (groupname);
+ CCTK_VWarn (2, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "Tensor type alias not declared for group \"%s\" -- assuming a scalar",
+ groupname);
+ free (groupname);
+ strcpy (tensortypealias, "");
+ } else if (ierr<0) {
+ char * groupname = CCTK_GroupName(gi);
+ assert (groupname);
+ CCTK_VWarn (0, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "Error in tensor type alias declaration for group \"%s\"",
+ groupname);
+ free (groupname);
+ }
+
+ if (CCTK_EQUALS (tensortypealias, "")) {
+ /* do nothing */
+ } else if (CCTK_EQUALS (tensortypealias, "scalar")) {
+ /* scalar */
+ if (numvars != 1) {
+ char * groupname = CCTK_GroupName(gi);
+ assert (groupname);
+ CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "Group \"%s\" has the tensor type alias \"scalar\", but contains more than 1 element",
+ groupname);
+ free (groupname);
+ }
+ } else if (CCTK_EQUALS (tensortypealias, "u")) {
+ /* vector */
+ assert (numvars == 3);
+ } else if (CCTK_EQUALS (tensortypealias, "dd_sym")) {
+ /* symmetric tensor */
+ assert (numvars == 6);
+ } else {
+ char * groupname = CCTK_GroupName(gi);
+ assert (groupname);
+ CCTK_VWarn (0, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "Illegal tensor type alias for group \"%s\"",
+ groupname);
+ free (groupname);
+ }
+
+ }
+}
+
+
+
/* Symmetry interpolation */
CCTK_INT
Rot180_SymmetryInterpolate (CCTK_POINTER_TO_CONST const cctkGH_,
diff --git a/src/rotatingsymmetry180.c b/src/rotatingsymmetry180.c
index c26c576..acc1848 100644
--- a/src/rotatingsymmetry180.c
+++ b/src/rotatingsymmetry180.c
@@ -105,12 +105,7 @@ int BndRot180VI (cGH const * restrict const cctkGH,
ierr = Util_TableGetString
(table, sizeof tensortypealias, tensortypealias, "tensortypealias");
if (ierr == UTIL_ERROR_TABLE_NO_SUCH_KEY) {
- char * groupname = CCTK_GroupName(gi);
- assert (groupname);
- CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
- "Tensor type alias not declared for group \"%s\" -- assuming a scalar",
- groupname);
- free (groupname);
+ /* assume a scalar */
strcpy (tensortypealias, "scalar");
} else if (ierr<0) {
char * groupname = CCTK_GroupName(gi);
@@ -122,14 +117,6 @@ int BndRot180VI (cGH const * restrict const cctkGH,
}
if (CCTK_EQUALS (tensortypealias, "scalar")) {
- if (numvars != 1) {
- char * groupname = CCTK_GroupName(gi);
- assert (groupname);
- CCTK_VWarn (2, __LINE__, __FILE__, CCTK_THORNSTRING,
- "Group \"%s\" has the tensor type alias \"scalar\", but contains more than 1 element",
- groupname);
- free (groupname);
- }
parities[0] = parities[1] = parities[2] = +1;
} else if (CCTK_EQUALS (tensortypealias, "u")) {
assert (numvars == 3);