aboutsummaryrefslogtreecommitdiff
path: root/src/RadiationBoundary.c
diff options
context:
space:
mode:
authorgoodale <goodale@6a38eb6e-646e-4a02-a296-d141613ad6c4>2000-04-19 22:53:17 +0000
committergoodale <goodale@6a38eb6e-646e-4a02-a296-d141613ad6c4>2000-04-19 22:53:17 +0000
commitb55d9d77a52341cba41b71b57d09c0e111fe9774 (patch)
treea78d1b3ee10520139770a605c032ed237a8c4bbf /src/RadiationBoundary.c
parentbf12d48d7fb189abaa11b3d5b62df14ae1be1692 (diff)
Removing extraneous ; .
Tom git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/Boundary/trunk@103 6a38eb6e-646e-4a02-a296-d141613ad6c4
Diffstat (limited to 'src/RadiationBoundary.c')
-rw-r--r--src/RadiationBoundary.c139
1 files changed, 90 insertions, 49 deletions
diff --git a/src/RadiationBoundary.c b/src/RadiationBoundary.c
index bab18a7..f4610d6 100644
--- a/src/RadiationBoundary.c
+++ b/src/RadiationBoundary.c
@@ -106,6 +106,18 @@ int BndApplyRadiative3Di(cGH *GH,
int xgp0,xgp1,ygp0,ygp1,zgp0,zgp1;
+ /* Inverses of the radius */
+
+ CCTK_REAL ri0, ri1;
+
+ /* Grid sizes */
+
+ int lssh0, lssh1, lssh2;
+
+ /* stencil widths */
+
+ int sw0, sw1, sw2;
+
/* Grid parameters. */
dx = dxyz[0];
@@ -117,6 +129,18 @@ int BndApplyRadiative3Di(cGH *GH,
half = 0.5;
one = 1.0;
+ /* Store the grid shape in local variables to help the optimiser */
+
+ lssh0 = lssh[0];
+ lssh1 = lssh[1];
+ lssh2 = lssh[2];
+
+ /* Ditto with the stencil widths */
+
+ sw0 = sw[0];
+ sw1 = sw[1];
+ sw2 = sw[2];
+
/* Find Courant parameters. */
dtv = v0*dt;
@@ -130,19 +154,21 @@ int BndApplyRadiative3Di(cGH *GH,
/* Lower x-bound: x(2,:,:) --> x[xgp2] */
if (doBC[0]==1) {
- for (k=0;k<lssh[2];k++) {
- for (j=0;j<lssh[1];j++) {
- for (i=sw[0]-1;i>=0;i--) {
+ for (k=0;k<lssh2;k++) {
+ for (j=0;j<lssh1;j++) {
+ for (i=sw0-1;i>=0;i--) {
xgp0 = CCTK_GFINDEX3D(GH,i ,j,k);
xgp1 = CCTK_GFINDEX3D(GH,i+1,j,k);
-
+ ri0 = 1.0/r[xgp0];
+ ri1 = 1.0/r[xgp1];
+
var_n[xgp0] =
- (dtv*var0 * (x[xgp0]/(SQR(r[xgp0])) + x[xgp1]/(SQR(r[xgp1])))
- - var_n[xgp1] * ( rhox + x[xgp1]/r[xgp1] * (one+v0*dth/r[xgp1]))
- + var_p[xgp0] * ( rhox + x[xgp0]/r[xgp0] * (one-v0*dth/r[xgp0]))
- - var_p[xgp1] * ( rhox - x[xgp1]/r[xgp1] * (one-v0*dth/r[xgp1])))
- / (-rhox + x[xgp0]/r[xgp0] * (one+v0*dth/r[xgp0]));
+ (dtv*var0 * (x[xgp0]*(SQR(ri0)) + x[xgp1]*(SQR(ri1)))
+ - var_n[xgp1] * ( rhox + x[xgp1]*ri1 * (one+v0*dth*ri1))
+ + var_p[xgp0] * ( rhox + x[xgp0]*ri0 * (one-v0*dth*ri0))
+ - var_p[xgp1] * ( rhox - x[xgp1]*ri1 * (one-v0*dth*ri1)))
+ / (-rhox + x[xgp0]*ri0 * (one+v0*dth*ri0));
}
}
@@ -152,19 +178,22 @@ int BndApplyRadiative3Di(cGH *GH,
/* Upper x-bound: x(nx,:,:) --> xgp[xgp0] */
if (doBC[1]==1){
- for (k=0;k<lssh[2];k++) {
- for (j=0;j<lssh[1];j++) {
- for (i=lssh[0]-sw[0];i<lssh[0];i++) {
+ for (k=0;k<lssh2;k++) {
+ for (j=0;j<lssh1;j++) {
+ for (i=lssh0-sw0;i<lssh0;i++) {
xgp0 = CCTK_GFINDEX3D(GH,i ,j,k);
xgp1 = CCTK_GFINDEX3D(GH,i-1,j,k);
+
+ ri0 = 1.0/r[xgp0];
+ ri1 = 1.0/r[xgp1];
var_n[xgp0] =
- (dtv*var0 * (x[xgp0]/(SQR(r[xgp0])) + x[xgp1]/(SQR(r[xgp1])))
- + var_n[xgp1] * ( rhox - x[xgp1]/r[xgp1] * (one+v0*dth/r[xgp1]))
- + var_p[xgp0] * (-rhox + x[xgp0]/r[xgp0] * (one-v0*dth/r[xgp0]))
- + var_p[xgp1] * ( rhox + x[xgp1]/r[xgp1] * (one-v0*dth/r[xgp1])))
- / ( rhox + x[xgp0]/r[xgp0] * (one+v0*dth/r[xgp0]));
+ (dtv*var0 * (x[xgp0]*(SQR(ri0)) + x[xgp1]*(SQR(ri1)))
+ + var_n[xgp1] * ( rhox - x[xgp1]*ri1 * (one+v0*dth*ri1))
+ + var_p[xgp0] * (-rhox + x[xgp0]*ri0 * (one-v0*dth*ri0))
+ + var_p[xgp1] * ( rhox + x[xgp1]*ri1 * (one-v0*dth*ri1)))
+ / ( rhox + x[xgp0]*ri0 * (one+v0*dth*ri0));
}
}
@@ -174,19 +203,22 @@ int BndApplyRadiative3Di(cGH *GH,
/* Lower y-bound */
if (doBC[2] == 1) {
- for (k=0;k<lssh[2];k++) {
- for (i=0;i<lssh[0];i++) {
- for (j=sw[1]-1;j>=0;j--) {
+ for (k=0;k<lssh2;k++) {
+ for (i=0;i<lssh0;i++) {
+ for (j=sw1-1;j>=0;j--) {
ygp0 = CCTK_GFINDEX3D(GH,i,j ,k);
ygp1 = CCTK_GFINDEX3D(GH,i,j+1,k);
+
+ ri0 = 1.0/r[ygp0];
+ ri1 = 1.0/r[ygp1];
var_n[ygp0] =
- (dtv*var0 * (y[ygp0]/(SQR(r[ygp0])) + y[ygp1]/(SQR(r[ygp1])))
- - var_n[ygp1] * ( rhoy + y[ygp1]/r[ygp1] * (one+v0*dth/r[ygp1]))
- + var_p[ygp0] * ( rhoy + y[ygp0]/r[ygp0] * (one-v0*dth/r[ygp0]))
- - var_p[ygp1] * ( rhoy - y[ygp1]/r[ygp1] * (one-v0*dth/r[ygp1])))
- / (-rhoy + y[ygp0]/r[ygp0] * (one+v0*dth/r[ygp0]));
+ (dtv*var0 * (y[ygp0]*(SQR(ri0)) + y[ygp1]*(SQR(ri1)))
+ - var_n[ygp1] * ( rhoy + y[ygp1]*ri1 * (one+v0*dth*ri1))
+ + var_p[ygp0] * ( rhoy + y[ygp0]*ri0 * (one-v0*dth*ri0))
+ - var_p[ygp1] * ( rhoy - y[ygp1]*ri1 * (one-v0*dth*ri1)))
+ / (-rhoy + y[ygp0]*ri0 * (one+v0*dth*ri0));
}
}
@@ -196,19 +228,22 @@ int BndApplyRadiative3Di(cGH *GH,
/* Upper y bound */
if (doBC[3] == 1) {
- for (k=0;k<lssh[2];k++) {
- for (i=0;i<lssh[0];i++) {
- for (j=lssh[1]-sw[1];j<lssh[1];j++) {
+ for (k=0;k<lssh2;k++) {
+ for (i=0;i<lssh0;i++) {
+ for (j=lssh1-sw1;j<lssh1;j++) {
ygp0 = CCTK_GFINDEX3D(GH,i,j ,k);
ygp1 = CCTK_GFINDEX3D(GH,i,j-1,k);
+ ri0 = 1.0/r[ygp0];
+ ri1 = 1.0/r[ygp1];
+
var_n[ygp0] =
- (dtv*var0 * (y[ygp0]/(SQR(r[ygp0])) + y[ygp1]/(SQR(r[ygp1])))
- + var_n[ygp1] * ( rhoy - y[ygp1]/r[ygp1] * (one+v0*dth/r[ygp1]))
- + var_p[ygp0] * (-rhoy + y[ygp0]/r[ygp0] * (one-v0*dth/r[ygp0]))
- + var_p[ygp1] * ( rhoy + y[ygp1]/r[ygp1] * (one-v0*dth/r[ygp1])))
- / ( rhoy + y[ygp0]/r[ygp0] * (one+v0*dth/r[ygp0]));
+ (dtv*var0 * (y[ygp0]*(SQR(ri0)) + y[ygp1]*(SQR(ri1)))
+ + var_n[ygp1] * ( rhoy - y[ygp1]*ri1 * (one+v0*dth*ri1))
+ + var_p[ygp0] * (-rhoy + y[ygp0]*ri0 * (one-v0*dth*ri0))
+ + var_p[ygp1] * ( rhoy + y[ygp1]*ri1 * (one-v0*dth*ri1)))
+ / ( rhoy + y[ygp0]*ri0 * (one+v0*dth*ri0));
}
}
@@ -218,19 +253,22 @@ int BndApplyRadiative3Di(cGH *GH,
/* Lower z-bound */
if (doBC[4]==1) {
- for (j=0;j<lssh[1];j++) {
- for (i=0;i<lssh[0];i++) {
- for (k=sw[2]-1;k>=0;k--) {
+ for (j=0;j<lssh1;j++) {
+ for (i=0;i<lssh0;i++) {
+ for (k=sw2-1;k>=0;k--) {
zgp0 = CCTK_GFINDEX3D(GH,i,j,k );
zgp1 = CCTK_GFINDEX3D(GH,i,j,k+1);
+
+ ri0 = 1.0/r[zgp0];
+ ri1 = 1.0/r[zgp1];
var_n[zgp0] =
- (dtv*var0 * (z[zgp0]/(SQR(r[zgp0])) + z[zgp1]/(SQR(r[zgp1])))
- - var_n[zgp1] * ( rhoz + z[zgp1]/r[zgp1] * (one+v0*dth/r[zgp1]))
- + var_p[zgp0] * ( rhoz + z[zgp0]/r[zgp0] * (one-v0*dth/r[zgp0]))
- - var_p[zgp1] * ( rhoz - z[zgp1]/r[zgp1] * (one-v0*dth/r[zgp1])))
- / (-rhoz + z[zgp0]/r[zgp0] * (one+v0*dth/r[zgp0]));
+ (dtv*var0 * (z[zgp0]*(SQR(ri0)) + z[zgp1]*(SQR(ri1)))
+ - var_n[zgp1] * ( rhoz + z[zgp1]*ri1 * (one+v0*dth*ri1))
+ + var_p[zgp0] * ( rhoz + z[zgp0]*ri0 * (one-v0*dth*ri0))
+ - var_p[zgp1] * ( rhoz - z[zgp1]*ri1 * (one-v0*dth*ri1)))
+ / (-rhoz + z[zgp0]*ri0 * (one+v0*dth*ri0));
}
}
@@ -240,19 +278,22 @@ int BndApplyRadiative3Di(cGH *GH,
/* Upper z-bound */
if (doBC[5] == 1) {
- for (j=0;j<lssh[1];j++) {
- for (i=0;i<lssh[0];i++) {
- for (k=lssh[2]-sw[2];k<lssh[2];k++) {
+ for (j=0;j<lssh1;j++) {
+ for (i=0;i<lssh0;i++) {
+ for (k=lssh2-sw2;k<lssh2;k++) {
zgp0 = CCTK_GFINDEX3D(GH,i,j,k );
zgp1 = CCTK_GFINDEX3D(GH,i,j,k-1);
+
+ ri0 = 1.0/r[zgp0];
+ ri1 = 1.0/r[zgp1];
var_n[zgp0] =
- (dtv*var0 * (z[zgp0]/(SQR(r[zgp0])) + z[zgp1]/(SQR(r[zgp1])))
- + var_n[zgp1] * ( rhoz - z[zgp1]/r[zgp1] * (one+v0*dth/r[zgp1]))
- + var_p[zgp0] * (-rhoz + z[zgp0]/r[zgp0] * (one-v0*dth/r[zgp0]))
- + var_p[zgp1] * ( rhoz + z[zgp1]/r[zgp1] * (one-v0*dth/r[zgp1])))
- / ( rhoz + z[zgp0]/r[zgp0] * (one+v0*dth/r[zgp0]));
+ (dtv*var0 * (z[zgp0]*(SQR(ri0)) + z[zgp1]*(SQR(ri1)))
+ + var_n[zgp1] * ( rhoz - z[zgp1]*ri1 * (one+v0*dth*ri1))
+ + var_p[zgp0] * (-rhoz + z[zgp0]*ri0 * (one-v0*dth*ri0))
+ + var_p[zgp1] * ( rhoz + z[zgp1]*ri1 * (one-v0*dth*ri1)))
+ / ( rhoz + z[zgp0]*ri0 * (one+v0*dth*ri0));
}
}