aboutsummaryrefslogtreecommitdiff
path: root/src/call_derivs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/call_derivs.c')
-rw-r--r--src/call_derivs.c48
1 files changed, 45 insertions, 3 deletions
diff --git a/src/call_derivs.c b/src/call_derivs.c
index c4a0fb8..a49930c 100644
--- a/src/call_derivs.c
+++ b/src/call_derivs.c
@@ -17,6 +17,9 @@ void DiffGv ( const CCTK_POINTER_TO_CONST cctkGH_, const CCTK_INT dir,
CCTK_REAL delta;
CCTK_INT ierr;
CCTK_INT lsh[3], bbox[6], bb[2], nghostzones[3];
+ CCTK_INT symtable, pen_sym_handle;
+ CCTK_INT symbnd[6];
+
int nelements;
void CCTK_FCALL CCTK_FNAME(deriv_gf_2_1)(const CCTK_REAL *var,
const CCTK_INT *ni,
@@ -123,22 +126,61 @@ void DiffGv ( const CCTK_POINTER_TO_CONST cctkGH_, const CCTK_INT dir,
loc_order = order;
}
+ symtable = SymmetryTableHandleForGrid (cctkGH);
+ if (symtable<0) {
+ CCTK_WARN(0,"symtable is out of bounds");
+ }
+
+ ierr = Util_TableGetIntArray (symtable, 6, symbnd, "symmetry_handle");
+ if (ierr!=6) {
+ CCTK_WARN(0,"Util_TableGetIntArray returned error");
+ }
+
+ pen_sym_handle = SymmetryHandleOfName ( "multipatch" );
+
switch(dir) {
case 0: {
delta = CCTK_DELTA_SPACE(0);
- bb[0] = cctk_bbox[0]; bb[1] = cctk_bbox[1];
+ if ( symbnd[0] == pen_sym_handle && cctk_bbox[0] == 1 ) {
+ bb[0] = 1;
+ } else {
+ bb[0] = 0;
+ }
+ if ( symbnd[1] == pen_sym_handle && cctk_bbox[1] == 1 ) {
+ bb[1] = 1;
+ } else {
+ bb[1] = 0;
+ }
gsize = cctk_nghostzones[0];
break;
}
case 1: {
delta = CCTK_DELTA_SPACE(1);
- bb[0] = cctk_bbox[2]; bb[1] = cctk_bbox[3];
+ if ( symbnd[2] == pen_sym_handle && cctk_bbox[2] == 1) {
+ bb[0] = 1;
+ } else {
+ bb[0] = 0;
+ }
+ if ( symbnd[3] == pen_sym_handle && cctk_bbox[3] == 1) {
+ bb[1] = 1;
+ } else {
+ bb[1] = 0;
+ }
gsize = cctk_nghostzones[1];
break;
}
case 2: {
delta = CCTK_DELTA_SPACE(2);
- bb[0] = cctk_bbox[4]; bb[1] = cctk_bbox[5];
+ if ( symbnd[4] == pen_sym_handle && cctk_bbox[4] == 1) {
+ bb[0] = 1;
+ } else {
+ bb[0] = 0;
+ }
+ if ( symbnd[4] == pen_sym_handle && cctk_bbox[5] == 1) {
+ bb[1] = 1;
+ } else {
+ bb[1] = 0;
+ }
gsize = cctk_nghostzones[2];
break;
}