diff options
author | lanfer <lanfer@6a38eb6e-646e-4a02-a296-d141613ad6c4> | 2000-07-18 16:56:01 +0000 |
---|---|---|
committer | lanfer <lanfer@6a38eb6e-646e-4a02-a296-d141613ad6c4> | 2000-07-18 16:56:01 +0000 |
commit | 779e0b79c1af4f3a1e1e66164dc3d539fd1869bc (patch) | |
tree | 6c02e97f5918d8cf28440ff4e75092b840c007ea /src/FlatBoundary.c | |
parent | d992df596dc3b32814edc22c96c51e588911bd2f (diff) |
Boundary routines:
reworked Robin to have conformal calling interfaces
fixed two bugs: the more interresting one: coordinates do not have timelevels.
Replaced most CCTK_WARNS with CCTK_VWarns to be more informative.
gerd
git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/Boundary/trunk@115 6a38eb6e-646e-4a02-a296-d141613ad6c4
Diffstat (limited to 'src/FlatBoundary.c')
-rw-r--r-- | src/FlatBoundary.c | 29 |
1 files changed, 18 insertions, 11 deletions
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)]; } } } |