aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/CopyBoundary.c10
-rw-r--r--src/FlatBoundary.c29
-rw-r--r--src/RadiationBoundary.c82
-rw-r--r--src/RobinBoundary.c45
-rw-r--r--src/RobinBoundaryWrappers.c360
-rw-r--r--src/ScalarBoundary.c21
6 files changed, 460 insertions, 87 deletions
diff --git a/src/CopyBoundary.c b/src/CopyBoundary.c
index 8a429a0..0f49b62 100644
--- a/src/CopyBoundary.c
+++ b/src/CopyBoundary.c
@@ -1,9 +1,10 @@
/*@@
- @file ScalarBoundary.c
+ @file CopyBoundary.c
@date Mon Mar 15 15:09:00 1999
@author Gerd Lanfermann, Gabrielle Allen
@desc
- Wrappers for calling routines for applying scalar boundary conditions
+ Wrappers for calling routines for applying copying-boudnary
+ conditions
@enddesc
@@*/
@@ -364,7 +365,10 @@ static int ApplyBndCopy(cGH *GH,
stencil,
GH->data[vi][timelevel],
GH->data[vi2][timelevel]); break;
- default : berr = -1; CCTK_WARN(1, "No BC for dim>3");
+ default : berr = -1;
+ CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
+ "ApplyBndCopy: No BC for dim>3: grid variables '%s'/'%s'",
+ CCTK_VarName(vi),CCTK_VarName(vi2));
}
berr = (berr>-1) ? 0 : -1;
}
diff --git a/src/FlatBoundary.c b/src/FlatBoundary.c
index dab27f2..fb8fb0f 100644
--- a/src/FlatBoundary.c
+++ b/src/FlatBoundary.c
@@ -225,7 +225,7 @@ void CCTK_FCALL CCTK_FNAME(BndFlatVN)
/*@@
@routine ApplyBndFlat
@date Jul 5 2000
- @author Gabrielle Allen
+ @author Gabrielle Allen, Gerd Lanfermann
@desc
Wrapper for setting up and calling flat boundary conditions
@enddesc
@@ -242,8 +242,8 @@ int ApplyBndFlat(cGH *GH,
{
int symmetry_handle; /* handle for the optional symmetry structure */
int vi, gi, dim;
- int idim;
- int berr,ierr;
+ int idim;
+ int berr=0,ierr=0;
int *doBC, *dstag, *lssh;
int timelevel; /* timelevel that condition applied on */
SymmetryGHex *sGHex;
@@ -270,6 +270,10 @@ int ApplyBndFlat(cGH *GH,
/* get the directional staggering of the group */
gi = CCTK_GroupIndexFromVarI(first_var);
ierr = CCTK_GroupStaggerDirArrayGI(dstag, dim, gi);
+ if (ierr<0) CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
+ "Cannot get stagger information for group '%s' (GF '$s')\n",
+ CCTK_GroupName(gi), CCTK_VarName(first_var));
+
/* get the current timelevel */
timelevel = CCTK_NumTimeLevelsFromVarI (first_var) - 1;
@@ -328,7 +332,10 @@ int ApplyBndFlat(cGH *GH,
lssh,
stencil,
GH->data[vi][timelevel]); break;
- default : berr = -1; CCTK_WARN(1, "ApplyBndFlat: No BC for dim>3");
+ default : berr = -1;
+ CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
+ "ApplyBndFlat: No BC for dim>3: grid variable '%s'",
+ CCTK_VarName(vi));
}
berr = (berr>-1) ? 0 : -1;
}
@@ -337,7 +344,7 @@ int ApplyBndFlat(cGH *GH,
free(doBC);
free(lssh);
- return(ierr);
+ return(berr);
}
@@ -390,8 +397,8 @@ int BndApplyFlat3Di(cGH *GH,
{
for (sw=0;sw<stencil[0];sw++)
{
- var[CCTK_GFINDEX3D(GH,GH->cctk_lsh[0]-sw-1,j,k)]
- = var[CCTK_GFINDEX3D(GH,GH->cctk_lsh[0]-stencil[0]-1,j,k)];
+ var[CCTK_GFINDEX3D(GH,lssh[0]-sw-1,j,k)]
+ = var[CCTK_GFINDEX3D(GH,lssh[0]-stencil[0]-1,j,k)];
}
}
}
@@ -422,8 +429,8 @@ int BndApplyFlat3Di(cGH *GH,
{
for (sw=0;sw<stencil[1];sw++)
{
- var[CCTK_GFINDEX3D(GH,i,GH->cctk_lsh[1]-sw-1,k)]
- = var[CCTK_GFINDEX3D(GH,i,GH->cctk_lsh[1]-stencil[1]-1,k)];
+ var[CCTK_GFINDEX3D(GH,i,lssh[1]-sw-1,k)]
+ = var[CCTK_GFINDEX3D(GH,i,lssh[1]-stencil[1]-1,k)];
}
}
}
@@ -454,8 +461,8 @@ int BndApplyFlat3Di(cGH *GH,
{
for (sw=0;sw<stencil[2];sw++)
{
- var[CCTK_GFINDEX3D(GH,i,j,GH->cctk_lsh[2]-sw-1)]
- = var[CCTK_GFINDEX3D(GH,i,j,GH->cctk_lsh[2]-stencil[2]-1)];
+ var[CCTK_GFINDEX3D(GH,i,j,lssh[2]-sw-1)]
+ = var[CCTK_GFINDEX3D(GH,i,j,lssh[2]-stencil[2]-1)];
}
}
}
diff --git a/src/RadiationBoundary.c b/src/RadiationBoundary.c
index 4ba041d..433634d 100644
--- a/src/RadiationBoundary.c
+++ b/src/RadiationBoundary.c
@@ -64,6 +64,19 @@ static int ApplyBndRadiative(cGH *GH,
******************** External Routines ************************
********************************************************************/
+/*@@
+ @routine BndRadiativeGI
+ @date Tue Jul 18 18:04:07 2000
+ @author Gerd Lanfermann
+ @desc
+ Aply radiative BC's by group index
+ @enddesc
+ @calls
+ @calledby
+ @history
+ @endhistory
+
+@@*/
int BndRadiativeGI(cGH *GH,
int *sw,
@@ -89,7 +102,18 @@ void CCTK_FCALL CCTK_FNAME(BndRadiativeGI)
*ierr = BndRadiativeGI(GH, sw, *var0, *v0, *gi, *gi_p);
}
+/*@@
+ @routine BndRadiativeGI
+ @date Tue Jul 18 18:04:07 2000
+ @author Gerd Lanfermann
+ @desc
+ Aply radiative BC's by group name @enddesc
+ @calls
+ @calledby
+ @history
+ @endhistory
+@@*/
int BndRadiativeGN(cGH *GH,
int *sw,
@@ -126,7 +150,19 @@ void CCTK_FCALL CCTK_FNAME(BndRadiativeGN)
return;
}
+/*@@
+ @routine BndRadiativeGI
+ @date Tue Jul 18 18:04:07 2000
+ @author Gerd Lanfermann
+ @desc
+ Apply radiative BC's by variable index
+ @enddesc
+ @calls
+ @calledby
+ @history
+ @endhistory
+@@*/
int BndRadiativeVI(cGH *GH,
int *sw,
@@ -146,6 +182,19 @@ void CCTK_FCALL CCTK_FNAME(BndRadiativeVI)
return;
}
+/*@@
+ @routine BndRadiativeGI
+ @date Tue Jul 18 18:04:07 2000
+ @author Gerd Lanfermann
+ @desc
+ Apply radiative BC's by variable name
+ @enddesc
+ @calls
+ @calledby
+ @history
+ @endhistory
+
+@@*/
int BndRadiativeVN(cGH *GH,
int *sw,
@@ -190,6 +239,19 @@ void CCTK_FCALL CCTK_FNAME(BndRadiativeVN)
/********************************************************************
********************* Local Routines *************************
********************************************************************/
+/*@@
+ @routine BndRadiativeGI
+ @date Tue Jul 18 18:04:07 2000
+ @author Gerd Lanfermann
+ @desc
+ Apply radiative BC's - internal routine
+ @enddesc
+ @calls
+ @calledby
+ @history
+ @endhistory
+
+@@*/
static int ApplyBndRadiative(cGH *GH,
int *sw,
@@ -245,7 +307,9 @@ static int ApplyBndRadiative(cGH *GH,
ri = CCTK_CoordIndex(-1,"r","spher3d");
break;
default:
- CCTK_WARN(2,"ApplyBndRadiative: Radiative boundary only for dim=3");
+ CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
+ "Radiative boundary only for dim=3: grid varible '%s'",
+ CCTK_VarName(var_current));
break;
}
@@ -313,13 +377,17 @@ static int ApplyBndRadiative(cGH *GH,
{
case 1:
berr = -1;
- CCTK_WARN(0,"ApplyBndRadiative: Radiative boundary conditions"
- "not implemented for dimension = 1");
+ CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
+ "ApplyBndRadiative: Radiative boundary conditions"
+ "not implemented for dimension = 1, grid variable '%s'",
+ CCTK_VarName(vi1));
break;
case 2:
berr = -1;
- CCTK_WARN(0,"ApplyBndRadiative: Radiative boundary conditions"
- "not implemented for dimension = 2");
+ CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
+ "ApplyBndRadiative: Radiative boundary conditions"
+ "not implemented for dimension = 2, grid variable '%s'",
+ CCTK_VarName(vi1));
break;
case 3:
/* According to the Cactus spec, the true dx and dt values for a
@@ -348,7 +416,9 @@ static int ApplyBndRadiative(cGH *GH,
break;
default :
berr=-1;
- CCTK_WARN(1, "ApplyBndRadiative: No Radiative BC for dim>3");
+ CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
+ "No Radiative BC for dim>3, grid variable '%s'",
+ CCTK_VarName(vi1));
}
berr=(berr<0)?-1:0;
}
diff --git a/src/RobinBoundary.c b/src/RobinBoundary.c
index b6f3267..bcecc4d 100644
--- a/src/RobinBoundary.c
+++ b/src/RobinBoundary.c
@@ -1,18 +1,40 @@
+ /*@@
+ @file RobinBoundary.c
+ @date Tue Jul 18 18:07:24 2000
+ @author Gerd Lanfermann
+ @desc
+ internal routines to apply 1d,2d,3d Robin
+ boundary conditions
+ @enddesc
+ @@*/
#include <math.h>
-
#include "cctk.h"
#include "cctk_Parameters.h"
-void BndApplyRobin3Di(cGH *GH,
- int gdim,
- int *sw,
- int *doBC,
- int *lsh,
- CCTK_REAL *var,
- CCTK_REAL *r,
- CCTK_REAL finf,
- CCTK_INT npow)
+/*@@
+ @routine BndApplyRobin3Di
+ @date Tue Jul 18 18:06:53 2000
+ @author Gerd Lanfermann
+ @desc
+ Apply 3d Robin Boundary condition - internal routine
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+
+int BndApplyRobin3Di(cGH *GH,
+ int *sw,
+ int *doBC,
+ int *lsh,
+ CCTK_REAL *var,
+ CCTK_REAL *r,
+ CCTK_REAL finf,
+ CCTK_INT npow)
{
int xgp1,xgp2,xgp3,xgp4;
@@ -53,7 +75,7 @@ void BndApplyRobin3Di(cGH *GH,
xgp4 = CCTK_GFINDEX3D(GH,lsh[0]-4,j,k);
var[xgp1] = finf + (
- pow(r[xgp3],npow)*( var[xgp4] - finf )
+ pow(r[xgp3],npow)*( var[xgp4] - finf )
-3.0*pow(r[xgp3],npow)*( var[xgp3] - finf )
+3.0*pow(r[xgp2],npow)*( var[xgp2] - finf )
)/pow(r[xgp1],npow);
@@ -134,4 +156,5 @@ void BndApplyRobin3Di(cGH *GH,
}
}
}
+ return(0);
}
diff --git a/src/RobinBoundaryWrappers.c b/src/RobinBoundaryWrappers.c
index 85cdb91..a4f3a3c 100644
--- a/src/RobinBoundaryWrappers.c
+++ b/src/RobinBoundaryWrappers.c
@@ -21,9 +21,7 @@
#include "BoundarySymmetries.h"
-
-void CCTKi_NotYetImplemented(const char *message);
-void BndApplyRobin3Di(cGH *GH,
+int BndApplyRobin3Di(cGH *GH,
int *sw,
int *doBC,
int *lsh,
@@ -32,71 +30,321 @@ void BndApplyRobin3Di(cGH *GH,
CCTK_REAL finf,
CCTK_INT npow);
+int ApplyBndRobin(cGH *GH,
+ int *sw,
+ CCTK_REAL finf,
+ CCTK_INT npow,
+ int first_var,
+ int num_vars);
+
+int BndRobinGI(cGH *GH,
+ int *stencil,
+ CCTK_REAL finf,
+ CCTK_INT npow,
+ int gi);
+
+int BndRobinGN(cGH *GH,
+ int *sw,
+ CCTK_REAL finf,
+ CCTK_INT npow,
+ const char *gn);
+
+int BndRobinVI(cGH *GH,
+ int *stencil,
+ CCTK_REAL finf,
+ CCTK_INT npow,
+ int vi);
+
+int BndRobinVN(cGH *GH,
+ int *stencil,
+ CCTK_REAL finf,
+ CCTK_INT npow,
+ const char *vn);
+
+
+/********************************************************************
+ ******************** External Routines ************************
+ ********************************************************************/
+
+/*@@
+ @routine BndRobinGI
+ @date Tue Jul 18 18:08:28 2000
+ @author Gerd Lanfermann
+ @desc
+ Apply Robin boundary condition by group index
+ @enddesc
+ @calls
+ @calledby
+ @history
+ @endhistory
+@@*/
+
+int BndRobinGI(cGH *GH,
+ int *stencil,
+ CCTK_REAL finf,
+ CCTK_INT npow,
+ int gi)
+{
+ int numvars, first_vi;
+
+ first_vi = CCTK_FirstVarIndexI(gi);
+ numvars = CCTK_NumVarsInGroupI(gi);
+
+ return ApplyBndRobin(GH,stencil,finf,npow,first_vi,numvars);
+}
+
+void CCTK_FCALL CCTK_FNAME(BndRobinGI)
+ (int *ierr, cGH *GH, int *stencil,
+ CCTK_REAL *finf, CCTK_INT *npow, int *gi)
+{
+ *ierr = BndRobinGI(GH,stencil, *finf, *npow, *gi);
+ return;
+}
+
+/*@@
+ @routine BndRobinGI
+ @date Tue Jul 18 18:08:28 2000
+ @author Gerd Lanfermann
+ @desc
+ Apply Robin boundary condition by group mame
+ @enddesc
+ @calls
+ @calledby
+ @history
+ @endhistory
+@@*/
+
+int BndRobinGN(cGH *GH,
+ int *sw,
+ CCTK_REAL finf,
+ CCTK_INT npow,
+ const char *gn)
+{
+ int retval;
+ int gi;
+ gi = CCTK_GroupIndex(gn);
+
+ if (gi>-1)
+ {
+ retval=BndRobinGI(GH, sw, finf, npow, gi);
+ }
+ else
+ {
+ CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
+ "BndFlatGN: Grid variable %s not found",gn);
+ retval=-1;
+ }
+ return retval;
+}
+
+void CCTK_FCALL CCTK_FNAME(BndRobinGN)
+ (int *ierr, cGH *GH, int *stencil,
+ CCTK_REAL *finf, CCTK_INT *npow, ONE_FORTSTRING_ARG)
+{
+ ONE_FORTSTRING_CREATE(gn)
+ *ierr = BndRobinVN(GH, stencil, *finf, *npow, gn);
+ free(gn);
+ return;
+}
+
+
+/*@@
+ @routine BndRobinGI
+ @date Tue Jul 18 18:08:28 2000
+ @author Gerd Lanfermann
+ @desc
+ Apply Robin boundary condition by variable index
+ @enddesc
+ @calls
+ @calledby
+ @history
+ @endhistory
+@@*/
+
+int BndRobinVI(cGH *GH,
+ int *stencil,
+ CCTK_REAL finf,
+ CCTK_INT npow,
+ int vi)
+{
+ return(ApplyBndRobin(GH, stencil, finf, npow, vi, 1));
+}
-int RobinBCVarI(cGH *GH,
- CCTK_REAL finf,
- CCTK_INT npow,
- int *sw, int vi)
+void CCTK_FCALL CCTK_FNAME(BndRobinVI)
+ (int *ierr, cGH *GH, int *stencil,
+ CCTK_REAL *finf, CCTK_INT *npow, int *vi)
+{
+ *ierr = BndRobinVI(GH, stencil, *finf, *npow, *vi);
+ return;
+}
+
+
+/*@@
+ @routine BndRobinGI
+ @date Tue Jul 18 18:08:28 2000
+ @author Gerd Lanfermann
+ @desc
+ Apply Robin boundary condition by variable index
+ @enddesc
+ @calls
+ @calledby
+ @history
+ @endhistory
+@@*/
+
+int BndRobinVN(cGH *GH,
+ int *stencil,
+ CCTK_REAL finf,
+ CCTK_INT npow,
+ const char *vn)
+{
+ int vi;
+ int retval;
+
+ vi = CCTK_VarIndex(vn);
+ if (vi>-1)
+ {
+ retval = BndRobinVI(GH, stencil, finf, npow, vi);
+ }
+ else
+ {
+ retval = -1;
+ CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
+ "BndRobinVN: Grid variable %s not found",vn);
+ }
+ return retval;
+}
+
+void CCTK_FCALL CCTK_FNAME(BndRobinVN)
+ (int *ierr, cGH *GH, int *stencil,
+ CCTK_REAL *finf, CCTK_INT *npow, ONE_FORTSTRING_ARG)
+{
+ ONE_FORTSTRING_CREATE(vn)
+ *ierr = BndRobinVN(GH, stencil, *finf, *npow, vn);
+ free(vn);
+ return;
+}
+
+/********************************************************************
+ ********************* Local Routines *************************
+ ********************************************************************/
+
+/*@@
+ @routine ApplyBndRobin
+ @date Tue Jul 18 18:08:28 2000
+ @author Gerd Lanfermann
+ @desc
+ Apply Robin boundary condition - internal routine
+ @enddesc
+ @calls
+ @calledby
+ @history
+ @endhistory
+@@*/
+
+int ApplyBndRobin(cGH *GH,
+ int *sw,
+ CCTK_REAL finf,
+ CCTK_INT npow,
+ int first_var,
+ int num_vars)
{
SymmetryGHex *sGHex;
- int doBC[6]; /* lower/upper BCs applied (1) not applied (0) */
- /* indexing as in bbox: 0 xlow, 1 xup, 2 ylow */
-
- int retval=0;
- int ri; /* index of the radial coordinate field */
-
- sGHex = (SymmetryGHex*)GH->extensions[CCTK_GHExtensionHandle("Symmetry")];
-
- /* Robin boundaries need radial coordinate */
- ri = CCTK_CoordIndex(-1,"r","spher3d");
+ int symmetry_handle; /* handle for the optional symmetry structure */
+ int *doBC; /* lower/upper BCs applied (1) not applied (0) */
+ /* indexing as in bbox: 0 xlow, 1 xup, 2 ylow */
+ int timelevel; /* timelevel that condition applied on */
+ int ri; /* index of the radial coordinate field */
+ int vi, dim, idim;
+ int berr=0;
- /* We only apply BCs to GFs */
- if (CCTK_GroupTypeFromVarI(vi) == GROUP_GF)
+ /* See if we have a symmetry array */
+ symmetry_handle = CCTK_GHExtensionHandle("Symmetry");
+ if (symmetry_handle < 0)
{
-
- /* Apply boundary condition if
+ sGHex = NULL;
+ }
+ else
+ {
+ sGHex = (SymmetryGHex*)GH->extensions[symmetry_handle];
+ }
+
+ /* Get group dimension */
+ dim = CCTK_GroupDimFromVarI(first_var);
+
+ /* allocate arrays */
+ doBC = (int *)malloc((2*dim)*sizeof(int));
+
+ /* get the current timelevel */
+ timelevel = CCTK_NumTimeLevelsFromVarI (first_var) - 1;
+ if (timelevel > 0)
+ timelevel--;
+
+ /* Apply boundary condition if
- grid boundary are not symmetries
- have a physical boundary
- have enough gridpoints
- */
- doBC[0]=(((sGHex->GFSym[vi][0]==GFSYM_NOSYM)||
- (sGHex->GFSym[vi][0]==GFSYM_UNSET)) &&
- GH->cctk_lsh[0]>1 && GH->cctk_bbox[0]);
- doBC[1]=(((sGHex->GFSym[vi][1]==GFSYM_NOSYM)||
- (sGHex->GFSym[vi][1]==GFSYM_UNSET)) &&
- GH->cctk_lsh[0]>1 && GH->cctk_bbox[1]);
- doBC[2]=(((sGHex->GFSym[vi][2]==GFSYM_NOSYM)||
- (sGHex->GFSym[vi][2]==GFSYM_UNSET)) &&
- GH->cctk_lsh[1]>1 && GH->cctk_bbox[2]);
- doBC[3]=(((sGHex->GFSym[vi][3]==GFSYM_NOSYM)||
- (sGHex->GFSym[vi][3]==GFSYM_UNSET)) &&
- GH->cctk_lsh[1]>1 && GH->cctk_bbox[3]);
- doBC[4]=(((sGHex->GFSym[vi][4]==GFSYM_NOSYM)||
- (sGHex->GFSym[vi][4]==GFSYM_UNSET)) &&
- GH->cctk_lsh[2]>1 && GH->cctk_bbox[4]);
- doBC[5]=(((sGHex->GFSym[vi][4]==GFSYM_NOSYM)||
- (sGHex->GFSym[vi][4]==GFSYM_UNSET)) &&
- GH->cctk_lsh[2]>1 && GH->cctk_bbox[5]);
-
- BndApplyRobin3Di(GH,
- sw,
- doBC,
- GH->cctk_lsh,
- GH->data[vi][0],
- GH->data[ri][0],
- finf,
- npow);
- }
- else
+ */
+ for (vi=first_var; vi<first_var+num_vars; vi++)
{
- CCTK_WARN(1,"You are trying to apply BC to something other than a GF ");
- retval = -1;
+ if (sGHex)
+ {
+ for (idim=0;idim<dim;idim++)
+ {
+ doBC[idim*2] = (((sGHex->GFSym[vi][idim*2]==GFSYM_NOSYM)||
+ (sGHex->GFSym[vi][idim*2]==GFSYM_UNSET)) &&
+ GH->cctk_lsh[idim]>1 && GH->cctk_bbox[idim*2]);
+ doBC[idim*2+1] = (((sGHex->GFSym[vi][idim*2+1]==GFSYM_NOSYM)||
+ (sGHex->GFSym[vi][idim*2+1]==GFSYM_UNSET)) &&
+ GH->cctk_lsh[idim]>1 && GH->cctk_bbox[idim*2+1]);
+ }
+ }
+ else
+ {
+ for (idim=0;idim<dim;idim++)
+ {
+ doBC[idim*2] = (GH->cctk_lsh[idim]>1 && GH->cctk_bbox[idim*2]);
+ doBC[idim*2+1] = (GH->cctk_lsh[idim]>1 && GH->cctk_bbox[idim*2+1]);
+ }
+ }
+
+ switch(dim)
+ {
+ case 3:/* Robin boundaries need radial coordinate */
+ ri = CCTK_CoordIndex(-1,"r","spher3d");
+ berr = BndApplyRobin3Di(GH,
+ sw,
+ doBC,
+ GH->cctk_lsh,
+ GH->data[vi][timelevel],
+ GH->data[ri][0],
+ finf,
+ npow); break;
+ default:
+ berr = -1; CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
+ "No Robin BC for Grid variables with dim.NE.3: %s",
+ CCTK_VarName(vi));
+ }
+ berr = (berr>-1) ? 0 : -1;
}
+
+ free(doBC);
- return retval;
+ return (berr);
}
+/********************************************************************
+ ********************* DEPRECATED: Beta 8 **********************
+ ********************************************************************/
+
+int RobinBCVarI(cGH *GH, CCTK_REAL finf, int npow, int *sw, int vi)
+{
+ return(BndRobinVI(GH,sw,finf,npow,vi));
+ CCTK_WARN(1,"RobinBCVarI going to be deprecated\n");
+}
+
+
void CCTK_FCALL CCTK_FNAME(RobinBCVarI)(int *ierr,
cGH *GH,
CCTK_REAL *finf,
@@ -146,7 +394,9 @@ int RobinBCGroupI(cGH *GH,
for (vi=0;vi<numVar;vi++)
{
rettmp = RobinBCVarI(GH, finf, npow, sw, firstVarI+vi);
- if (rettmp!=0) CCTK_WARN(1,"Robin BC: failed to apply BC for GF in group!");
+ if (rettmp!=0) CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
+ "Failed to apply Robin BC for GF : %s",
+ CCTK_VarName(vi));
retval = retval || rettmp;
}
return(retval);
diff --git a/src/ScalarBoundary.c b/src/ScalarBoundary.c
index b33a0fc..70309b9 100644
--- a/src/ScalarBoundary.c
+++ b/src/ScalarBoundary.c
@@ -249,6 +249,20 @@ void CCTK_FCALL CCTK_FNAME(BndScalarVN)
/********************************************************************
********************* Local Routines *************************
********************************************************************/
+ /*@@
+ @routine ApplyBndScalar
+ @date Tue Jul 18 18:10:33 2000
+ @author Gerd Lanfermann
+ @desc
+ Apply scalar boundary routine - internal routine
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
static int ApplyBndScalar(cGH *GH,
int *stencil,
@@ -358,7 +372,9 @@ static int ApplyBndScalar(cGH *GH,
break;
default :
berr = -1;
- CCTK_WARN(1, "No BC for dim>3");
+ CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
+ "No scalar boudnary for dim>3: grid variable '%s'",
+ CCTK_VarName(vi));
}
berr = (berr>-1) ? 0 : -1;
}
@@ -378,6 +394,7 @@ static int ApplyBndScalar(cGH *GH,
@author Gerd Lanfermann
@desc
Apply the constant boundary condition for 3d variables
+ -internal routine
@enddesc
@calls
@calledby BndScalarGI, BndScalarVI, BndScalarVN, BndScalarGN,
@@ -496,6 +513,7 @@ static int BndApplyScalar3Di(cGH *GH,
@author Gerd Lanfermann
@desc
Apply the constant boundary condition for 2d variables
+ -internal routine
@enddesc
@history
@@ -575,6 +593,7 @@ static int BndApplyScalar2Di(cGH *GH,
@author Gerd Lanfermann
@desc
Apply the constant boundary condition for 1d variables
+ -internal routine
@enddesc
@history