aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortradke <tradke@6a38eb6e-646e-4a02-a296-d141613ad6c4>2001-04-14 17:40:57 +0000
committertradke <tradke@6a38eb6e-646e-4a02-a296-d141613ad6c4>2001-04-14 17:40:57 +0000
commite3a1be2809877922fdec91cc3e2d3bf1f06a9eb6 (patch)
treea60f4dc7f504918cfbfe8e886553674f77d82e8d /src
parentfdf3ae56f451e6f563ba4d2048413907a05bfb66 (diff)
This code went into RobinBoundary.c.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/Boundary/trunk@138 6a38eb6e-646e-4a02-a296-d141613ad6c4
Diffstat (limited to 'src')
-rw-r--r--src/RobinBoundaryWrappers.c440
1 files changed, 0 insertions, 440 deletions
diff --git a/src/RobinBoundaryWrappers.c b/src/RobinBoundaryWrappers.c
deleted file mode 100644
index 4bc2c99..0000000
--- a/src/RobinBoundaryWrappers.c
+++ /dev/null
@@ -1,440 +0,0 @@
- /*@@
- @file RobinBoundary.c
- @date July 6th 2000
- @author Gabrielle Allen, Gerd Lanfermann
- @desc
- Routines for Robin boundary conditions boundary conditions
- @enddesc
- @@*/
-
-
-#include <stdio.h>
-#include <assert.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <stdarg.h>
-#include <string.h>
-
-#include "cctk.h"
-#include "cctk_Parameters.h"
-#include "cctk_FortranString.h"
-
-#include "BoundarySymmetries.h"
-
-int BndApplyRobin3Di(cGH *GH,
- int *sw,
- int *doBC,
- int *lsh,
- CCTK_REAL *var,
- CCTK_REAL *r,
- CCTK_REAL finf,
- int npow);
-
-int ApplyBndRobin(cGH *GH,
- int *sw,
- CCTK_REAL finf,
- int npow,
- int first_var,
- int num_vars);
-
-int BndRobinGI(cGH *GH,
- int *stencil,
- CCTK_REAL finf,
- int npow,
- int gi);
-
-int BndRobinGN(cGH *GH,
- int *sw,
- CCTK_REAL finf,
- int npow,
- const char *gn);
-
-int BndRobinVI(cGH *GH,
- int *stencil,
- CCTK_REAL finf,
- int npow,
- int vi);
-
-int BndRobinVN(cGH *GH,
- int *stencil,
- CCTK_REAL finf,
- int npow,
- const char *vn);
-
-
-/********************************************************************
- ******************** External Routines ************************
- ********************************************************************/
-
-/*@@
- @routine BndRobinGI
- @date Tue Jul 18 18:08:28 2000
- @author Gerd Lanfermann
- @desc
- Apply Robin boundary condition by group index
- @enddesc
- @calls
- @calledby
- @history
- @endhistory
-@@*/
-
-int BndRobinGI(cGH *GH,
- int *stencil,
- CCTK_REAL finf,
- int npow,
- int gi)
-{
- int numvars, first_vi;
-
- first_vi = CCTK_FirstVarIndexI(gi);
- numvars = CCTK_NumVarsInGroupI(gi);
-
- return ApplyBndRobin(GH,stencil,finf,npow,first_vi,numvars);
-}
-
-void CCTK_FCALL CCTK_FNAME(BndRobinGI)
- (int *ierr, cGH *GH, int *stencil,
- CCTK_REAL *finf, int *npow, int *gi)
-{
- *ierr = BndRobinGI(GH,stencil, *finf, *npow, *gi);
- return;
-}
-
-/*@@
- @routine BndRobinGI
- @date Tue Jul 18 18:08:28 2000
- @author Gerd Lanfermann
- @desc
- Apply Robin boundary condition by group mame
- @enddesc
- @calls
- @calledby
- @history
- @endhistory
-@@*/
-
-int BndRobinGN(cGH *GH,
- int *sw,
- CCTK_REAL finf,
- int npow,
- const char *gn)
-{
- int retval;
- int gi;
- gi = CCTK_GroupIndex(gn);
-
- if (gi>-1)
- {
- retval=BndRobinGI(GH, sw, finf, npow, gi);
- }
- else
- {
- CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
- "BndFlatGN: Grid variable %s not found",gn);
- retval=-1;
- }
- return retval;
-}
-
-void CCTK_FCALL CCTK_FNAME(BndRobinGN)
- (int *ierr, cGH *GH, int *stencil,
- CCTK_REAL *finf, int *npow, ONE_FORTSTRING_ARG)
-{
- ONE_FORTSTRING_CREATE(gn)
- *ierr = BndRobinVN(GH, stencil, *finf, *npow, gn);
- free(gn);
- return;
-}
-
-
-/*@@
- @routine BndRobinGI
- @date Tue Jul 18 18:08:28 2000
- @author Gerd Lanfermann
- @desc
- Apply Robin boundary condition by variable index
- @enddesc
- @calls
- @calledby
- @history
- @endhistory
-@@*/
-
-int BndRobinVI(cGH *GH,
- int *stencil,
- CCTK_REAL finf,
- int npow,
- int vi)
-{
- return(ApplyBndRobin(GH, stencil, finf, npow, vi, 1));
-}
-
-void CCTK_FCALL CCTK_FNAME(BndRobinVI)
- (int *ierr, cGH *GH, int *stencil,
- CCTK_REAL *finf, int *npow, int *vi)
-{
- *ierr = BndRobinVI(GH, stencil, *finf, *npow, *vi);
- return;
-}
-
-
-/*@@
- @routine BndRobinGI
- @date Tue Jul 18 18:08:28 2000
- @author Gerd Lanfermann
- @desc
- Apply Robin boundary condition by variable index
- @enddesc
- @calls
- @calledby
- @history
- @endhistory
-@@*/
-
-int BndRobinVN(cGH *GH,
- int *stencil,
- CCTK_REAL finf,
- int npow,
- const char *vn)
-{
- int vi;
- int retval;
-
- vi = CCTK_VarIndex(vn);
- if (vi>-1)
- {
- retval = BndRobinVI(GH, stencil, finf, npow, vi);
- }
- else
- {
- retval = -1;
- CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
- "BndRobinVN: Grid variable %s not found",vn);
- }
- return retval;
-}
-
-void CCTK_FCALL CCTK_FNAME(BndRobinVN)
- (int *ierr, cGH *GH, int *stencil,
- CCTK_REAL *finf, int *npow, ONE_FORTSTRING_ARG)
-{
- ONE_FORTSTRING_CREATE(vn)
- *ierr = BndRobinVN(GH, stencil, *finf, *npow, vn);
- free(vn);
- return;
-}
-
-/********************************************************************
- ********************* Local Routines *************************
- ********************************************************************/
-
-/*@@
- @routine ApplyBndRobin
- @date Tue Jul 18 18:08:28 2000
- @author Gerd Lanfermann
- @desc
- Apply Robin boundary condition - internal routine
- @enddesc
- @calls
- @calledby
- @history
- @endhistory
-@@*/
-
-int ApplyBndRobin(cGH *GH,
- int *sw,
- CCTK_REAL finf,
- int npow,
- int first_var,
- int num_vars)
-{
-
- SymmetryGHex *sGHex;
- int symmetry_handle; /* handle for the optional symmetry structure */
- int *doBC; /* lower/upper BCs applied (1) not applied (0) */
- /* indexing as in bbox: 0 xlow, 1 xup, 2 ylow */
- int timelevel; /* timelevel that condition applied on */
- int ri; /* index of the radial coordinate field */
- int vi, dim, idim;
- int berr=0;
-
- /* See if we have a symmetry array */
- symmetry_handle = CCTK_GHExtensionHandle("Symmetry");
- if (symmetry_handle < 0)
- {
- sGHex = NULL;
- }
- else
- {
- sGHex = (SymmetryGHex*)GH->extensions[symmetry_handle];
- }
-
- /* Get group dimension */
- dim = CCTK_GroupDimFromVarI(first_var);
-
- /* allocate arrays */
- doBC = (int *)malloc((2*dim)*sizeof(int));
-
- /* get the current timelevel */
- timelevel = CCTK_NumTimeLevelsFromVarI (first_var) - 1;
- /* if (timelevel > 0)
- timelevel--;*/
-
- /* Apply boundary condition if
- - grid boundary are not symmetries
- - have a physical boundary
- - have enough gridpoints
- */
- for (vi=first_var; vi<first_var+num_vars; vi++)
- {
- if (sGHex)
- {
- for (idim=0;idim<dim;idim++)
- {
- doBC[idim*2] = (((sGHex->GFSym[vi][idim*2]==GFSYM_NOSYM)||
- (sGHex->GFSym[vi][idim*2]==GFSYM_UNSET)) &&
- GH->cctk_lsh[idim]>1 && GH->cctk_bbox[idim*2]);
- 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]);
- }
- }
- else
- {
- for (idim=0;idim<dim;idim++)
- {
- doBC[idim*2] = (GH->cctk_lsh[idim]>1 && GH->cctk_bbox[idim*2]);
- doBC[idim*2+1] = (GH->cctk_lsh[idim]>1 && GH->cctk_bbox[idim*2+1]);
- }
- }
-
- switch(dim)
- {
- case 3:/* Robin boundaries need radial coordinate */
- ri = CCTK_CoordIndex(-1,"r","spher3d");
- berr = BndApplyRobin3Di(GH,
- sw,
- doBC,
- GH->cctk_lsh,
- GH->data[vi][timelevel],
- GH->data[ri][0],
- finf,
- npow); break;
- default:
- berr = -1; CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
- "ApplyBndRobin: No Robin BC for Grid variables with dim.NE.3: %s",
- CCTK_VarName(vi));
- }
- berr = (berr>-1) ? 0 : -1;
- }
-
- free(doBC);
-
- return (berr);
-}
-
-/********************************************************************
- ********************* DEPRECATED: Beta 8 **********************
- ********************************************************************/
-
-int RobinBCVarI(cGH *GH, CCTK_REAL finf, int npow, int *sw, int vi)
-{
- CCTK_WARN(1,"RobinBCVarI going to be deprecated\n");
- return(BndRobinVI(GH,sw,finf,npow,vi));
-}
-
-
-void CCTK_FCALL CCTK_FNAME(RobinBCVarI)(int *ierr,
- cGH *GH,
- CCTK_REAL *finf,
- int *npow,
- int *sw,
- int *vi)
-{
- *ierr = RobinBCVarI(GH, *finf, *npow, sw, *vi);
-}
-
-int RobinBCVar(cGH *GH,
- CCTK_REAL finf,
- int npow,
- int *sw,
- const char *vn)
-{
- int vi;
-
- vi = CCTK_VarIndex(vn);
- return(RobinBCVarI(GH, finf, npow, sw, vi));
-}
-
-void CCTK_FCALL CCTK_FNAME(RobinBCVar)(int *ierr,
- cGH *GH,
- CCTK_REAL *finf,
- int *npow,
- int *sw,
- ONE_FORTSTRING_ARG)
-{
- ONE_FORTSTRING_CREATE(vn);
- *ierr = RobinBCVar(GH, *finf, *npow, sw, vn);
- free(vn);
-}
-
-
-int RobinBCGroupI(cGH *GH,
- CCTK_REAL finf,
- int npow,
- int *sw,
- int gi)
-{
- int firstVarI, numVar, vi;
- int retval = 0, rettmp = 0;
-
- firstVarI = CCTK_FirstVarIndexI(gi);
- numVar = CCTK_NumVarsInGroupI(gi);
- for (vi=0;vi<numVar;vi++)
- {
- rettmp = RobinBCVarI(GH, finf, npow, sw, firstVarI+vi);
- if (rettmp!=0) CCTK_VWarn(1,__LINE__,__FILE__,"Boundary",
- "Failed to apply Robin BC for GF : %s",
- CCTK_VarName(vi));
- retval = retval || rettmp;
- }
- return(retval);
-}
-
-void CCTK_FCALL CCTK_FNAME(RobinBCGroupI)(int *ierr,
- cGH *GH,
- CCTK_REAL *finf,
- int *npow,
- int *sw,
- int *gi)
-{
- *ierr = RobinBCGroupI(GH,*finf,*npow, sw, *gi);
-}
-
-
-int RobinBCGroup(cGH *GH,
- CCTK_REAL finf,
- int npow,
- int *sw,
- const char *impgrpname)
-{
- int gi;
- gi = CCTK_GroupIndex(impgrpname);
-
- return(RobinBCGroupI(GH, finf, npow, sw, gi));
-}
-
-void CCTK_FCALL CCTK_FNAME(RobinBCGroup)(int *ierr,
- cGH *GH,
- CCTK_REAL *finf,
- int *npow,
- int *sw,
- ONE_FORTSTRING_ARG)
-{
- ONE_FORTSTRING_CREATE(gn);
- *ierr = RobinBCGroup(GH, *finf, *npow, sw, gn);
- free(gn);
-}
-
-