aboutsummaryrefslogtreecommitdiff
path: root/src/setup_epsdis.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/setup_epsdis.c')
-rw-r--r--src/setup_epsdis.c76
1 files changed, 56 insertions, 20 deletions
diff --git a/src/setup_epsdis.c b/src/setup_epsdis.c
index 6239e6c..b17b8cc 100644
--- a/src/setup_epsdis.c
+++ b/src/setup_epsdis.c
@@ -22,7 +22,7 @@ setup_epsdis (CCTK_ARGUMENTS)
DECLARE_CCTK_PARAMETERS;
int ni,nj,nk;
- int i,j,k,s;
+ int i,j,k,s,l,m;
int index,indexP;
int ierr;
int npts;
@@ -178,14 +178,32 @@ setup_epsdis (CCTK_ARGUMENTS)
zmax=odz+maxrad;
npts=0;
- for (i=0;i<ni*nj*nk;i++) {
- if ( x[i]<=xmax&&x[i]>=xmin
- &&y[i]<=ymax&&y[i]>=ymin
- &&z[i]<=zmax&&z[i]>=zmin)
- {
- npts++;
+ for (i=2;i<ni-2;i++)
+ for (j=2;j<nj-2;j++)
+ for (k=2;k<nk-2;k++) {
+ m=CCTK_GFINDEX3D(cctkGH,i,j,k);
+ if (( x[m]<=xmax&&x[m]>=xmin
+ &&y[m]<=ymax&&y[m]>=ymin
+ &&z[m]<=zmax&&z[m]>=zmin) &&
+ (!respect_emask || (
+ (emask[CCTK_GFINDEX3D(cctkGH,i-1,j,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i-2,j,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i+1,j,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i+2,j,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j-1,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j-2,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j+1,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j+2,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j,k-1)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j,k-2)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j,k+1)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j,k+2)]>0.4)
+ ))
+ )
+ {
+ npts++;
+ }
}
- }
xa=(CCTK_REAL *) malloc(npts*sizeof(CCTK_REAL));
ya=(CCTK_REAL *) malloc(npts*sizeof(CCTK_REAL));
@@ -198,19 +216,37 @@ setup_epsdis (CCTK_ARGUMENTS)
inds[i]=0;
}
- j=0;
- for (i=0;i<ni*nj*nk;i++) {
- if ( x[i]<=xmax&&x[i]>=xmin
- &&y[i]<=ymax&&y[i]>=ymin
- &&z[i]<=zmax&&z[i]>=zmin)
- {
- xa[j]=x[i];
- ya[j]=y[i];
- za[j]=z[i];
- inds[j]=i;
- j++;
+ l=0;
+ for (i=2;i<ni-2;i++)
+ for (j=2;j<nj-2;j++)
+ for (k=2;k<nk-2;k++) {
+ m=CCTK_GFINDEX3D(cctkGH,i,j,k);
+ if (( x[m]<=xmax&&x[m]>=xmin
+ &&y[m]<=ymax&&y[m]>=ymin
+ &&z[m]<=zmax&&z[m]>=zmin) &&
+ (!respect_emask || (
+ (emask[CCTK_GFINDEX3D(cctkGH,i-1,j,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i-2,j,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i+1,j,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i+2,j,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j-1,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j-2,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j+1,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j+2,k)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j,k-1)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j,k-2)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j,k+1)]>0.4) &&
+ (emask[CCTK_GFINDEX3D(cctkGH,i,j,k+2)]>0.4)
+ ))
+ )
+ {
+ xa[l]=x[m];
+ ya[l]=y[m];
+ za[l]=z[m];
+ inds[l]=m;
+ l++;
+ }
}
- }
ierr=HorizonRadiusInDirection(horizon_number[s],
npts,