aboutsummaryrefslogtreecommitdiff
path: root/src/RadiationBoundary.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/RadiationBoundary.c')
-rw-r--r--src/RadiationBoundary.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/RadiationBoundary.c b/src/RadiationBoundary.c
index 47944d1..49fc1ef 100644
--- a/src/RadiationBoundary.c
+++ b/src/RadiationBoundary.c
@@ -74,7 +74,6 @@
#include "cctk_FortranString.h"
#include "cctk_Parameters.h"
-#include "Symmetry.h"
#include "Boundary.h"
/* #define DEBUG */
@@ -1477,11 +1476,14 @@ static int ApplyBndRadiative (const cGH *GH,
int i, gdim, indx;
int var_to, var_from;
int timelvl_from;
- SymmetryGHex *sGHex;
char coord_system_name[10];
CCTK_REAL dxyz[MAXDIM], rho[MAXDIM];
const CCTK_REAL *xyzr[MAXDIM+1];
int doBC[2*MAXDIM], widths[2*MAXDIM], offset[MAXDIM];
+ CCTK_INT symtable;
+ CCTK_INT symbnd[2*MAXDIM];
+ CCTK_INT is_physical[2*MAXDIM];
+ CCTK_INT ierr;
CCTK_REAL dtv, dtvh, dtvvar0, dtvvar0H;
void *to_ptr;
const void *from_ptr;
@@ -1573,8 +1575,15 @@ static int ApplyBndRadiative (const cGH *GH,
xyzr[MAXDIM] = GH->data[indx][0];
- /* see if we have a symmetry array */
- sGHex = CCTK_GHExtension (GH, "Symmetry");
+ /* see if we have a physical boundary */
+ symtable = SymmetryTableHandleForGrid (GH);
+ if (symtable < 0) CCTK_WARN (0, "internal error");
+ ierr = Util_TableGetIntArray (symtable, 2 * gdim, symbnd, "symmetry_handle");
+ if (ierr != 2 * gdim) CCTK_WARN (0, "internal error");
+ for (i = 0; i < 2 * gdim; i++)
+ {
+ is_physical[i] = symbnd[i] < 0;
+ }
/* now loop over all variables */
for (var_to = first_var_to, var_from = first_var_from;
@@ -1585,19 +1594,13 @@ static int ApplyBndRadiative (const cGH *GH,
from_ptr = GH->data[var_from][timelvl_from];
/* Apply condition if:
- + boundary is not a symmetry boundary
- (no symmetry or unset(=unsed))
+ boundary is a physical boundary
+ + boundary is an outer boundary
+ have enough grid points
*/
- memset (doBC, 1, sizeof (doBC));
- if (sGHex)
+ for (i = 0; i < 2 * MAXDIM; i++)
{
- for (i = 0; i < 2 * MAXDIM; i++)
- {
- doBC[i] = sGHex->GFSym[var_to][i] == GFSYM_NOSYM ||
- sGHex->GFSym[var_to][i] == GFSYM_UNSET;
- }
+ doBC[i] = is_physical[i];
}
for (i = 0; i < MAXDIM; i++)
{