aboutsummaryrefslogtreecommitdiff
path: root/src/FlatBoundary.c
diff options
context:
space:
mode:
authorallen <allen@6a38eb6e-646e-4a02-a296-d141613ad6c4>1999-11-12 10:45:14 +0000
committerallen <allen@6a38eb6e-646e-4a02-a296-d141613ad6c4>1999-11-12 10:45:14 +0000
commit7793adf402b097ca428fda95d3454f25c890c799 (patch)
tree95ba2b4b9b0650eba83eadad25cc4dfdefbc88ad /src/FlatBoundary.c
parentc86c24694a16acc9d33033baa199440d12f4be91 (diff)
Tidying and prototypes
git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/Boundary/trunk@71 6a38eb6e-646e-4a02-a296-d141613ad6c4
Diffstat (limited to 'src/FlatBoundary.c')
-rw-r--r--src/FlatBoundary.c83
1 files changed, 60 insertions, 23 deletions
diff --git a/src/FlatBoundary.c b/src/FlatBoundary.c
index b86d852..27c41b9 100644
--- a/src/FlatBoundary.c
+++ b/src/FlatBoundary.c
@@ -21,6 +21,7 @@
#include "CactusBase/CartGrid3D/src/Symmetry.h"
#include "cctk_FortranString.h"
+void CCTKi_NotYetImplemented(const char *message);
void ApplyFlat3Di(cGH *GH,int *doBC,int *lsh,int *stencil_size, CCTK_REAL *var);
@@ -148,7 +149,6 @@ int FlatBCVarI(cGH *GH, int *stencil_size, int vi) {
DECLARE_CCTK_PARAMETERS
SymmetryGHex *sGHex; /* the Symmetry GHextension */
int *doBC; /* flags if lower/upper BCs are applied (1) or not (0) */
- char *message;
int retval;
@@ -158,10 +158,14 @@ int FlatBCVarI(cGH *GH, int *stencil_size, int vi) {
if (CCTK_GroupTypeFromVarI(vi)==GROUP_GF) {
int idim;
- /* The rule is: IF we have no symmetries for the lower grid boundary,
- (GFSym==ESYM_NOSYM or ==ESYM_UNSET) AND we have a lower(upper) bound
- AND we have enough gridpoints THEN apply BC */
- for (idim=0;idim<GH->cctk_dim;idim++) {
+ /* Apply boundary condition if:
+ + no symmetry for grid boundary
+ + grid boundary is a physical boundary
+ + have enough points
+ */
+
+ for (idim=0;idim<GH->cctk_dim;idim++)
+ {
doBC[idim*2] = (((sGHex->GFSym[vi][idim*2]==GFSYM_NOSYM)||
(sGHex->GFSym[vi][idim*2]==GFSYM_UNSET)) &&
@@ -169,11 +173,17 @@ int FlatBCVarI(cGH *GH, int *stencil_size, int vi) {
doBC[idim*2+1] = (((sGHex->GFSym[vi][idim*2+1]==GFSYM_NOSYM)||
(sGHex->GFSym[vi][idim*2+1]==GFSYM_UNSET)) &&
GH->cctk_lsh[idim]>1 && GH->cctk_bbox[idim*2+1]);
- }
- if (GH->cctk_dim == 3) {
- ApplyFlat3Di(GH,doBC,GH->cctk_lsh,stencil_size,GH->data[vi][0]);
}
- else {
+ if (GH->cctk_dim == 3)
+ {
+ ApplyFlat3Di(GH,
+ doBC,
+ GH->cctk_lsh,
+ stencil_size,
+ GH->data[vi][0]);
+ }
+ else
+ {
CCTKi_NotYetImplemented("Flat boundaries in other than 3D");
retval = -1;
return retval;
@@ -183,22 +193,30 @@ int FlatBCVarI(cGH *GH, int *stencil_size, int vi) {
CCTK_WARN(1,"You are trying to apply BC to s.th. else than a GF ");
if (doBC) free(doBC);
- return(0);
+ return retval;
}
-void FMODIFIER FORTRAN_NAME(FlatBCVarI)(int *retval, cGH *GH, int *stencil_size, int *vi) {
+void FMODIFIER FORTRAN_NAME(FlatBCVarI)(int *retval,
+ cGH *GH,
+ int *stencil_size,
+ int *vi)
+{
*retval = FlatBCVarI(GH, stencil_size, *vi);
}
-int FlatBCGroupI(cGH *GH, int *stencil_size, int gi) {
+int FlatBCGroupI(cGH *GH,
+ int *stencil_size,
+ int gi)
+{
int firstVarI,lastVarI,vi;
int retval=0, rettmp=0;
firstVarI = CCTK_FirstVarIndexI(gi);
lastVarI = firstVarI+CCTK_NumVarsInGroupI(gi);
- for (vi=firstVarI; vi<lastVarI; vi++) {
+ for (vi=firstVarI; vi<lastVarI; vi++)
+ {
rettmp = FlatBCVarI(GH,stencil_size,vi);
if (rettmp!=0) CCTK_WARN(1,"FlatBCGroupI: BC failed for one of the vars in the group");
retval = retval || rettmp;
@@ -207,35 +225,49 @@ int FlatBCGroupI(cGH *GH, int *stencil_size, int gi) {
return(retval);
}
-void FMODIFIER FORTRAN_NAME(FlatBCGroupI)(int *retval, cGH *GH, int *stencil_size, int *gi) {
+void FMODIFIER FORTRAN_NAME(FlatBCGroupI)(int *retval,
+ cGH *GH,
+ int *stencil_size,
+ int *gi)
+{
*retval=FlatBCGroupI(GH, stencil_size, *gi);
}
-
-
-int FlatBCGroup(cGH *GH, int *stencil_size, const char *impgrpname) {
+int FlatBCGroup(cGH *GH,
+ int *stencil_size,
+ const char *impgrpname)
+{
int gi;
gi = CCTK_GroupIndex(impgrpname);
return(FlatBCGroupI(GH, stencil_size, gi));
}
-void FMODIFIER FORTRAN_NAME(FlatBCGroup)(int *retval, cGH *GH, int *stencil_size, ONE_FORTSTRING_ARG) {
+void FMODIFIER FORTRAN_NAME(FlatBCGroup)(int *retval,
+ cGH *GH,
+ int *stencil_size,
+ ONE_FORTSTRING_ARG)
+{
ONE_FORTSTRING_CREATE(impgrpname)
*retval = FlatBCGroup(GH, stencil_size, impgrpname);
free(impgrpname);
}
-
-
-int FlatBCVar(cGH *GH, int *stencil_size, const char *impvarname) {
+int FlatBCVar(cGH *GH,
+ int *stencil_size,
+ const char *impvarname)
+{
int vi;
vi = CCTK_VarIndex(impvarname);
return(FlatBCVarI(GH, stencil_size, vi));
}
-void FMODIFIER FORTRAN_NAME(FlatBCVar)(int *retval, cGH *GH, int *stencil_size, ONE_FORTSTRING_ARG) {
+void FMODIFIER FORTRAN_NAME(FlatBCVar)(int *retval,
+ cGH *GH,
+ int *stencil_size,
+ ONE_FORTSTRING_ARG)
+{
ONE_FORTSTRING_CREATE(impvarname)
*retval = FlatBCVar(GH, stencil_size, impvarname);
free(impvarname);
@@ -244,7 +276,12 @@ void FMODIFIER FORTRAN_NAME(FlatBCVar)(int *retval, cGH *GH, int *stencil_size,
-void ApplyFlat3Di(cGH *GH,int *doBC,int *lsh,int *stencil_size, CCTK_REAL *var) {
+void ApplyFlat3Di(cGH *GH,
+ int *doBC,
+ int *lsh,
+ int *stencil_size,
+ CCTK_REAL *var)
+{
if (doBC[0] == 1)
{