From 686941dff486ef00c3cdd02cab8c7ddb4b354778 Mon Sep 17 00:00:00 2001 From: schnetter Date: Fri, 6 Aug 2004 08:00:39 +0000 Subject: 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 --- src/interpolate.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++ src/rotatingsymmetry180.c | 15 +--------- 2 files changed, 72 insertions(+), 14 deletions(-) (limited to 'src') 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; gi0); + 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); -- cgit v1.2.3